| 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/bootstrapper.h" | 9 #include "src/bootstrapper.h" | 
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" | 
| (...skipping 3608 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3619     StringHelper::GenerateCompareFlatOneByteStrings(masm, lhs, rhs, x10, x11, | 3619     StringHelper::GenerateCompareFlatOneByteStrings(masm, lhs, rhs, x10, x11, | 
| 3620                                                     x12, x13); | 3620                                                     x12, x13); | 
| 3621   } | 3621   } | 
| 3622 | 3622 | 
| 3623   // Handle more complex cases in runtime. | 3623   // Handle more complex cases in runtime. | 
| 3624   __ Bind(&runtime); | 3624   __ Bind(&runtime); | 
| 3625   __ Push(lhs, rhs); | 3625   __ Push(lhs, rhs); | 
| 3626   if (equality) { | 3626   if (equality) { | 
| 3627     __ TailCallRuntime(Runtime::kStringEquals, 2, 1); | 3627     __ TailCallRuntime(Runtime::kStringEquals, 2, 1); | 
| 3628   } else { | 3628   } else { | 
| 3629     __ TailCallRuntime(Runtime::kStringCompare, 2, 1); | 3629     __ TailCallRuntime(Runtime::kStringCompareRT, 2, 1); | 
| 3630   } | 3630   } | 
| 3631 | 3631 | 
| 3632   __ Bind(&miss); | 3632   __ Bind(&miss); | 
| 3633   GenerateMiss(masm); | 3633   GenerateMiss(masm); | 
| 3634 } | 3634 } | 
| 3635 | 3635 | 
| 3636 | 3636 | 
| 3637 void CompareICStub::GenerateObjects(MacroAssembler* masm) { | 3637 void CompareICStub::GenerateObjects(MacroAssembler* masm) { | 
| 3638   DCHECK(state() == CompareICState::OBJECT); | 3638   DCHECK(state() == CompareICState::OBJECT); | 
| 3639   ASM_LOCATION("CompareICStub[Objects]"); | 3639   ASM_LOCATION("CompareICStub[Objects]"); | 
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3951   __ Add(result_length, result_length, result_length); | 3951   __ Add(result_length, result_length, result_length); | 
| 3952   __ CopyBytes(result_char0, substring_char0, result_length, x3, kCopyLong); | 3952   __ CopyBytes(result_char0, substring_char0, result_length, x3, kCopyLong); | 
| 3953 | 3953 | 
| 3954   __ Bind(&return_x0); | 3954   __ Bind(&return_x0); | 
| 3955   Counters* counters = isolate()->counters(); | 3955   Counters* counters = isolate()->counters(); | 
| 3956   __ IncrementCounter(counters->sub_string_native(), 1, x3, x4); | 3956   __ IncrementCounter(counters->sub_string_native(), 1, x3, x4); | 
| 3957   __ Drop(3); | 3957   __ Drop(3); | 
| 3958   __ Ret(); | 3958   __ Ret(); | 
| 3959 | 3959 | 
| 3960   __ Bind(&runtime); | 3960   __ Bind(&runtime); | 
| 3961   __ TailCallRuntime(Runtime::kSubString, 3, 1); | 3961   __ TailCallRuntime(Runtime::kSubStringRT, 3, 1); | 
| 3962 | 3962 | 
| 3963   __ bind(&single_char); | 3963   __ bind(&single_char); | 
| 3964   // x1: result_length | 3964   // x1: result_length | 
| 3965   // x10: input_string | 3965   // x10: input_string | 
| 3966   // x12: input_type | 3966   // x12: input_type | 
| 3967   // x15: from (untagged) | 3967   // x15: from (untagged) | 
| 3968   __ SmiTag(from); | 3968   __ SmiTag(from); | 
| 3969   StringCharAtGenerator generator(input_string, from, result_length, x0, | 3969   StringCharAtGenerator generator(input_string, from, result_length, x0, | 
| 3970                                   &runtime, &runtime, &runtime, | 3970                                   &runtime, &runtime, &runtime, | 
| 3971                                   STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING); | 3971                                   STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING); | 
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4159 | 4159 | 
| 4160   __ Bind(&runtime); | 4160   __ Bind(&runtime); | 
| 4161 | 4161 | 
| 4162   // Push arguments back on to the stack. | 4162   // Push arguments back on to the stack. | 
| 4163   //  sp[0] = right string | 4163   //  sp[0] = right string | 
| 4164   //  sp[8] = left string. | 4164   //  sp[8] = left string. | 
| 4165   __ Push(left, right); | 4165   __ Push(left, right); | 
| 4166 | 4166 | 
| 4167   // Call the runtime. | 4167   // Call the runtime. | 
| 4168   // Returns -1 (less), 0 (equal), or 1 (greater) tagged as a small integer. | 4168   // Returns -1 (less), 0 (equal), or 1 (greater) tagged as a small integer. | 
| 4169   __ TailCallRuntime(Runtime::kStringCompare, 2, 1); | 4169   __ TailCallRuntime(Runtime::kStringCompareRT, 2, 1); | 
| 4170 } | 4170 } | 
| 4171 | 4171 | 
| 4172 | 4172 | 
| 4173 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) { | 4173 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) { | 
| 4174   // ----------- S t a t e ------------- | 4174   // ----------- S t a t e ------------- | 
| 4175   //  -- x1    : left | 4175   //  -- x1    : left | 
| 4176   //  -- x0    : right | 4176   //  -- x0    : right | 
| 4177   //  -- lr    : return address | 4177   //  -- lr    : return address | 
| 4178   // ----------------------------------- | 4178   // ----------------------------------- | 
| 4179 | 4179 | 
| (...skipping 1334 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5514                            kStackUnwindSpace, NULL, spill_offset, | 5514                            kStackUnwindSpace, NULL, spill_offset, | 
| 5515                            MemOperand(fp, 6 * kPointerSize), NULL); | 5515                            MemOperand(fp, 6 * kPointerSize), NULL); | 
| 5516 } | 5516 } | 
| 5517 | 5517 | 
| 5518 | 5518 | 
| 5519 #undef __ | 5519 #undef __ | 
| 5520 | 5520 | 
| 5521 } }  // namespace v8::internal | 5521 } }  // namespace v8::internal | 
| 5522 | 5522 | 
| 5523 #endif  // V8_TARGET_ARCH_ARM64 | 5523 #endif  // V8_TARGET_ARCH_ARM64 | 
| OLD | NEW | 
|---|