diff options
Diffstat (limited to 'src/ia32/assembler-ia32-inl.h')
-rw-r--r-- | src/ia32/assembler-ia32-inl.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/ia32/assembler-ia32-inl.h b/src/ia32/assembler-ia32-inl.h index eb2a04db..7fa151e9 100644 --- a/src/ia32/assembler-ia32-inl.h +++ b/src/ia32/assembler-ia32-inl.h @@ -121,32 +121,33 @@ Address* RelocInfo::target_reference_address() { Address RelocInfo::call_address() { - ASSERT(IsPatchedReturnSequence()); + ASSERT((IsJSReturn(rmode()) && IsPatchedReturnSequence()) || + (IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence())); return Assembler::target_address_at(pc_ + 1); } void RelocInfo::set_call_address(Address target) { - ASSERT(IsPatchedReturnSequence()); + ASSERT((IsJSReturn(rmode()) && IsPatchedReturnSequence()) || + (IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence())); Assembler::set_target_address_at(pc_ + 1, target); } Object* RelocInfo::call_object() { - ASSERT(IsPatchedReturnSequence()); return *call_object_address(); } -Object** RelocInfo::call_object_address() { - ASSERT(IsPatchedReturnSequence()); - return reinterpret_cast<Object**>(pc_ + 1); +void RelocInfo::set_call_object(Object* target) { + *call_object_address() = target; } -void RelocInfo::set_call_object(Object* target) { - ASSERT(IsPatchedReturnSequence()); - *call_object_address() = target; +Object** RelocInfo::call_object_address() { + ASSERT((IsJSReturn(rmode()) && IsPatchedReturnSequence()) || + (IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence())); + return reinterpret_cast<Object**>(pc_ + 1); } |