| 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 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 626 } | 626 } |
| 627 void andw_(Register rd, Register rn, Operand o) { | 627 void andw_(Register rd, Register rn, Operand o) { |
| 628 EmitLogicalShiftOp(AND, rd, rn, o, kWord); | 628 EmitLogicalShiftOp(AND, rd, rn, o, kWord); |
| 629 } | 629 } |
| 630 void bic(Register rd, Register rn, Operand o) { | 630 void bic(Register rd, Register rn, Operand o) { |
| 631 EmitLogicalShiftOp(BIC, rd, rn, o, kDoubleWord); | 631 EmitLogicalShiftOp(BIC, rd, rn, o, kDoubleWord); |
| 632 } | 632 } |
| 633 void orr(Register rd, Register rn, Operand o) { | 633 void orr(Register rd, Register rn, Operand o) { |
| 634 EmitLogicalShiftOp(ORR, rd, rn, o, kDoubleWord); | 634 EmitLogicalShiftOp(ORR, rd, rn, o, kDoubleWord); |
| 635 } | 635 } |
| 636 void orrw(Register rd, Register rn, Operand o) { |
| 637 EmitLogicalShiftOp(ORR, rd, rn, o, kWord); |
| 638 } |
| 636 void orn(Register rd, Register rn, Operand o) { | 639 void orn(Register rd, Register rn, Operand o) { |
| 637 EmitLogicalShiftOp(ORN, rd, rn, o, kDoubleWord); | 640 EmitLogicalShiftOp(ORN, rd, rn, o, kDoubleWord); |
| 638 } | 641 } |
| 639 void eor(Register rd, Register rn, Operand o) { | 642 void eor(Register rd, Register rn, Operand o) { |
| 640 EmitLogicalShiftOp(EOR, rd, rn, o, kDoubleWord); | 643 EmitLogicalShiftOp(EOR, rd, rn, o, kDoubleWord); |
| 641 } | 644 } |
| 642 void eorw(Register rd, Register rn, Operand o) { | 645 void eorw(Register rd, Register rn, Operand o) { |
| 643 EmitLogicalShiftOp(EOR, rd, rn, o, kWord); | 646 EmitLogicalShiftOp(EOR, rd, rn, o, kWord); |
| 644 } | 647 } |
| 645 void eon(Register rd, Register rn, Operand o) { | 648 void eon(Register rd, Register rn, Operand o) { |
| (...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1331 Push(TMP); | 1334 Push(TMP); |
| 1332 } | 1335 } |
| 1333 void CompareObject(Register reg, const Object& object, Register pp); | 1336 void CompareObject(Register reg, const Object& object, Register pp); |
| 1334 | 1337 |
| 1335 void LoadClassId(Register result, Register object, Register pp); | 1338 void LoadClassId(Register result, Register object, Register pp); |
| 1336 void LoadClassById(Register result, Register class_id, Register pp); | 1339 void LoadClassById(Register result, Register class_id, Register pp); |
| 1337 void LoadClass(Register result, Register object, Register pp); | 1340 void LoadClass(Register result, Register object, Register pp); |
| 1338 void CompareClassId(Register object, intptr_t class_id, Register pp); | 1341 void CompareClassId(Register object, intptr_t class_id, Register pp); |
| 1339 void LoadTaggedClassIdMayBeSmi(Register result, Register object); | 1342 void LoadTaggedClassIdMayBeSmi(Register result, Register object); |
| 1340 | 1343 |
| 1344 void ComputeRange(Register result, |
| 1345 Register value, |
| 1346 Register scratch, |
| 1347 Label* miss); |
| 1348 |
| 1349 void UpdateRangeFeedback(Register value, |
| 1350 intptr_t idx, |
| 1351 Register ic_data, |
| 1352 Register scratch1, |
| 1353 Register scratch2, |
| 1354 Label* miss); |
| 1355 |
| 1341 void EnterFrame(intptr_t frame_size); | 1356 void EnterFrame(intptr_t frame_size); |
| 1342 void LeaveFrame(); | 1357 void LeaveFrame(); |
| 1343 | 1358 |
| 1344 // When entering Dart code from C++, we copy the system stack pointer (CSP) | 1359 // When entering Dart code from C++, we copy the system stack pointer (CSP) |
| 1345 // to the Dart stack pointer (SP), and reserve a little space for the stack | 1360 // to the Dart stack pointer (SP), and reserve a little space for the stack |
| 1346 // to grow. | 1361 // to grow. |
| 1347 void SetupDartSP(intptr_t reserved_space) { | 1362 void SetupDartSP(intptr_t reserved_space) { |
| 1348 ASSERT(Utils::IsAligned(reserved_space, 16)); | 1363 ASSERT(Utils::IsAligned(reserved_space, 16)); |
| 1349 mov(SP, CSP); | 1364 mov(SP, CSP); |
| 1350 sub(CSP, CSP, Operand(reserved_space)); | 1365 sub(CSP, CSP, Operand(reserved_space)); |
| (...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1953 Register value, | 1968 Register value, |
| 1954 Label* no_update); | 1969 Label* no_update); |
| 1955 | 1970 |
| 1956 DISALLOW_ALLOCATION(); | 1971 DISALLOW_ALLOCATION(); |
| 1957 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1972 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1958 }; | 1973 }; |
| 1959 | 1974 |
| 1960 } // namespace dart | 1975 } // namespace dart |
| 1961 | 1976 |
| 1962 #endif // VM_ASSEMBLER_ARM64_H_ | 1977 #endif // VM_ASSEMBLER_ARM64_H_ |
| OLD | NEW |