Index: src/ia32/ic-ia32.cc |
=================================================================== |
--- src/ia32/ic-ia32.cc (revision 8110) |
+++ 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)); |
- // 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. |
@@ -1090,13 +1090,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); |