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

Side by Side Diff: src/full-codegen/s390/full-codegen-s390.cc

Issue 2372113004: [turbofan] JSGenericLowering mostly uses builtins instead of code stubs now (Closed)
Patch Set: Ross' comments Created 4 years, 2 months 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 | « src/full-codegen/ppc/full-codegen-ppc.cc ('k') | src/full-codegen/x64/full-codegen-x64.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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 #if V8_TARGET_ARCH_S390 5 #if V8_TARGET_ARCH_S390
6 6
7 #include "src/full-codegen/full-codegen.h" 7 #include "src/full-codegen/full-codegen.h"
8 #include "src/ast/compile-time-value.h" 8 #include "src/ast/compile-time-value.h"
9 #include "src/ast/scopes.h" 9 #include "src/ast/scopes.h"
10 #include "src/code-factory.h" 10 #include "src/code-factory.h"
(...skipping 928 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 // it to a JS receiver. See ECMA-262 version 5, section 12.6.4. 939 // it to a JS receiver. See ECMA-262 version 5, section 12.6.4.
940 Label convert, done_convert; 940 Label convert, done_convert;
941 __ JumpIfSmi(r2, &convert); 941 __ JumpIfSmi(r2, &convert);
942 __ CompareObjectType(r2, r3, r3, FIRST_JS_RECEIVER_TYPE); 942 __ CompareObjectType(r2, r3, r3, FIRST_JS_RECEIVER_TYPE);
943 __ bge(&done_convert); 943 __ bge(&done_convert);
944 __ CompareRoot(r2, Heap::kNullValueRootIndex); 944 __ CompareRoot(r2, Heap::kNullValueRootIndex);
945 __ beq(&exit); 945 __ beq(&exit);
946 __ CompareRoot(r2, Heap::kUndefinedValueRootIndex); 946 __ CompareRoot(r2, Heap::kUndefinedValueRootIndex);
947 __ beq(&exit); 947 __ beq(&exit);
948 __ bind(&convert); 948 __ bind(&convert);
949 ToObjectStub stub(isolate()); 949 __ Call(isolate()->builtins()->ToObject(), RelocInfo::CODE_TARGET);
950 __ CallStub(&stub);
951 RestoreContext(); 950 RestoreContext();
952 __ bind(&done_convert); 951 __ bind(&done_convert);
953 PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER); 952 PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
954 __ push(r2); 953 __ push(r2);
955 954
956 // Check cache validity in generated code. If we cannot guarantee cache 955 // Check cache validity in generated code. If we cannot guarantee cache
957 // validity, call the runtime system to check cache validity or get the 956 // validity, call the runtime system to check cache validity or get the
958 // property names in a fixed array. Note: Proxies never have an enum cache, 957 // property names in a fixed array. Note: Proxies never have an enum cache,
959 // so will always take the slow path. 958 // so will always take the slow path.
960 Label call_runtime; 959 Label call_runtime;
(...skipping 2002 matching lines...) Expand 10 before | Expand all | Expand 10 after
2963 break; 2962 break;
2964 } 2963 }
2965 2964
2966 case Token::TYPEOF: { 2965 case Token::TYPEOF: {
2967 Comment cmnt(masm_, "[ UnaryOperation (TYPEOF)"); 2966 Comment cmnt(masm_, "[ UnaryOperation (TYPEOF)");
2968 { 2967 {
2969 AccumulatorValueContext context(this); 2968 AccumulatorValueContext context(this);
2970 VisitForTypeofValue(expr->expression()); 2969 VisitForTypeofValue(expr->expression());
2971 } 2970 }
2972 __ LoadRR(r5, r2); 2971 __ LoadRR(r5, r2);
2973 TypeofStub typeof_stub(isolate()); 2972 __ Call(isolate()->builtins()->Typeof(), RelocInfo::CODE_TARGET);
2974 __ CallStub(&typeof_stub);
2975 context()->Plug(r2); 2973 context()->Plug(r2);
2976 break; 2974 break;
2977 } 2975 }
2978 2976
2979 default: 2977 default:
2980 UNREACHABLE(); 2978 UNREACHABLE();
2981 } 2979 }
2982 } 2980 }
2983 2981
2984 void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { 2982 void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
3328 EmitHasProperty(); 3326 EmitHasProperty();
3329 PrepareForBailoutBeforeSplit(expr, false, NULL, NULL); 3327 PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
3330 __ CompareRoot(r2, Heap::kTrueValueRootIndex); 3328 __ CompareRoot(r2, Heap::kTrueValueRootIndex);
3331 Split(eq, if_true, if_false, fall_through); 3329 Split(eq, if_true, if_false, fall_through);
3332 break; 3330 break;
3333 3331
3334 case Token::INSTANCEOF: { 3332 case Token::INSTANCEOF: {
3335 VisitForAccumulatorValue(expr->right()); 3333 VisitForAccumulatorValue(expr->right());
3336 SetExpressionPosition(expr); 3334 SetExpressionPosition(expr);
3337 PopOperand(r3); 3335 PopOperand(r3);
3338 InstanceOfStub stub(isolate()); 3336 __ Call(isolate()->builtins()->InstanceOf(), RelocInfo::CODE_TARGET);
3339 __ CallStub(&stub);
3340 PrepareForBailoutBeforeSplit(expr, false, NULL, NULL); 3337 PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
3341 __ CompareRoot(r2, Heap::kTrueValueRootIndex); 3338 __ CompareRoot(r2, Heap::kTrueValueRootIndex);
3342 Split(eq, if_true, if_false, fall_through); 3339 Split(eq, if_true, if_false, fall_through);
3343 break; 3340 break;
3344 } 3341 }
3345 3342
3346 default: { 3343 default: {
3347 VisitForAccumulatorValue(expr->right()); 3344 VisitForAccumulatorValue(expr->right());
3348 SetExpressionPosition(expr); 3345 SetExpressionPosition(expr);
3349 Condition cond = CompareIC::ComputeCondition(op); 3346 Condition cond = CompareIC::ComputeCondition(op);
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
3574 DCHECK(kOSRBranchInstruction == br_instr); 3571 DCHECK(kOSRBranchInstruction == br_instr);
3575 3572
3576 DCHECK(interrupt_address == 3573 DCHECK(interrupt_address ==
3577 isolate->builtins()->OnStackReplacement()->entry()); 3574 isolate->builtins()->OnStackReplacement()->entry());
3578 return ON_STACK_REPLACEMENT; 3575 return ON_STACK_REPLACEMENT;
3579 } 3576 }
3580 3577
3581 } // namespace internal 3578 } // namespace internal
3582 } // namespace v8 3579 } // namespace v8
3583 #endif // V8_TARGET_ARCH_S390 3580 #endif // V8_TARGET_ARCH_S390
OLDNEW
« no previous file with comments | « src/full-codegen/ppc/full-codegen-ppc.cc ('k') | src/full-codegen/x64/full-codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698