| 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 1521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1532 void ReserveAlignedFrameSpace(intptr_t frame_space); | 1532 void ReserveAlignedFrameSpace(intptr_t frame_space); |
| 1533 | 1533 |
| 1534 // Create a frame for calling into runtime that preserves all volatile | 1534 // Create a frame for calling into runtime that preserves all volatile |
| 1535 // registers. Frame's SP is guaranteed to be correctly aligned and | 1535 // registers. Frame's SP is guaranteed to be correctly aligned and |
| 1536 // frame_space bytes are reserved under it. | 1536 // frame_space bytes are reserved under it. |
| 1537 void EnterCallRuntimeFrame(intptr_t frame_space); | 1537 void EnterCallRuntimeFrame(intptr_t frame_space); |
| 1538 void LeaveCallRuntimeFrame(); | 1538 void LeaveCallRuntimeFrame(); |
| 1539 | 1539 |
| 1540 void LoadWordFromPoolOffset(Register rd, int32_t offset); | 1540 void LoadWordFromPoolOffset(Register rd, int32_t offset); |
| 1541 void LoadObject(Register rd, const Object& object); | 1541 void LoadObject(Register rd, const Object& object); |
| 1542 void LoadUniqueObject(Register rd, const Object& object); |
| 1542 void LoadExternalLabel(Register rd, | 1543 void LoadExternalLabel(Register rd, |
| 1543 const ExternalLabel* label, | 1544 const ExternalLabel* label, |
| 1544 Patchability patchable); | 1545 Patchability patchable); |
| 1545 void PushObject(const Object& object); | 1546 void PushObject(const Object& object); |
| 1546 | 1547 |
| 1547 void LoadIsolate(Register result); | 1548 void LoadIsolate(Register result); |
| 1548 | 1549 |
| 1549 void LoadClassId(Register result, Register object); | 1550 void LoadClassId(Register result, Register object); |
| 1550 void LoadClassById(Register result, Register class_id); | 1551 void LoadClassById(Register result, Register class_id); |
| 1551 void LoadClass(Register result, Register object); | 1552 void LoadClass(Register result, Register object); |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1644 intptr_t pc_offset_; | 1645 intptr_t pc_offset_; |
| 1645 const String& comment_; | 1646 const String& comment_; |
| 1646 | 1647 |
| 1647 DISALLOW_COPY_AND_ASSIGN(CodeComment); | 1648 DISALLOW_COPY_AND_ASSIGN(CodeComment); |
| 1648 }; | 1649 }; |
| 1649 | 1650 |
| 1650 GrowableArray<CodeComment*> comments_; | 1651 GrowableArray<CodeComment*> comments_; |
| 1651 | 1652 |
| 1652 bool allow_constant_pool_; | 1653 bool allow_constant_pool_; |
| 1653 | 1654 |
| 1655 void LoadObjectHelper(Register rd, const Object& object, bool is_unique); |
| 1656 |
| 1654 void Emit(int32_t value) { | 1657 void Emit(int32_t value) { |
| 1655 // Emitting an instruction clears the delay slot state. | 1658 // Emitting an instruction clears the delay slot state. |
| 1656 in_delay_slot_ = false; | 1659 in_delay_slot_ = false; |
| 1657 delay_slot_available_ = false; | 1660 delay_slot_available_ = false; |
| 1658 AssemblerBuffer::EnsureCapacity ensured(&buffer_); | 1661 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 1659 buffer_.Emit<int32_t>(value); | 1662 buffer_.Emit<int32_t>(value); |
| 1660 } | 1663 } |
| 1661 | 1664 |
| 1662 // Encode CPU instructions according to the types specified in | 1665 // Encode CPU instructions according to the types specified in |
| 1663 // Figures 4-1, 4-2 and 4-3 in VolI-A. | 1666 // Figures 4-1, 4-2 and 4-3 in VolI-A. |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1750 Register value, | 1753 Register value, |
| 1751 Label* no_update); | 1754 Label* no_update); |
| 1752 | 1755 |
| 1753 DISALLOW_ALLOCATION(); | 1756 DISALLOW_ALLOCATION(); |
| 1754 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1757 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1755 }; | 1758 }; |
| 1756 | 1759 |
| 1757 } // namespace dart | 1760 } // namespace dart |
| 1758 | 1761 |
| 1759 #endif // VM_ASSEMBLER_MIPS_H_ | 1762 #endif // VM_ASSEMBLER_MIPS_H_ |
| OLD | NEW |