| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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_ARM64_H_ | 5 #ifndef VM_ASSEMBLER_ARM64_H_ |
| 6 #define VM_ASSEMBLER_ARM64_H_ | 6 #define VM_ASSEMBLER_ARM64_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_arm64.h directly; use assembler.h instead. | 9 #error Do not include assembler_arm64.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 1303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1314 bool CanLoadObjectFromPool(const Object& object); | 1314 bool CanLoadObjectFromPool(const Object& object); |
| 1315 bool CanLoadImmediateFromPool(int64_t imm, Register pp); | 1315 bool CanLoadImmediateFromPool(int64_t imm, Register pp); |
| 1316 void LoadExternalLabel(Register dst, const ExternalLabel* label, | 1316 void LoadExternalLabel(Register dst, const ExternalLabel* label, |
| 1317 Patchability patchable, Register pp); | 1317 Patchability patchable, Register pp); |
| 1318 void LoadExternalLabelFixed(Register dst, | 1318 void LoadExternalLabelFixed(Register dst, |
| 1319 const ExternalLabel* label, | 1319 const ExternalLabel* label, |
| 1320 Patchability patchable, | 1320 Patchability patchable, |
| 1321 Register pp); | 1321 Register pp); |
| 1322 void LoadIsolate(Register dst, Register pp); | 1322 void LoadIsolate(Register dst, Register pp); |
| 1323 void LoadObject(Register dst, const Object& obj, Register pp); | 1323 void LoadObject(Register dst, const Object& obj, Register pp); |
| 1324 void LoadUniqueObject(Register dst, const Object& obj, Register pp); |
| 1324 void LoadDecodableImmediate(Register reg, int64_t imm, Register pp); | 1325 void LoadDecodableImmediate(Register reg, int64_t imm, Register pp); |
| 1325 void LoadImmediateFixed(Register reg, int64_t imm); | 1326 void LoadImmediateFixed(Register reg, int64_t imm); |
| 1326 void LoadImmediate(Register reg, int64_t imm, Register pp); | 1327 void LoadImmediate(Register reg, int64_t imm, Register pp); |
| 1327 void LoadDImmediate(VRegister reg, double immd, Register pp); | 1328 void LoadDImmediate(VRegister reg, double immd, Register pp); |
| 1328 | 1329 |
| 1329 void PushObject(const Object& object, Register pp) { | 1330 void PushObject(const Object& object, Register pp) { |
| 1330 LoadObject(TMP, object, pp); | 1331 LoadObject(TMP, object, pp); |
| 1331 Push(TMP); | 1332 Push(TMP); |
| 1332 } | 1333 } |
| 1333 void CompareObject(Register reg, const Object& object, Register pp); | 1334 void CompareObject(Register reg, const Object& object, Register pp); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1437 intptr_t pc_offset_; | 1438 intptr_t pc_offset_; |
| 1438 const String& comment_; | 1439 const String& comment_; |
| 1439 | 1440 |
| 1440 DISALLOW_COPY_AND_ASSIGN(CodeComment); | 1441 DISALLOW_COPY_AND_ASSIGN(CodeComment); |
| 1441 }; | 1442 }; |
| 1442 | 1443 |
| 1443 GrowableArray<CodeComment*> comments_; | 1444 GrowableArray<CodeComment*> comments_; |
| 1444 | 1445 |
| 1445 bool allow_constant_pool_; | 1446 bool allow_constant_pool_; |
| 1446 | 1447 |
| 1448 void LoadObjectHelper(Register dst, |
| 1449 const Object& obj, |
| 1450 Register pp, |
| 1451 bool is_unique); |
| 1452 |
| 1447 void AddSubHelper(OperandSize os, bool set_flags, bool subtract, | 1453 void AddSubHelper(OperandSize os, bool set_flags, bool subtract, |
| 1448 Register rd, Register rn, Operand o) { | 1454 Register rd, Register rn, Operand o) { |
| 1449 ASSERT((rd != R31) && (rn != R31)); | 1455 ASSERT((rd != R31) && (rn != R31)); |
| 1450 const Register crd = ConcreteRegister(rd); | 1456 const Register crd = ConcreteRegister(rd); |
| 1451 const Register crn = ConcreteRegister(rn); | 1457 const Register crn = ConcreteRegister(rn); |
| 1452 if (o.type() == Operand::Immediate) { | 1458 if (o.type() == Operand::Immediate) { |
| 1453 ASSERT(rn != ZR); | 1459 ASSERT(rn != ZR); |
| 1454 EmitAddSubImmOp(subtract ? SUBI : ADDI, crd, crn, o, os, set_flags); | 1460 EmitAddSubImmOp(subtract ? SUBI : ADDI, crd, crn, o, os, set_flags); |
| 1455 } else if (o.type() == Operand::Shifted) { | 1461 } else if (o.type() == Operand::Shifted) { |
| 1456 ASSERT((rd != CSP) && (rn != CSP)); | 1462 ASSERT((rd != CSP) && (rn != CSP)); |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1936 Register value, | 1942 Register value, |
| 1937 Label* no_update); | 1943 Label* no_update); |
| 1938 | 1944 |
| 1939 DISALLOW_ALLOCATION(); | 1945 DISALLOW_ALLOCATION(); |
| 1940 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1946 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1941 }; | 1947 }; |
| 1942 | 1948 |
| 1943 } // namespace dart | 1949 } // namespace dart |
| 1944 | 1950 |
| 1945 #endif // VM_ASSEMBLER_ARM64_H_ | 1951 #endif // VM_ASSEMBLER_ARM64_H_ |
| OLD | NEW |