| Index: src/arm/debug-arm.cc
|
| diff --git a/src/arm/debug-arm.cc b/src/arm/debug-arm.cc
|
| index 97883199f23b309cdee288ff53c10d19e7451d43..aad40c2f38a09472c61ccdb978b7759354188233 100644
|
| --- a/src/arm/debug-arm.cc
|
| +++ b/src/arm/debug-arm.cc
|
| @@ -298,21 +298,26 @@ void DebugCodegen::GenerateFrameDropperLiveEdit(MacroAssembler* masm) {
|
| __ mov(r1, Operand::Zero());
|
| __ str(r1, MemOperand(ip, 0));
|
|
|
| - // We do not know our frame height, but set sp based on fp.
|
| - __ sub(sp, fp, Operand(kPointerSize));
|
| + // Load the function pointer off of our current stack frame.
|
| + __ ldr(r1, MemOperand(fp,
|
| + StandardFrameConstants::kConstantPoolOffset - kPointerSize));
|
|
|
| - __ Pop(lr, fp, r1); // Return address, Frame, Function.
|
| + // Pop return address, frame and constant pool pointer (if
|
| + // FLAG_enable_ool_constant_pool).
|
| + __ LeaveFrame(StackFrame::INTERNAL);
|
|
|
| - // Load context from the function.
|
| - __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset));
|
| + { ConstantPoolUnavailableScope constant_pool_unavailable(masm);
|
| + // Load context from the function.
|
| + __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset));
|
|
|
| - // Get function code.
|
| - __ ldr(ip, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
|
| - __ ldr(ip, FieldMemOperand(ip, SharedFunctionInfo::kCodeOffset));
|
| - __ add(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag));
|
| + // Get function code.
|
| + __ ldr(ip, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
|
| + __ ldr(ip, FieldMemOperand(ip, SharedFunctionInfo::kCodeOffset));
|
| + __ add(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag));
|
|
|
| - // Re-run JSFunction, r1 is function, cp is context.
|
| - __ Jump(ip);
|
| + // Re-run JSFunction, r1 is function, cp is context.
|
| + __ Jump(ip);
|
| + }
|
| }
|
|
|
|
|
|
|