OLD | NEW |
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 2692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2703 // Non-JS objects have class null. | 2703 // Non-JS objects have class null. |
2704 __ bind(&null); | 2704 __ bind(&null); |
2705 __ LoadRoot(r2, Heap::kNullValueRootIndex); | 2705 __ LoadRoot(r2, Heap::kNullValueRootIndex); |
2706 | 2706 |
2707 // All done. | 2707 // All done. |
2708 __ bind(&done); | 2708 __ bind(&done); |
2709 | 2709 |
2710 context()->Plug(r2); | 2710 context()->Plug(r2); |
2711 } | 2711 } |
2712 | 2712 |
2713 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) { | |
2714 ZoneList<Expression*>* args = expr->arguments(); | |
2715 DCHECK(args->length() == 1); | |
2716 VisitForAccumulatorValue(args->at(0)); | |
2717 | |
2718 Label done; | |
2719 StringCharFromCodeGenerator generator(r2, r3); | |
2720 generator.GenerateFast(masm_); | |
2721 __ b(&done); | |
2722 | |
2723 NopRuntimeCallHelper call_helper; | |
2724 generator.GenerateSlow(masm_, call_helper); | |
2725 | |
2726 __ bind(&done); | |
2727 context()->Plug(r3); | |
2728 } | |
2729 | |
2730 void FullCodeGenerator::EmitStringCharCodeAt(CallRuntime* expr) { | 2713 void FullCodeGenerator::EmitStringCharCodeAt(CallRuntime* expr) { |
2731 ZoneList<Expression*>* args = expr->arguments(); | 2714 ZoneList<Expression*>* args = expr->arguments(); |
2732 DCHECK(args->length() == 2); | 2715 DCHECK(args->length() == 2); |
2733 VisitForStackValue(args->at(0)); | 2716 VisitForStackValue(args->at(0)); |
2734 VisitForAccumulatorValue(args->at(1)); | 2717 VisitForAccumulatorValue(args->at(1)); |
2735 | 2718 |
2736 Register object = r3; | 2719 Register object = r3; |
2737 Register index = r2; | 2720 Register index = r2; |
2738 Register result = r5; | 2721 Register result = r5; |
2739 | 2722 |
(...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3591 DCHECK(kOSRBranchInstruction == br_instr); | 3574 DCHECK(kOSRBranchInstruction == br_instr); |
3592 | 3575 |
3593 DCHECK(interrupt_address == | 3576 DCHECK(interrupt_address == |
3594 isolate->builtins()->OnStackReplacement()->entry()); | 3577 isolate->builtins()->OnStackReplacement()->entry()); |
3595 return ON_STACK_REPLACEMENT; | 3578 return ON_STACK_REPLACEMENT; |
3596 } | 3579 } |
3597 | 3580 |
3598 } // namespace internal | 3581 } // namespace internal |
3599 } // namespace v8 | 3582 } // namespace v8 |
3600 #endif // V8_TARGET_ARCH_S390 | 3583 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |