Index: src/arm/assembler-arm-inl.h |
diff --git a/src/arm/assembler-arm-inl.h b/src/arm/assembler-arm-inl.h |
index 661895d82592973a7575da4f8722b00ae0abd250..50b5ea2053861b13bd5eb07801907e07db2fbf34 100644 |
--- a/src/arm/assembler-arm-inl.h |
+++ b/src/arm/assembler-arm-inl.h |
@@ -114,7 +114,7 @@ void RelocInfo::set_target_object(HeapObject* target, |
WriteBarrierMode write_barrier_mode, |
ICacheFlushMode icache_flush_mode) { |
DCHECK(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT); |
- Assembler::set_target_address_at(isolate_, pc_, host_, |
+ Assembler::set_target_address_at(target->GetIsolate(), pc_, host_, |
reinterpret_cast<Address>(target), |
icache_flush_mode); |
if (write_barrier_mode == UPDATE_WRITE_BARRIER && host() != NULL) { |
@@ -148,13 +148,12 @@ Address RelocInfo::target_runtime_entry(Assembler* origin) { |
return target_address(); |
} |
- |
-void RelocInfo::set_target_runtime_entry(Address target, |
+void RelocInfo::set_target_runtime_entry(Isolate* isolate, Address target, |
WriteBarrierMode write_barrier_mode, |
ICacheFlushMode icache_flush_mode) { |
DCHECK(IsRuntimeEntry(rmode_)); |
if (target_address() != target) |
- set_target_address(target, write_barrier_mode, icache_flush_mode); |
+ set_target_address(isolate, target, write_barrier_mode, icache_flush_mode); |
} |
@@ -213,8 +212,7 @@ Address RelocInfo::debug_call_address() { |
return Memory::Address_at(pc_ + Assembler::kPatchDebugBreakSlotAddressOffset); |
} |
- |
-void RelocInfo::set_debug_call_address(Address target) { |
+void RelocInfo::set_debug_call_address(Isolate* isolate, Address target) { |
DCHECK(IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence()); |
Memory::Address_at(pc_ + Assembler::kPatchDebugBreakSlotAddressOffset) = |
target; |
@@ -225,15 +223,14 @@ void RelocInfo::set_debug_call_address(Address target) { |
} |
} |
- |
-void RelocInfo::WipeOut() { |
+void RelocInfo::WipeOut(Isolate* isolate) { |
DCHECK(IsEmbeddedObject(rmode_) || IsCodeTarget(rmode_) || |
IsRuntimeEntry(rmode_) || IsExternalReference(rmode_) || |
IsInternalReference(rmode_)); |
if (IsInternalReference(rmode_)) { |
Memory::Address_at(pc_) = NULL; |
} else { |
- Assembler::set_target_address_at(isolate_, pc_, host_, NULL); |
+ Assembler::set_target_address_at(isolate, pc_, host_, NULL); |
} |
} |
@@ -527,6 +524,7 @@ Address Assembler::target_address_at(Address pc, Address constant_pool) { |
void Assembler::set_target_address_at(Isolate* isolate, Address pc, |
Address constant_pool, Address target, |
ICacheFlushMode icache_flush_mode) { |
+ DCHECK_IMPLIES(isolate == nullptr, icache_flush_mode == SKIP_ICACHE_FLUSH); |
if (is_constant_pool_load(pc)) { |
// This is a constant pool lookup. Update the entry in the constant pool. |
Memory::Address_at(constant_pool_entry_address(pc, constant_pool)) = target; |