Index: src/full-codegen/x87/full-codegen-x87.cc |
diff --git a/src/full-codegen/x87/full-codegen-x87.cc b/src/full-codegen/x87/full-codegen-x87.cc |
index e6d5e8cecbf8524b05997a583bd3424126f47ef7..ef48ec13ab6f838b75a60c0ec5130ae3d819db34 100644 |
--- a/src/full-codegen/x87/full-codegen-x87.cc |
+++ b/src/full-codegen/x87/full-codegen-x87.cc |
@@ -3907,9 +3907,6 @@ void FullCodeGenerator::EmitDefaultConstructorCallSuper(CallRuntime* expr) { |
VisitForStackValue(args->at(0)); |
VisitForStackValue(args->at(1)); |
- // Load original constructor into ecx. |
- __ mov(ecx, Operand(esp, 1 * kPointerSize)); |
- |
// Check if the calling frame is an arguments adaptor frame. |
Label adaptor_frame, args_set_up, runtime; |
__ mov(edx, Operand(ebp, StandardFrameConstants::kCallerFPOffset)); |
@@ -3939,10 +3936,9 @@ void FullCodeGenerator::EmitDefaultConstructorCallSuper(CallRuntime* expr) { |
__ bind(&args_set_up); |
- __ mov(edi, Operand(esp, eax, times_pointer_size, 0)); |
- __ mov(ebx, Immediate(isolate()->factory()->undefined_value())); |
- CallConstructStub stub(isolate(), SUPER_CONSTRUCTOR_CALL); |
- __ call(stub.GetCode(), RelocInfo::CONSTRUCT_CALL); |
+ __ mov(edx, Operand(esp, eax, times_pointer_size, 1 * kPointerSize)); |
+ __ mov(edi, Operand(esp, eax, times_pointer_size, 0 * kPointerSize)); |
+ __ Call(isolate()->builtins()->Construct(), RelocInfo::CONSTRUCT_CALL); |
// Restore context register. |
__ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset)); |