| 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 2933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2944 __ Mov(x3, SmiFromSlot(expr->CallNewFeedbackSlot())); | 2944 __ Mov(x3, SmiFromSlot(expr->CallNewFeedbackSlot())); |
| 2945 | 2945 |
| 2946 CallConstructStub stub(isolate(), RECORD_CONSTRUCTOR_TARGET); | 2946 CallConstructStub stub(isolate(), RECORD_CONSTRUCTOR_TARGET); |
| 2947 __ Call(stub.GetCode(), RelocInfo::CONSTRUCT_CALL); | 2947 __ Call(stub.GetCode(), RelocInfo::CONSTRUCT_CALL); |
| 2948 PrepareForBailoutForId(expr->ReturnId(), TOS_REG); | 2948 PrepareForBailoutForId(expr->ReturnId(), TOS_REG); |
| 2949 context()->Plug(x0); | 2949 context()->Plug(x0); |
| 2950 } | 2950 } |
| 2951 | 2951 |
| 2952 | 2952 |
| 2953 void FullCodeGenerator::EmitSuperConstructorCall(Call* expr) { | 2953 void FullCodeGenerator::EmitSuperConstructorCall(Call* expr) { |
| 2954 Comment cmnt(masm_, "[ SuperConstructorCall"); | 2954 if (!ValidateSuperCall(expr)) return; |
| 2955 |
| 2955 Variable* new_target_var = scope()->DeclarationScope()->new_target_var(); | 2956 Variable* new_target_var = scope()->DeclarationScope()->new_target_var(); |
| 2956 GetVar(result_register(), new_target_var); | 2957 GetVar(result_register(), new_target_var); |
| 2957 __ Push(result_register()); | 2958 __ Push(result_register()); |
| 2958 | 2959 |
| 2959 EmitLoadSuperConstructor(); | 2960 EmitLoadSuperConstructor(); |
| 2960 __ push(result_register()); | 2961 __ push(result_register()); |
| 2961 | 2962 |
| 2962 // Push the arguments ("left-to-right") on the stack. | 2963 // Push the arguments ("left-to-right") on the stack. |
| 2963 ZoneList<Expression*>* args = expr->arguments(); | 2964 ZoneList<Expression*>* args = expr->arguments(); |
| 2964 int arg_count = args->length(); | 2965 int arg_count = args->length(); |
| (...skipping 2504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5469 return previous_; | 5470 return previous_; |
| 5470 } | 5471 } |
| 5471 | 5472 |
| 5472 | 5473 |
| 5473 #undef __ | 5474 #undef __ |
| 5474 | 5475 |
| 5475 | 5476 |
| 5476 } } // namespace v8::internal | 5477 } } // namespace v8::internal |
| 5477 | 5478 |
| 5478 #endif // V8_TARGET_ARCH_ARM64 | 5479 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |