Index: src/full-codegen/x64/full-codegen-x64.cc |
diff --git a/src/full-codegen/x64/full-codegen-x64.cc b/src/full-codegen/x64/full-codegen-x64.cc |
index 8778899c896d36b4fce39d89327187dc77d24ca3..6d7a5e1d086d2088349a189fe3e6850c8ff36cc3 100644 |
--- a/src/full-codegen/x64/full-codegen-x64.cc |
+++ b/src/full-codegen/x64/full-codegen-x64.cc |
@@ -3950,9 +3950,6 @@ void FullCodeGenerator::EmitDefaultConstructorCallSuper(CallRuntime* expr) { |
VisitForStackValue(args->at(0)); |
VisitForStackValue(args->at(1)); |
- // Load original constructor into rcx. |
- __ movp(rcx, Operand(rsp, 1 * kPointerSize)); |
- |
// Check if the calling frame is an arguments adaptor frame. |
Label adaptor_frame, args_set_up, runtime; |
__ movp(rdx, Operand(rbp, StandardFrameConstants::kCallerFPOffset)); |
@@ -3981,11 +3978,9 @@ void FullCodeGenerator::EmitDefaultConstructorCallSuper(CallRuntime* expr) { |
} |
__ bind(&args_set_up); |
- __ movp(rdi, Operand(rsp, rax, times_pointer_size, 0)); |
- __ LoadRoot(rbx, Heap::kUndefinedValueRootIndex); |
- |
- CallConstructStub stub(isolate(), SUPER_CONSTRUCTOR_CALL); |
- __ call(stub.GetCode(), RelocInfo::CONSTRUCT_CALL); |
+ __ movp(rdx, Operand(rsp, rax, times_pointer_size, 1 * kPointerSize)); |
+ __ movp(rdi, Operand(rsp, rax, times_pointer_size, 0 * kPointerSize)); |
+ __ Call(isolate()->builtins()->Construct(), RelocInfo::CONSTRUCT_CALL); |
// Restore context register. |
__ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset)); |