Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: runtime/vm/assembler_mips.h

Issue 1231463002: Don't bother trying to reuse object pool entries for ICs, type test caches, or edge counters as the… (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/vm/assembler_arm64.cc ('k') | runtime/vm/assembler_mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « runtime/vm/assembler_arm64.cc ('k') | runtime/vm/assembler_mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698