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 3803 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3814 __ LoadRoot(result, Heap::kNanValueRootIndex); | 3814 __ LoadRoot(result, Heap::kNanValueRootIndex); |
3815 __ B(&done); | 3815 __ B(&done); |
3816 | 3816 |
3817 __ Bind(&need_conversion); | 3817 __ Bind(&need_conversion); |
3818 // Load the undefined value into the result register, which will | 3818 // Load the undefined value into the result register, which will |
3819 // trigger conversion. | 3819 // trigger conversion. |
3820 __ LoadRoot(result, Heap::kUndefinedValueRootIndex); | 3820 __ LoadRoot(result, Heap::kUndefinedValueRootIndex); |
3821 __ B(&done); | 3821 __ B(&done); |
3822 | 3822 |
3823 NopRuntimeCallHelper call_helper; | 3823 NopRuntimeCallHelper call_helper; |
3824 generator.GenerateSlow(masm_, call_helper); | 3824 generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper); |
3825 | 3825 |
3826 __ Bind(&done); | 3826 __ Bind(&done); |
3827 context()->Plug(result); | 3827 context()->Plug(result); |
3828 } | 3828 } |
3829 | 3829 |
3830 | 3830 |
3831 void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) { | 3831 void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) { |
3832 ZoneList<Expression*>* args = expr->arguments(); | 3832 ZoneList<Expression*>* args = expr->arguments(); |
3833 DCHECK(args->length() == 2); | 3833 DCHECK(args->length() == 2); |
3834 | 3834 |
(...skipping 25 matching lines...) Expand all Loading... |
3860 // the empty string. | 3860 // the empty string. |
3861 __ LoadRoot(result, Heap::kempty_stringRootIndex); | 3861 __ LoadRoot(result, Heap::kempty_stringRootIndex); |
3862 __ B(&done); | 3862 __ B(&done); |
3863 | 3863 |
3864 __ Bind(&need_conversion); | 3864 __ Bind(&need_conversion); |
3865 // Move smi zero into the result register, which will trigger conversion. | 3865 // Move smi zero into the result register, which will trigger conversion. |
3866 __ Mov(result, Smi::FromInt(0)); | 3866 __ Mov(result, Smi::FromInt(0)); |
3867 __ B(&done); | 3867 __ B(&done); |
3868 | 3868 |
3869 NopRuntimeCallHelper call_helper; | 3869 NopRuntimeCallHelper call_helper; |
3870 generator.GenerateSlow(masm_, call_helper); | 3870 generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper); |
3871 | 3871 |
3872 __ Bind(&done); | 3872 __ Bind(&done); |
3873 context()->Plug(result); | 3873 context()->Plug(result); |
3874 } | 3874 } |
3875 | 3875 |
3876 | 3876 |
3877 void FullCodeGenerator::EmitStringAdd(CallRuntime* expr) { | 3877 void FullCodeGenerator::EmitStringAdd(CallRuntime* expr) { |
3878 ASM_LOCATION("FullCodeGenerator::EmitStringAdd"); | 3878 ASM_LOCATION("FullCodeGenerator::EmitStringAdd"); |
3879 ZoneList<Expression*>* args = expr->arguments(); | 3879 ZoneList<Expression*>* args = expr->arguments(); |
3880 DCHECK_EQ(2, args->length()); | 3880 DCHECK_EQ(2, args->length()); |
(...skipping 1620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5501 return previous_; | 5501 return previous_; |
5502 } | 5502 } |
5503 | 5503 |
5504 | 5504 |
5505 #undef __ | 5505 #undef __ |
5506 | 5506 |
5507 | 5507 |
5508 } } // namespace v8::internal | 5508 } } // namespace v8::internal |
5509 | 5509 |
5510 #endif // V8_TARGET_ARCH_ARM64 | 5510 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |