| 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_MIPS_H_ | 5 #ifndef VM_ASSEMBLER_MIPS_H_ |
| 6 #define VM_ASSEMBLER_MIPS_H_ | 6 #define VM_ASSEMBLER_MIPS_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_mips.h directly; use assembler.h instead. | 9 #error Do not include assembler_mips.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 898 // None of rd, rs, rt, or ro may be TMP. | 898 // None of rd, rs, rt, or ro may be TMP. |
| 899 void SubImmediateDetectOverflow(Register rd, Register rs, int32_t imm, | 899 void SubImmediateDetectOverflow(Register rd, Register rs, int32_t imm, |
| 900 Register ro) { | 900 Register ro) { |
| 901 ASSERT(!in_delay_slot_); | 901 ASSERT(!in_delay_slot_); |
| 902 LoadImmediate(rd, imm); | 902 LoadImmediate(rd, imm); |
| 903 SubuDetectOverflow(rd, rs, rd, ro); | 903 SubuDetectOverflow(rd, rs, rd, ro); |
| 904 } | 904 } |
| 905 | 905 |
| 906 void Branch(const StubEntry& stub_entry, Register pp = PP); | 906 void Branch(const StubEntry& stub_entry, Register pp = PP); |
| 907 | 907 |
| 908 void BranchLink(const ExternalLabel* label, Patchability patchable); | |
| 909 | |
| 910 void BranchLink(const StubEntry& stub_entry, | 908 void BranchLink(const StubEntry& stub_entry, |
| 911 Patchability patchable = kNotPatchable); | 909 Patchability patchable = kNotPatchable); |
| 912 | 910 |
| 913 void BranchLinkPatchable(const StubEntry& stub_entry); | 911 void BranchLinkPatchable(const StubEntry& stub_entry); |
| 914 | 912 |
| 915 void Drop(intptr_t stack_elements) { | 913 void Drop(intptr_t stack_elements) { |
| 916 ASSERT(stack_elements >= 0); | 914 ASSERT(stack_elements >= 0); |
| 917 if (stack_elements > 0) { | 915 if (stack_elements > 0) { |
| 918 addiu(SP, SP, Immediate(stack_elements * kWordSize)); | 916 addiu(SP, SP, Immediate(stack_elements * kWordSize)); |
| 919 } | 917 } |
| (...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1505 void ReserveAlignedFrameSpace(intptr_t frame_space); | 1503 void ReserveAlignedFrameSpace(intptr_t frame_space); |
| 1506 | 1504 |
| 1507 // Create a frame for calling into runtime that preserves all volatile | 1505 // Create a frame for calling into runtime that preserves all volatile |
| 1508 // registers. Frame's SP is guaranteed to be correctly aligned and | 1506 // registers. Frame's SP is guaranteed to be correctly aligned and |
| 1509 // frame_space bytes are reserved under it. | 1507 // frame_space bytes are reserved under it. |
| 1510 void EnterCallRuntimeFrame(intptr_t frame_space); | 1508 void EnterCallRuntimeFrame(intptr_t frame_space); |
| 1511 void LeaveCallRuntimeFrame(); | 1509 void LeaveCallRuntimeFrame(); |
| 1512 | 1510 |
| 1513 void LoadObject(Register rd, const Object& object); | 1511 void LoadObject(Register rd, const Object& object); |
| 1514 void LoadUniqueObject(Register rd, const Object& object); | 1512 void LoadUniqueObject(Register rd, const Object& object); |
| 1515 void LoadExternalLabel(Register rd, | |
| 1516 const ExternalLabel* label, | |
| 1517 Patchability patchable); | |
| 1518 void LoadFunctionFromCalleePool(Register dst, | 1513 void LoadFunctionFromCalleePool(Register dst, |
| 1519 const Function& function, | 1514 const Function& function, |
| 1520 Register new_pp); | 1515 Register new_pp); |
| 1521 void LoadNativeEntry(Register rd, | 1516 void LoadNativeEntry(Register rd, |
| 1522 const ExternalLabel* label, | 1517 const ExternalLabel* label, |
| 1523 Patchability patchable); | 1518 Patchability patchable); |
| 1524 void PushObject(const Object& object); | 1519 void PushObject(const Object& object); |
| 1525 | 1520 |
| 1526 void LoadIsolate(Register result); | 1521 void LoadIsolate(Register result); |
| 1527 | 1522 |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1737 Register value, | 1732 Register value, |
| 1738 Label* no_update); | 1733 Label* no_update); |
| 1739 | 1734 |
| 1740 DISALLOW_ALLOCATION(); | 1735 DISALLOW_ALLOCATION(); |
| 1741 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1736 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1742 }; | 1737 }; |
| 1743 | 1738 |
| 1744 } // namespace dart | 1739 } // namespace dart |
| 1745 | 1740 |
| 1746 #endif // VM_ASSEMBLER_MIPS_H_ | 1741 #endif // VM_ASSEMBLER_MIPS_H_ |
| OLD | NEW |