| 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_X64_H_ | 5 #ifndef VM_ASSEMBLER_X64_H_ |
| 6 #define VM_ASSEMBLER_X64_H_ | 6 #define VM_ASSEMBLER_X64_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_x64.h directly; use assembler.h instead. | 9 #error Do not include assembler_x64.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 755 return allow_constant_pool_; | 755 return allow_constant_pool_; |
| 756 } | 756 } |
| 757 void set_allow_constant_pool(bool b) { | 757 void set_allow_constant_pool(bool b) { |
| 758 allow_constant_pool_ = b; | 758 allow_constant_pool_ = b; |
| 759 } | 759 } |
| 760 | 760 |
| 761 bool CanLoadImmediateFromPool(const Immediate& imm, Register pp); | 761 bool CanLoadImmediateFromPool(const Immediate& imm, Register pp); |
| 762 void LoadImmediate(Register reg, const Immediate& imm, Register pp); | 762 void LoadImmediate(Register reg, const Immediate& imm, Register pp); |
| 763 void LoadIsolate(Register dst); | 763 void LoadIsolate(Register dst); |
| 764 void LoadObject(Register dst, const Object& obj, Register pp); | 764 void LoadObject(Register dst, const Object& obj, Register pp); |
| 765 void LoadUniqueObject(Register dst, const Object& obj, Register pp); |
| 765 void LoadExternalLabel(Register dst, | 766 void LoadExternalLabel(Register dst, |
| 766 const ExternalLabel* label, | 767 const ExternalLabel* label, |
| 767 Patchability patchable, | 768 Patchability patchable, |
| 768 Register pp); | 769 Register pp); |
| 769 void JmpPatchable(const ExternalLabel* label, Register pp); | 770 void JmpPatchable(const ExternalLabel* label, Register pp); |
| 770 void Jmp(const ExternalLabel* label, Register pp); | 771 void Jmp(const ExternalLabel* label, Register pp); |
| 771 void J(Condition condition, const ExternalLabel* label, Register pp); | 772 void J(Condition condition, const ExternalLabel* label, Register pp); |
| 772 void CallPatchable(const ExternalLabel* label); | 773 void CallPatchable(const ExternalLabel* label); |
| 773 void Call(const ExternalLabel* label, Register pp); | 774 void Call(const ExternalLabel* label, Register pp); |
| 774 // Unaware of write barrier (use StoreInto* methods for storing to objects). | 775 // Unaware of write barrier (use StoreInto* methods for storing to objects). |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1060 const String& comment_; | 1061 const String& comment_; |
| 1061 | 1062 |
| 1062 DISALLOW_COPY_AND_ASSIGN(CodeComment); | 1063 DISALLOW_COPY_AND_ASSIGN(CodeComment); |
| 1063 }; | 1064 }; |
| 1064 | 1065 |
| 1065 GrowableArray<CodeComment*> comments_; | 1066 GrowableArray<CodeComment*> comments_; |
| 1066 bool allow_constant_pool_; | 1067 bool allow_constant_pool_; |
| 1067 | 1068 |
| 1068 intptr_t FindImmediate(int64_t imm); | 1069 intptr_t FindImmediate(int64_t imm); |
| 1069 bool CanLoadFromObjectPool(const Object& object); | 1070 bool CanLoadFromObjectPool(const Object& object); |
| 1071 void LoadObjectHelper(Register dst, |
| 1072 const Object& obj, |
| 1073 Register pp, |
| 1074 bool is_unique); |
| 1070 void LoadWordFromPoolOffset(Register dst, Register pp, int32_t offset); | 1075 void LoadWordFromPoolOffset(Register dst, Register pp, int32_t offset); |
| 1071 | 1076 |
| 1072 inline void EmitUint8(uint8_t value); | 1077 inline void EmitUint8(uint8_t value); |
| 1073 inline void EmitInt32(int32_t value); | 1078 inline void EmitInt32(int32_t value); |
| 1074 inline void EmitInt64(int64_t value); | 1079 inline void EmitInt64(int64_t value); |
| 1075 | 1080 |
| 1076 inline void EmitRegisterREX(Register reg, uint8_t rex); | 1081 inline void EmitRegisterREX(Register reg, uint8_t rex); |
| 1077 inline void EmitOperandREX(int rm, const Operand& operand, uint8_t rex); | 1082 inline void EmitOperandREX(int rm, const Operand& operand, uint8_t rex); |
| 1078 inline void EmitXmmRegisterOperand(int rm, XmmRegister reg); | 1083 inline void EmitXmmRegisterOperand(int rm, XmmRegister reg); |
| 1079 inline void EmitFixup(AssemblerFixup* fixup); | 1084 inline void EmitFixup(AssemblerFixup* fixup); |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1200 } | 1205 } |
| 1201 | 1206 |
| 1202 | 1207 |
| 1203 inline void Assembler::EmitOperandSizeOverride() { | 1208 inline void Assembler::EmitOperandSizeOverride() { |
| 1204 EmitUint8(0x66); | 1209 EmitUint8(0x66); |
| 1205 } | 1210 } |
| 1206 | 1211 |
| 1207 } // namespace dart | 1212 } // namespace dart |
| 1208 | 1213 |
| 1209 #endif // VM_ASSEMBLER_X64_H_ | 1214 #endif // VM_ASSEMBLER_X64_H_ |
| OLD | NEW |