Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: src/crankshaft/ppc/lithium-codegen-ppc.cc

Issue 1469283004: PPC: [turbofan] Switch passing of new.target to register. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/ppc/builtins-ppc.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/crankshaft/ppc/lithium-codegen-ppc.h" 5 #include "src/crankshaft/ppc/lithium-codegen-ppc.h"
6 6
7 #include "src/base/bits.h" 7 #include "src/base/bits.h"
8 #include "src/code-factory.h" 8 #include "src/code-factory.h"
9 #include "src/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/crankshaft/hydrogen-osr.h" 10 #include "src/crankshaft/hydrogen-osr.h"
(...skipping 3509 matching lines...) Expand 10 before | Expand all | Expand 10 after
3520 __ addi(length, length, Operand(-1)); 3520 __ addi(length, length, Operand(-1));
3521 __ bdnz(&loop); 3521 __ bdnz(&loop);
3522 3522
3523 __ bind(&invoke); 3523 __ bind(&invoke);
3524 DCHECK(instr->HasPointerMap()); 3524 DCHECK(instr->HasPointerMap());
3525 LPointerMap* pointers = instr->pointer_map(); 3525 LPointerMap* pointers = instr->pointer_map();
3526 SafepointGenerator safepoint_generator(this, pointers, Safepoint::kLazyDeopt); 3526 SafepointGenerator safepoint_generator(this, pointers, Safepoint::kLazyDeopt);
3527 // The number of arguments is stored in receiver which is r3, as expected 3527 // The number of arguments is stored in receiver which is r3, as expected
3528 // by InvokeFunction. 3528 // by InvokeFunction.
3529 ParameterCount actual(receiver); 3529 ParameterCount actual(receiver);
3530 __ InvokeFunction(function, actual, CALL_FUNCTION, safepoint_generator); 3530 __ InvokeFunction(function, no_reg, actual, CALL_FUNCTION,
3531 safepoint_generator);
3531 } 3532 }
3532 3533
3533 3534
3534 void LCodeGen::DoPushArgument(LPushArgument* instr) { 3535 void LCodeGen::DoPushArgument(LPushArgument* instr) {
3535 LOperand* argument = instr->value(); 3536 LOperand* argument = instr->value();
3536 if (argument->IsDoubleRegister() || argument->IsDoubleStackSlot()) { 3537 if (argument->IsDoubleRegister() || argument->IsDoubleStackSlot()) {
3537 Abort(kDoPushArgumentNotImplementedForDoubleType); 3538 Abort(kDoPushArgumentNotImplementedForDoubleType);
3538 } else { 3539 } else {
3539 Register argument_reg = EmitLoadRegister(argument, ip); 3540 Register argument_reg = EmitLoadRegister(argument, ip);
3540 __ push(argument_reg); 3541 __ push(argument_reg);
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
3947 void LCodeGen::DoInvokeFunction(LInvokeFunction* instr) { 3948 void LCodeGen::DoInvokeFunction(LInvokeFunction* instr) {
3948 DCHECK(ToRegister(instr->context()).is(cp)); 3949 DCHECK(ToRegister(instr->context()).is(cp));
3949 DCHECK(ToRegister(instr->function()).is(r4)); 3950 DCHECK(ToRegister(instr->function()).is(r4));
3950 DCHECK(instr->HasPointerMap()); 3951 DCHECK(instr->HasPointerMap());
3951 3952
3952 Handle<JSFunction> known_function = instr->hydrogen()->known_function(); 3953 Handle<JSFunction> known_function = instr->hydrogen()->known_function();
3953 if (known_function.is_null()) { 3954 if (known_function.is_null()) {
3954 LPointerMap* pointers = instr->pointer_map(); 3955 LPointerMap* pointers = instr->pointer_map();
3955 SafepointGenerator generator(this, pointers, Safepoint::kLazyDeopt); 3956 SafepointGenerator generator(this, pointers, Safepoint::kLazyDeopt);
3956 ParameterCount count(instr->arity()); 3957 ParameterCount count(instr->arity());
3957 __ InvokeFunction(r4, count, CALL_FUNCTION, generator); 3958 __ InvokeFunction(r4, no_reg, count, CALL_FUNCTION, generator);
3958 } else { 3959 } else {
3959 CallKnownFunction(known_function, 3960 CallKnownFunction(known_function,
3960 instr->hydrogen()->formal_parameter_count(), 3961 instr->hydrogen()->formal_parameter_count(),
3961 instr->arity(), instr); 3962 instr->arity(), instr);
3962 } 3963 }
3963 } 3964 }
3964 3965
3965 3966
3966 void LCodeGen::DoCallWithDescriptor(LCallWithDescriptor* instr) { 3967 void LCodeGen::DoCallWithDescriptor(LCallWithDescriptor* instr) {
3967 DCHECK(ToRegister(instr->result()).is(r3)); 3968 DCHECK(ToRegister(instr->result()).is(r3));
(...skipping 2067 matching lines...) Expand 10 before | Expand all | Expand 10 after
6035 __ Push(scope_info); 6036 __ Push(scope_info);
6036 __ push(ToRegister(instr->function())); 6037 __ push(ToRegister(instr->function()));
6037 CallRuntime(Runtime::kPushBlockContext, 2, instr); 6038 CallRuntime(Runtime::kPushBlockContext, 2, instr);
6038 RecordSafepoint(Safepoint::kNoLazyDeopt); 6039 RecordSafepoint(Safepoint::kNoLazyDeopt);
6039 } 6040 }
6040 6041
6041 6042
6042 #undef __ 6043 #undef __
6043 } // namespace internal 6044 } // namespace internal
6044 } // namespace v8 6045 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/ppc/builtins-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698