| Index: src/builtins-ia32.cc
|
| ===================================================================
|
| --- src/builtins-ia32.cc (revision 483)
|
| +++ src/builtins-ia32.cc (working copy)
|
| @@ -56,8 +56,8 @@
|
| // -- edi: constructor function
|
| // -----------------------------------
|
|
|
| - // Enter an internal frame.
|
| - __ EnterInternalFrame();
|
| + // Enter a construct frame.
|
| + __ EnterConstructFrame();
|
|
|
| // Store a smi-tagged arguments count on the stack.
|
| __ shl(eax, kSmiTagSize);
|
| @@ -265,10 +265,8 @@
|
| __ j(greater_equal, &loop);
|
|
|
| // Call the function.
|
| - Label return_site;
|
| ParameterCount actual(eax);
|
| __ InvokeFunction(edi, actual, CALL_FUNCTION);
|
| - __ bind(&return_site);
|
|
|
| // Restore context from the frame.
|
| __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
|
| @@ -294,10 +292,10 @@
|
| __ bind(&use_receiver);
|
| __ mov(eax, Operand(esp, 0));
|
|
|
| - // Restore the arguments count and exit the internal frame.
|
| + // Restore the arguments count and leave the construct frame.
|
| __ bind(&exit);
|
| __ mov(ebx, Operand(esp, kPointerSize)); // get arguments count
|
| - __ LeaveInternalFrame();
|
| + __ LeaveConstructFrame();
|
|
|
| // Remove caller arguments from the stack and return.
|
| ASSERT(kSmiTagSize == 1 && kSmiTag == 0);
|
| @@ -305,11 +303,6 @@
|
| __ lea(esp, Operand(esp, ebx, times_2, 1 * kPointerSize)); // 1 ~ receiver
|
| __ push(ecx);
|
| __ ret(0);
|
| -
|
| - // Compute the offset from the beginning of the JSConstructCall
|
| - // builtin code object to the return address after the call.
|
| - ASSERT(return_site.is_bound());
|
| - construct_call_pc_offset_ = return_site.pos() + Code::kHeaderSize;
|
| }
|
|
|
|
|
| @@ -662,7 +655,7 @@
|
| }
|
|
|
|
|
| -static void ExitArgumentsAdaptorFrame(MacroAssembler* masm) {
|
| +static void LeaveArgumentsAdaptorFrame(MacroAssembler* masm) {
|
| // Retrieve the number of arguments from the stack.
|
| __ mov(ebx, Operand(ebp, ArgumentsAdaptorFrameConstants::kLengthOffset));
|
|
|
| @@ -742,20 +735,13 @@
|
| }
|
|
|
| // Call the entry point.
|
| - Label return_site;
|
| __ bind(&invoke);
|
| __ call(Operand(edx));
|
| - __ bind(&return_site);
|
|
|
| - ExitArgumentsAdaptorFrame(masm);
|
| + // Leave frame and return.
|
| + LeaveArgumentsAdaptorFrame(masm);
|
| __ ret(0);
|
|
|
| - // Compute the offset from the beginning of the ArgumentsAdaptorTrampoline
|
| - // builtin code object to the return address after the call.
|
| - ASSERT(return_site.is_bound());
|
| - arguments_adaptor_call_pc_offset_ = return_site.pos() + Code::kHeaderSize;
|
| -
|
| -
|
| // -------------------------------------------
|
| // Dont adapt arguments.
|
| // -------------------------------------------
|
|
|