Index: src/x64/assembler-x64-inl.h |
diff --git a/src/x64/assembler-x64-inl.h b/src/x64/assembler-x64-inl.h |
index 01c60aaf0d334dfa13b43d1d231a59cea33acff2..c8abd22a63edfa7062c490172e5b2973c8352760 100644 |
--- a/src/x64/assembler-x64-inl.h |
+++ b/src/x64/assembler-x64-inl.h |
@@ -201,14 +201,6 @@ void RelocInfo::apply(intptr_t delta) { |
Memory::Address_at(pc_) += static_cast<int32_t>(delta); |
} else if (IsCodeTarget(rmode_)) { |
Memory::int32_at(pc_) -= static_cast<int32_t>(delta); |
- } else if (rmode_ == JS_RETURN && IsPatchedReturnSequence()) { |
- // Special handling of js_return when a break point is set (call |
- // instruction has been inserted). |
- Memory::int32_at(pc_ + 1) -= static_cast<int32_t>(delta); // relocate entry |
- } else if (rmode_ == DEBUG_BREAK_SLOT && IsPatchedDebugBreakSlotSequence()) { |
- // Special handling of debug break slot when a break point is set (call |
- // instruction has been inserted). |
- Memory::int32_at(pc_ + 1) -= static_cast<int32_t>(delta); // relocate entry |
} |
} |
@@ -303,33 +295,34 @@ bool RelocInfo::IsPatchedDebugBreakSlotSequence() { |
Address RelocInfo::call_address() { |
- ASSERT(IsPatchedReturnSequence()); |
+ ASSERT((IsJSReturn(rmode()) && IsPatchedReturnSequence()) || |
+ (IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence())); |
return Memory::Address_at( |
pc_ + Assembler::kRealPatchReturnSequenceAddressOffset); |
} |
void RelocInfo::set_call_address(Address target) { |
- ASSERT(IsPatchedReturnSequence()); |
+ ASSERT((IsJSReturn(rmode()) && IsPatchedReturnSequence()) || |
+ (IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence())); |
Memory::Address_at(pc_ + Assembler::kRealPatchReturnSequenceAddressOffset) = |
target; |
} |
Object* RelocInfo::call_object() { |
- ASSERT(IsPatchedReturnSequence()); |
return *call_object_address(); |
} |
void RelocInfo::set_call_object(Object* target) { |
- ASSERT(IsPatchedReturnSequence()); |
*call_object_address() = target; |
} |
Object** RelocInfo::call_object_address() { |
- ASSERT(IsPatchedReturnSequence()); |
+ ASSERT((IsJSReturn(rmode()) && IsPatchedReturnSequence()) || |
+ (IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence())); |
return reinterpret_cast<Object**>( |
pc_ + Assembler::kPatchReturnSequenceAddressOffset); |
} |