OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_ASSEMBLER_ARM_H_ | 5 #ifndef VM_ASSEMBLER_ARM_H_ |
6 #define VM_ASSEMBLER_ARM_H_ | 6 #define VM_ASSEMBLER_ARM_H_ |
7 | 7 |
8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
9 #error Do not include assembler_arm.h directly; use assembler.h instead. | 9 #error Do not include assembler_arm.h directly; use assembler.h instead. |
10 #endif | 10 #endif |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 void LinkTo(intptr_t position) { | 56 void LinkTo(intptr_t position) { |
57 ASSERT(!IsBound()); | 57 ASSERT(!IsBound()); |
58 position_ = position + kWordSize; | 58 position_ = position + kWordSize; |
59 ASSERT(IsLinked()); | 59 ASSERT(IsLinked()); |
60 } | 60 } |
61 | 61 |
62 friend class Assembler; | 62 friend class Assembler; |
63 DISALLOW_COPY_AND_ASSIGN(Label); | 63 DISALLOW_COPY_AND_ASSIGN(Label); |
64 }; | 64 }; |
65 | 65 |
66 | |
67 class CPUFeatures : public AllStatic { | |
68 public: | |
69 static void InitOnce(); | |
70 static bool double_truncate_round_supported() { return false; } | |
71 static bool integer_division_supported(); | |
72 static bool neon_supported(); | |
73 #if defined(USING_SIMULATOR) | |
74 static void set_integer_division_supported(bool supported); | |
75 static void set_neon_supported(bool supported); | |
76 #endif | |
77 private: | |
78 static bool integer_division_supported_; | |
79 static bool neon_supported_; | |
80 #if defined(DEBUG) | |
81 static bool initialized_; | |
82 #endif | |
83 }; | |
84 | |
85 | |
86 // Encodes Addressing Mode 1 - Data-processing operands. | 66 // Encodes Addressing Mode 1 - Data-processing operands. |
87 class ShifterOperand : public ValueObject { | 67 class ShifterOperand : public ValueObject { |
88 public: | 68 public: |
89 // Data-processing operands - Uninitialized. | 69 // Data-processing operands - Uninitialized. |
90 ShifterOperand() : type_(-1), encoding_(-1) { } | 70 ShifterOperand() : type_(-1), encoding_(-1) { } |
91 | 71 |
92 // Data-processing operands - Copy constructor. | 72 // Data-processing operands - Copy constructor. |
93 ShifterOperand(const ShifterOperand& other) | 73 ShifterOperand(const ShifterOperand& other) |
94 : ValueObject(), type_(other.type_), encoding_(other.encoding_) { } | 74 : ValueObject(), type_(other.type_), encoding_(other.encoding_) { } |
95 | 75 |
(...skipping 804 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
900 Register value, | 880 Register value, |
901 Label* no_update); | 881 Label* no_update); |
902 | 882 |
903 DISALLOW_ALLOCATION(); | 883 DISALLOW_ALLOCATION(); |
904 DISALLOW_COPY_AND_ASSIGN(Assembler); | 884 DISALLOW_COPY_AND_ASSIGN(Assembler); |
905 }; | 885 }; |
906 | 886 |
907 } // namespace dart | 887 } // namespace dart |
908 | 888 |
909 #endif // VM_ASSEMBLER_ARM_H_ | 889 #endif // VM_ASSEMBLER_ARM_H_ |
OLD | NEW |