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/arm64/assembler-arm64.h" | 9 #include "src/arm64/assembler-arm64.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
808 // are not enabled for this object. | 808 // are not enabled for this object. |
809 __ Ldrb(scratch2, FieldMemOperand(map, Map::kBitFieldOffset)); | 809 __ Ldrb(scratch2, FieldMemOperand(map, Map::kBitFieldOffset)); |
810 ASSERT(kSlowCaseBitFieldMask == | 810 ASSERT(kSlowCaseBitFieldMask == |
811 ((1 << Map::kIsAccessCheckNeeded) | (1 << Map::kHasIndexedInterceptor))); | 811 ((1 << Map::kIsAccessCheckNeeded) | (1 << Map::kHasIndexedInterceptor))); |
812 __ Tbnz(scratch2, Map::kIsAccessCheckNeeded, &slow); | 812 __ Tbnz(scratch2, Map::kIsAccessCheckNeeded, &slow); |
813 __ Tbz(scratch2, Map::kHasIndexedInterceptor, &slow); | 813 __ Tbz(scratch2, Map::kHasIndexedInterceptor, &slow); |
814 | 814 |
815 // Everything is fine, call runtime. | 815 // Everything is fine, call runtime. |
816 __ Push(receiver, key); | 816 __ Push(receiver, key); |
817 __ TailCallExternalReference( | 817 __ TailCallExternalReference( |
818 ExternalReference(IC_Utility(kKeyedLoadPropertyWithInterceptor), | 818 ExternalReference(IC_Utility(kLoadElementWithInterceptor), |
819 masm->isolate()), | 819 masm->isolate()), |
820 2, | 820 2, 1); |
821 1); | |
822 | 821 |
823 __ Bind(&slow); | 822 __ Bind(&slow); |
824 GenerateMiss(masm); | 823 GenerateMiss(masm); |
825 } | 824 } |
826 | 825 |
827 | 826 |
828 void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { | 827 void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { |
829 ASM_LOCATION("KeyedStoreIC::GenerateMiss"); | 828 ASM_LOCATION("KeyedStoreIC::GenerateMiss"); |
830 | 829 |
831 // Push receiver, key and value for runtime call. | 830 // Push receiver, key and value for runtime call. |
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1294 ASSERT(to_patch->Mask(TestBranchMask) == TBNZ); | 1293 ASSERT(to_patch->Mask(TestBranchMask) == TBNZ); |
1295 // This is JumpIfSmi(smi_reg, branch_imm). | 1294 // This is JumpIfSmi(smi_reg, branch_imm). |
1296 patcher.tbz(smi_reg, 0, branch_imm); | 1295 patcher.tbz(smi_reg, 0, branch_imm); |
1297 } | 1296 } |
1298 } | 1297 } |
1299 | 1298 |
1300 | 1299 |
1301 } } // namespace v8::internal | 1300 } } // namespace v8::internal |
1302 | 1301 |
1303 #endif // V8_TARGET_ARCH_ARM64 | 1302 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |