| Index: src/ia32/ic-ia32.cc
|
| ===================================================================
|
| --- src/ia32/ic-ia32.cc (revision 9277)
|
| +++ src/ia32/ic-ia32.cc (working copy)
|
| @@ -951,22 +951,22 @@
|
| // Get the receiver of the function from the stack; 1 ~ return address.
|
| __ mov(edx, Operand(esp, (argc + 1) * kPointerSize));
|
|
|
| - // Enter an internal frame.
|
| - __ EnterInternalFrame();
|
| + {
|
| + FrameScope scope(masm, StackFrame::INTERNAL);
|
|
|
| - // 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);
|
| - __ LeaveInternalFrame();
|
| + // Move result to edi and exit the internal frame.
|
| + __ mov(edi, eax);
|
| + }
|
|
|
| // Check if the receiver is a global object of some sort.
|
| // This can happen only for regular CallIC but not KeyedCallIC.
|
| @@ -1111,13 +1111,17 @@
|
| // This branch is taken when calling KeyedCallIC_Miss is neither required
|
| // nor beneficial.
|
| __ IncrementCounter(counters->keyed_call_generic_slow_load(), 1);
|
| - __ 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();
|
| +
|
| + {
|
| + 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.
|
| + }
|
| +
|
| __ mov(edi, eax);
|
| __ jmp(&do_call);
|
|
|
|
|