| Index: src/ic-arm.cc
|
| ===================================================================
|
| --- src/ic-arm.cc (revision 288)
|
| +++ src/ic-arm.cc (working copy)
|
| @@ -407,17 +407,15 @@
|
| // -- lr: return address
|
| // -----------------------------------
|
|
|
| - // Setup number of arguments for EnterJSFrame.
|
| - __ mov(r0, Operand(argc));
|
| - // Get the receiver of the function from the stack into r1.
|
| - __ ldr(r1, MemOperand(sp, argc * kPointerSize));
|
| - __ EnterJSFrame(0);
|
| - __ pop(); // remove the code slot
|
| + // Get the receiver of the function from the stack.
|
| + __ ldr(r2, MemOperand(sp, argc * kPointerSize));
|
| + // Get the name of the function to call from the stack.
|
| + __ ldr(r1, MemOperand(sp, (argc + 1) * kPointerSize));
|
|
|
| + __ EnterInternalFrame();
|
| +
|
| // Push the receiver and the name of the function.
|
| - __ ldr(r0, MemOperand(pp, 0));
|
| - __ mov(r2, Operand(0)); // code slot == 0
|
| - __ stm(db_w, sp, r0.bit() | r1.bit() | r2.bit());
|
| + __ stm(db_w, sp, r1.bit() | r2.bit());
|
|
|
| // Call the entry.
|
| __ mov(r0, Operand(2));
|
| @@ -429,7 +427,7 @@
|
| // Move result to r1.
|
| __ mov(r1, Operand(r0));
|
|
|
| - __ ExitJSFrame(DO_NOT_RETURN);
|
| + __ ExitInternalFrame();
|
|
|
| // Patch the function on the stack; 1 ~ receiver.
|
| __ str(r1, MemOperand(sp, (argc + 1) * kPointerSize));
|
|
|