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

Unified Diff: runtime/vm/assembler_mips.h

Issue 886173003: VM: Align implementations of assembler constant pools. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/assembler_mips.h
===================================================================
--- runtime/vm/assembler_mips.h (revision 43497)
+++ runtime/vm/assembler_mips.h (working copy)
@@ -236,7 +236,6 @@
public:
explicit Assembler(bool use_far_branches = false)
: buffer_(),
- object_pool_(GrowableObjectArray::Handle()),
prologue_offset_(-1),
use_far_branches_(use_far_branches),
delay_slot_available_(false),
@@ -263,7 +262,7 @@
const ZoneGrowableArray<intptr_t>& GetPointerOffsets() const {
return buffer_.pointer_offsets();
}
- const GrowableObjectArray& object_pool() const { return object_pool_; }
+ const GrowableObjectArray& object_pool() const { return object_pool_.data(); }
void FinalizeInstructions(const MemoryRegion& region) {
buffer_.FinalizeInstructions(region);
}
@@ -927,9 +926,9 @@
void BranchLinkPatchable(const ExternalLabel* label) {
ASSERT(!in_delay_slot_);
- const int32_t offset =
- Array::data_offset() + 4*AddExternalLabel(label) - kHeapObjectTag;
- LoadWordFromPoolOffset(T9, offset);
+ const int32_t offset = Array::element_offset(
+ object_pool_.FindExternalLabel(label, kPatchable));
+ LoadWordFromPoolOffset(T9, offset - kHeapObjectTag);
jalr(T9);
delay_slot_available_ = false; // CodePatcher expects a nop.
}
@@ -1613,11 +1612,8 @@
private:
AssemblerBuffer buffer_;
- GrowableObjectArray& object_pool_; // Objects and patchable jump targets.
+ ObjectPool object_pool_; // Objects and patchable jump targets.
- // Hashmap for fast lookup in object pool.
- DirectChainedHashMap<ObjIndexPair> object_pool_index_table_;
-
intptr_t prologue_offset_;
bool use_far_branches_;
@@ -1624,9 +1620,6 @@
bool delay_slot_available_;
bool in_delay_slot_;
- int32_t AddObject(const Object& obj);
- int32_t AddExternalLabel(const ExternalLabel* label);
-
class CodeComment : public ZoneAllocated {
public:
CodeComment(intptr_t pc_offset, const String& comment)

Powered by Google App Engine
This is Rietveld 408576698