| 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);
|
| }
|
|
|