| Index: src/codegen-arm.cc
|
| ===================================================================
|
| --- src/codegen-arm.cc (revision 361)
|
| +++ src/codegen-arm.cc (working copy)
|
| @@ -1629,8 +1629,8 @@
|
| void CEntryStub::GenerateCore(MacroAssembler* masm,
|
| Label* throw_normal_exception,
|
| Label* throw_out_of_memory_exception,
|
| - bool do_gc,
|
| - bool do_restore) {
|
| + StackFrame::Type frame_type,
|
| + bool do_gc) {
|
| // r0: result parameter for PerformGC, if any
|
| // r4: number of arguments including receiver (C callee-saved)
|
| // r5: pointer to builtin function (C callee-saved)
|
| @@ -1671,22 +1671,12 @@
|
| __ tst(r2, Operand(kFailureTagMask));
|
| __ b(eq, &failure_returned);
|
|
|
| - // Restore the memory copy of the registers by digging them out from
|
| - // the stack.
|
| - if (do_restore) {
|
| - // Ok to clobber r2 and r3.
|
| - const int kCallerSavedSize = kNumJSCallerSaved * kPointerSize;
|
| - const int kOffset = ExitFrameConstants::kDebugMarkOffset - kCallerSavedSize;
|
| - __ add(r3, fp, Operand(kOffset));
|
| - __ CopyRegistersFromStackToMemory(r3, r2, kJSCallerSaved);
|
| - }
|
| -
|
| - // Exit C frame and return
|
| + // Exit C frame and return.
|
| // r0:r1: result
|
| // sp: stack pointer
|
| // fp: frame pointer
|
| // pp: caller's parameter pointer pp (restored as C callee-saved)
|
| - __ LeaveExitFrame();
|
| + __ LeaveExitFrame(frame_type);
|
|
|
| // check if we should retry or throw exception
|
| Label retry;
|
| @@ -1741,18 +1731,10 @@
|
| // Enter the exit frame that transitions from JavaScript to C++.
|
| __ EnterExitFrame(frame_type);
|
|
|
| - if (is_debug_break) {
|
| - // Save the state of all registers to the stack from the memory location.
|
| - // Use sp as base to push.
|
| - __ CopyRegistersFromMemoryToStack(sp, kJSCallerSaved);
|
| - }
|
| + // r4: number of arguments (C callee-saved)
|
| + // r5: pointer to builtin function (C callee-saved)
|
| + // r6: pointer to first argument (C callee-saved)
|
|
|
| - // r4: number of arguments
|
| - // r5: pointer to builtin function (C callee-saved)
|
| -
|
| - Label entry;
|
| - __ bind(&entry);
|
| -
|
| Label throw_out_of_memory_exception;
|
| Label throw_normal_exception;
|
|
|
| @@ -1764,20 +1746,20 @@
|
| GenerateCore(masm,
|
| &throw_normal_exception,
|
| &throw_out_of_memory_exception,
|
| - FLAG_gc_greedy,
|
| - is_debug_break);
|
| + frame_type,
|
| + FLAG_gc_greedy);
|
| #else
|
| GenerateCore(masm,
|
| &throw_normal_exception,
|
| &throw_out_of_memory_exception,
|
| - false,
|
| - is_debug_break);
|
| + frame_type,
|
| + false);
|
| #endif
|
| GenerateCore(masm,
|
| &throw_normal_exception,
|
| &throw_out_of_memory_exception,
|
| - true,
|
| - is_debug_break);
|
| + frame_type,
|
| + true);
|
|
|
| __ bind(&throw_out_of_memory_exception);
|
| GenerateThrowOutOfMemory(masm);
|
|
|