| 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 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 | 362 |
| 363 | 363 |
| 364 void LoadIC::GenerateMegamorphic(MacroAssembler* masm) { | 364 void LoadIC::GenerateMegamorphic(MacroAssembler* masm) { |
| 365 // The return address is in lr. | 365 // The return address is in lr. |
| 366 Register receiver = ReceiverRegister(); | 366 Register receiver = ReceiverRegister(); |
| 367 Register name = NameRegister(); | 367 Register name = NameRegister(); |
| 368 ASSERT(receiver.is(x1)); | 368 ASSERT(receiver.is(x1)); |
| 369 ASSERT(name.is(x2)); | 369 ASSERT(name.is(x2)); |
| 370 | 370 |
| 371 // Probe the stub cache. | 371 // Probe the stub cache. |
| 372 Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC); | 372 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( |
| 373 Code::ComputeHandlerFlags(Code::LOAD_IC)); |
| 373 masm->isolate()->stub_cache()->GenerateProbe( | 374 masm->isolate()->stub_cache()->GenerateProbe( |
| 374 masm, flags, receiver, name, x3, x4, x5, x6); | 375 masm, flags, receiver, name, x3, x4, x5, x6); |
| 375 | 376 |
| 376 // Cache miss: Jump to runtime. | 377 // Cache miss: Jump to runtime. |
| 377 GenerateMiss(masm); | 378 GenerateMiss(masm); |
| 378 } | 379 } |
| 379 | 380 |
| 380 | 381 |
| 381 void LoadIC::GenerateNormal(MacroAssembler* masm) { | 382 void LoadIC::GenerateNormal(MacroAssembler* masm) { |
| 382 Register dictionary = x0; | 383 Register dictionary = x0; |
| (...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1115 elements_map, elements); | 1116 elements_map, elements); |
| 1116 } | 1117 } |
| 1117 | 1118 |
| 1118 | 1119 |
| 1119 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { | 1120 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { |
| 1120 Register receiver = ReceiverRegister(); | 1121 Register receiver = ReceiverRegister(); |
| 1121 Register name = NameRegister(); | 1122 Register name = NameRegister(); |
| 1122 ASSERT(!AreAliased(receiver, name, ValueRegister(), x3, x4, x5, x6)); | 1123 ASSERT(!AreAliased(receiver, name, ValueRegister(), x3, x4, x5, x6)); |
| 1123 | 1124 |
| 1124 // Probe the stub cache. | 1125 // Probe the stub cache. |
| 1125 Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC); | 1126 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( |
| 1127 Code::ComputeHandlerFlags(Code::STORE_IC)); |
| 1126 masm->isolate()->stub_cache()->GenerateProbe( | 1128 masm->isolate()->stub_cache()->GenerateProbe( |
| 1127 masm, flags, receiver, name, x3, x4, x5, x6); | 1129 masm, flags, receiver, name, x3, x4, x5, x6); |
| 1128 | 1130 |
| 1129 // Cache miss: Jump to runtime. | 1131 // Cache miss: Jump to runtime. |
| 1130 GenerateMiss(masm); | 1132 GenerateMiss(masm); |
| 1131 } | 1133 } |
| 1132 | 1134 |
| 1133 | 1135 |
| 1134 void StoreIC::GenerateMiss(MacroAssembler* masm) { | 1136 void StoreIC::GenerateMiss(MacroAssembler* masm) { |
| 1135 __ Push(ReceiverRegister(), NameRegister(), ValueRegister()); | 1137 __ Push(ReceiverRegister(), NameRegister(), ValueRegister()); |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1281 ASSERT(to_patch->Mask(TestBranchMask) == TBNZ); | 1283 ASSERT(to_patch->Mask(TestBranchMask) == TBNZ); |
| 1282 // This is JumpIfSmi(smi_reg, branch_imm). | 1284 // This is JumpIfSmi(smi_reg, branch_imm). |
| 1283 patcher.tbz(smi_reg, 0, branch_imm); | 1285 patcher.tbz(smi_reg, 0, branch_imm); |
| 1284 } | 1286 } |
| 1285 } | 1287 } |
| 1286 | 1288 |
| 1287 | 1289 |
| 1288 } } // namespace v8::internal | 1290 } } // namespace v8::internal |
| 1289 | 1291 |
| 1290 #endif // V8_TARGET_ARCH_ARM64 | 1292 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |