| 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 3797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3808 __ LoadRoot(result, Heap::kNanValueRootIndex); | 3808 __ LoadRoot(result, Heap::kNanValueRootIndex); |
| 3809 __ B(&done); | 3809 __ B(&done); |
| 3810 | 3810 |
| 3811 __ Bind(&need_conversion); | 3811 __ Bind(&need_conversion); |
| 3812 // Load the undefined value into the result register, which will | 3812 // Load the undefined value into the result register, which will |
| 3813 // trigger conversion. | 3813 // trigger conversion. |
| 3814 __ LoadRoot(result, Heap::kUndefinedValueRootIndex); | 3814 __ LoadRoot(result, Heap::kUndefinedValueRootIndex); |
| 3815 __ B(&done); | 3815 __ B(&done); |
| 3816 | 3816 |
| 3817 NopRuntimeCallHelper call_helper; | 3817 NopRuntimeCallHelper call_helper; |
| 3818 generator.GenerateSlow(masm_, call_helper); | 3818 generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper); |
| 3819 | 3819 |
| 3820 __ Bind(&done); | 3820 __ Bind(&done); |
| 3821 context()->Plug(result); | 3821 context()->Plug(result); |
| 3822 } | 3822 } |
| 3823 | 3823 |
| 3824 | 3824 |
| 3825 void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) { | 3825 void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) { |
| 3826 ZoneList<Expression*>* args = expr->arguments(); | 3826 ZoneList<Expression*>* args = expr->arguments(); |
| 3827 DCHECK(args->length() == 2); | 3827 DCHECK(args->length() == 2); |
| 3828 | 3828 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 3854 // the empty string. | 3854 // the empty string. |
| 3855 __ LoadRoot(result, Heap::kempty_stringRootIndex); | 3855 __ LoadRoot(result, Heap::kempty_stringRootIndex); |
| 3856 __ B(&done); | 3856 __ B(&done); |
| 3857 | 3857 |
| 3858 __ Bind(&need_conversion); | 3858 __ Bind(&need_conversion); |
| 3859 // Move smi zero into the result register, which will trigger conversion. | 3859 // Move smi zero into the result register, which will trigger conversion. |
| 3860 __ Mov(result, Smi::FromInt(0)); | 3860 __ Mov(result, Smi::FromInt(0)); |
| 3861 __ B(&done); | 3861 __ B(&done); |
| 3862 | 3862 |
| 3863 NopRuntimeCallHelper call_helper; | 3863 NopRuntimeCallHelper call_helper; |
| 3864 generator.GenerateSlow(masm_, call_helper); | 3864 generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper); |
| 3865 | 3865 |
| 3866 __ Bind(&done); | 3866 __ Bind(&done); |
| 3867 context()->Plug(result); | 3867 context()->Plug(result); |
| 3868 } | 3868 } |
| 3869 | 3869 |
| 3870 | 3870 |
| 3871 void FullCodeGenerator::EmitStringAdd(CallRuntime* expr) { | 3871 void FullCodeGenerator::EmitStringAdd(CallRuntime* expr) { |
| 3872 ASM_LOCATION("FullCodeGenerator::EmitStringAdd"); | 3872 ASM_LOCATION("FullCodeGenerator::EmitStringAdd"); |
| 3873 ZoneList<Expression*>* args = expr->arguments(); | 3873 ZoneList<Expression*>* args = expr->arguments(); |
| 3874 DCHECK_EQ(2, args->length()); | 3874 DCHECK_EQ(2, args->length()); |
| (...skipping 1620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5495 return previous_; | 5495 return previous_; |
| 5496 } | 5496 } |
| 5497 | 5497 |
| 5498 | 5498 |
| 5499 #undef __ | 5499 #undef __ |
| 5500 | 5500 |
| 5501 | 5501 |
| 5502 } } // namespace v8::internal | 5502 } } // namespace v8::internal |
| 5503 | 5503 |
| 5504 #endif // V8_TARGET_ARCH_ARM64 | 5504 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |