| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
| 8 | 8 |
| 9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| (...skipping 2944 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2955 __ Mov(x3, SmiFromSlot(expr->CallNewFeedbackSlot())); | 2955 __ Mov(x3, SmiFromSlot(expr->CallNewFeedbackSlot())); |
| 2956 | 2956 |
| 2957 CallConstructStub stub(isolate(), RECORD_CONSTRUCTOR_TARGET); | 2957 CallConstructStub stub(isolate(), RECORD_CONSTRUCTOR_TARGET); |
| 2958 __ Call(stub.GetCode(), RelocInfo::CONSTRUCT_CALL); | 2958 __ Call(stub.GetCode(), RelocInfo::CONSTRUCT_CALL); |
| 2959 PrepareForBailoutForId(expr->ReturnId(), TOS_REG); | 2959 PrepareForBailoutForId(expr->ReturnId(), TOS_REG); |
| 2960 context()->Plug(x0); | 2960 context()->Plug(x0); |
| 2961 } | 2961 } |
| 2962 | 2962 |
| 2963 | 2963 |
| 2964 void FullCodeGenerator::EmitSuperConstructorCall(Call* expr) { | 2964 void FullCodeGenerator::EmitSuperConstructorCall(Call* expr) { |
| 2965 if (!ValidateSuperCall(expr)) return; | |
| 2966 | |
| 2967 Variable* new_target_var = scope()->DeclarationScope()->new_target_var(); | 2965 Variable* new_target_var = scope()->DeclarationScope()->new_target_var(); |
| 2968 GetVar(result_register(), new_target_var); | 2966 GetVar(result_register(), new_target_var); |
| 2969 __ Push(result_register()); | 2967 __ Push(result_register()); |
| 2970 | 2968 |
| 2971 EmitLoadSuperConstructor(); | 2969 EmitLoadSuperConstructor(); |
| 2972 __ push(result_register()); | 2970 __ push(result_register()); |
| 2973 | 2971 |
| 2974 // Push the arguments ("left-to-right") on the stack. | 2972 // Push the arguments ("left-to-right") on the stack. |
| 2975 ZoneList<Expression*>* args = expr->arguments(); | 2973 ZoneList<Expression*>* args = expr->arguments(); |
| 2976 int arg_count = args->length(); | 2974 int arg_count = args->length(); |
| (...skipping 2504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5481 return previous_; | 5479 return previous_; |
| 5482 } | 5480 } |
| 5483 | 5481 |
| 5484 | 5482 |
| 5485 #undef __ | 5483 #undef __ |
| 5486 | 5484 |
| 5487 | 5485 |
| 5488 } } // namespace v8::internal | 5486 } } // namespace v8::internal |
| 5489 | 5487 |
| 5490 #endif // V8_TARGET_ARCH_ARM64 | 5488 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |