| 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));
|
|
|