| Index: src/ia32/ic-ia32.cc
|
| ===================================================================
|
| --- src/ia32/ic-ia32.cc (revision 8124)
|
| +++ src/ia32/ic-ia32.cc (working copy)
|
| @@ -928,22 +928,22 @@
|
| // Get the receiver of the function from the stack; 1 ~ return address.
|
| __ mov(edx, Operand(esp, (argc + 1) * kPointerSize));
|
|
|
| - {
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| + // Enter an internal frame.
|
| + __ EnterInternalFrame();
|
|
|
| - // Push the receiver and the name of the function.
|
| - __ push(edx);
|
| - __ push(ecx);
|
| + // Push the receiver and the name of the function.
|
| + __ push(edx);
|
| + __ push(ecx);
|
|
|
| - // Call the entry.
|
| - CEntryStub stub(1);
|
| - __ mov(eax, Immediate(2));
|
| - __ mov(ebx, Immediate(ExternalReference(IC_Utility(id), masm->isolate())));
|
| - __ CallStub(&stub);
|
| + // Call the entry.
|
| + CEntryStub stub(1);
|
| + __ mov(eax, Immediate(2));
|
| + __ mov(ebx, Immediate(ExternalReference(IC_Utility(id), masm->isolate())));
|
| + __ CallStub(&stub);
|
|
|
| - // Move result to edi and exit the internal frame.
|
| - __ mov(edi, eax);
|
| - }
|
| + // Move result to edi and exit the internal frame.
|
| + __ mov(edi, eax);
|
| + __ LeaveInternalFrame();
|
|
|
| // Check if the receiver is a global object of some sort.
|
| // This can happen only for regular CallIC but not KeyedCallIC.
|
| @@ -1090,17 +1090,13 @@
|
| // This branch is taken when calling KeyedCallIC_Miss is neither required
|
| // nor beneficial.
|
| __ IncrementCounter(counters->keyed_call_generic_slow_load(), 1);
|
| -
|
| - {
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| - __ push(ecx); // save the key
|
| - __ push(edx); // pass the receiver
|
| - __ push(ecx); // pass the key
|
| - __ CallRuntime(Runtime::kKeyedGetProperty, 2);
|
| - __ pop(ecx); // restore the key
|
| - // Leave the internal frame.
|
| - }
|
| -
|
| + __ EnterInternalFrame();
|
| + __ push(ecx); // save the key
|
| + __ push(edx); // pass the receiver
|
| + __ push(ecx); // pass the key
|
| + __ CallRuntime(Runtime::kKeyedGetProperty, 2);
|
| + __ pop(ecx); // restore the key
|
| + __ LeaveInternalFrame();
|
| __ mov(edi, eax);
|
| __ jmp(&do_call);
|
|
|
|
|