| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 2cd254bd00d324567a43cac742d5837ccc9636ab..110dd2501734c8a62f79dad2471272d22195a2cc 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -2523,23 +2523,19 @@ void CallFunctionStub::Generate(MacroAssembler* masm) {
|
| // The receiver might implicitly be the global object. This is
|
| // indicated by passing the hole as the receiver to the call
|
| // function stub.
|
| - Label call;
|
| if (ReceiverMightBeImplicit()) {
|
| Label try_call, patch_current_context;
|
| - if (ReceiverMightBeImplicit()) {
|
| - // Get the receiver from the stack.
|
| - // +1 ~ return address
|
| - __ mov(eax, Operand(esp, (argc_ + 1) * kPointerSize));
|
| - // Call as function is indicated with the hole.
|
| - __ cmp(eax, isolate->factory()->the_hole_value());
|
| - __ j(not_equal, &try_call, Label::kNear);
|
| - }
|
| + // Get the receiver from the stack.
|
| + // +1 ~ return address
|
| + __ mov(eax, Operand(esp, (argc_ + 1) * kPointerSize));
|
| + // Call as function is indicated with the hole.
|
| + __ cmp(eax, isolate->factory()->the_hole_value());
|
| + __ j(not_equal, &try_call, Label::kNear);
|
|
|
| // Patch the global object on the stack.
|
| __ mov(Operand(esp, (argc_ + 1) * kPointerSize),
|
| isolate->factory()->undefined_value());
|
|
|
| - // Goto slow case if we do not have a function.
|
| __ bind(&try_call);
|
| }
|
|
|
| @@ -2547,8 +2543,6 @@ void CallFunctionStub::Generate(MacroAssembler* masm) {
|
| __ CmpObjectType(edi, JS_FUNCTION_TYPE, ecx);
|
| __ j(not_equal, &slow);
|
|
|
| - __ bind(&call);
|
| -
|
| if (RecordCallTarget()) {
|
| GenerateRecordCallTarget(masm);
|
| }
|
| @@ -2560,18 +2554,10 @@ void CallFunctionStub::Generate(MacroAssembler* masm) {
|
| Label call_as_function;
|
| __ cmp(eax, isolate->factory()->the_hole_value());
|
| __ j(equal, &call_as_function);
|
| - __ InvokeFunction(edi,
|
| - actual,
|
| - JUMP_FUNCTION,
|
| - NullCallWrapper(),
|
| - CALL_AS_METHOD);
|
| + __ InvokeFunction(edi, actual, JUMP_FUNCTION, NullCallWrapper());
|
| __ bind(&call_as_function);
|
| }
|
| - __ InvokeFunction(edi,
|
| - actual,
|
| - JUMP_FUNCTION,
|
| - NullCallWrapper(),
|
| - CALL_AS_FUNCTION);
|
| + __ InvokeFunction(edi, actual, JUMP_FUNCTION, NullCallWrapper());
|
|
|
| // Slow-case: Non-function called.
|
| __ bind(&slow);
|
| @@ -2590,7 +2576,6 @@ void CallFunctionStub::Generate(MacroAssembler* masm) {
|
| __ push(ecx);
|
| __ Set(eax, Immediate(argc_ + 1));
|
| __ Set(ebx, Immediate(0));
|
| - __ SetCallKind(ecx, CALL_AS_FUNCTION);
|
| __ GetBuiltinEntry(edx, Builtins::CALL_FUNCTION_PROXY);
|
| {
|
| Handle<Code> adaptor = isolate->builtins()->ArgumentsAdaptorTrampoline();
|
| @@ -2603,7 +2588,6 @@ void CallFunctionStub::Generate(MacroAssembler* masm) {
|
| __ mov(Operand(esp, (argc_ + 1) * kPointerSize), edi);
|
| __ Set(eax, Immediate(argc_));
|
| __ Set(ebx, Immediate(0));
|
| - __ SetCallKind(ecx, CALL_AS_FUNCTION);
|
| __ GetBuiltinEntry(edx, Builtins::CALL_NON_FUNCTION);
|
| Handle<Code> adaptor = isolate->builtins()->ArgumentsAdaptorTrampoline();
|
| __ jmp(adaptor, RelocInfo::CODE_TARGET);
|
| @@ -2651,7 +2635,6 @@ void CallConstructStub::Generate(MacroAssembler* masm) {
|
| __ Set(ebx, Immediate(0));
|
| Handle<Code> arguments_adaptor =
|
| masm->isolate()->builtins()->ArgumentsAdaptorTrampoline();
|
| - __ SetCallKind(ecx, CALL_AS_METHOD);
|
| __ jmp(arguments_adaptor, RelocInfo::CODE_TARGET);
|
| }
|
|
|
| @@ -5350,8 +5333,7 @@ void StubFailureTailCallTrampolineStub::Generate(MacroAssembler* masm) {
|
| __ sub(eax, Immediate(1));
|
| masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE);
|
| ParameterCount argument_count(eax);
|
| - __ InvokeFunction(
|
| - edi, argument_count, JUMP_FUNCTION, NullCallWrapper(), CALL_AS_METHOD);
|
| + __ InvokeFunction(edi, argument_count, JUMP_FUNCTION, NullCallWrapper());
|
| }
|
|
|
|
|
|
|