OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 | 5 |
6 | 6 |
7 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #if V8_TARGET_ARCH_MIPS64 | 9 #if V8_TARGET_ARCH_MIPS64 |
10 | 10 |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 | 276 |
277 | 277 |
278 void LoadIC::GenerateMegamorphic(MacroAssembler* masm) { | 278 void LoadIC::GenerateMegamorphic(MacroAssembler* masm) { |
279 // The return address is in lr. | 279 // The return address is in lr. |
280 Register receiver = ReceiverRegister(); | 280 Register receiver = ReceiverRegister(); |
281 Register name = NameRegister(); | 281 Register name = NameRegister(); |
282 ASSERT(receiver.is(a1)); | 282 ASSERT(receiver.is(a1)); |
283 ASSERT(name.is(a2)); | 283 ASSERT(name.is(a2)); |
284 | 284 |
285 // Probe the stub cache. | 285 // Probe the stub cache. |
286 Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC); | 286 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( |
| 287 Code::ComputeHandlerFlags(Code::LOAD_IC)); |
287 masm->isolate()->stub_cache()->GenerateProbe( | 288 masm->isolate()->stub_cache()->GenerateProbe( |
288 masm, flags, receiver, name, a3, a4, a5, a6); | 289 masm, flags, receiver, name, a3, a4, a5, a6); |
289 | 290 |
290 // Cache miss: Jump to runtime. | 291 // Cache miss: Jump to runtime. |
291 GenerateMiss(masm); | 292 GenerateMiss(masm); |
292 } | 293 } |
293 | 294 |
294 | 295 |
295 void LoadIC::GenerateNormal(MacroAssembler* masm) { | 296 void LoadIC::GenerateNormal(MacroAssembler* masm) { |
296 Register dictionary = a0; | 297 Register dictionary = a0; |
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1107 | 1108 |
1108 | 1109 |
1109 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { | 1110 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { |
1110 Register receiver = ReceiverRegister(); | 1111 Register receiver = ReceiverRegister(); |
1111 Register name = NameRegister(); | 1112 Register name = NameRegister(); |
1112 ASSERT(receiver.is(a1)); | 1113 ASSERT(receiver.is(a1)); |
1113 ASSERT(name.is(a2)); | 1114 ASSERT(name.is(a2)); |
1114 ASSERT(ValueRegister().is(a0)); | 1115 ASSERT(ValueRegister().is(a0)); |
1115 | 1116 |
1116 // Get the receiver from the stack and probe the stub cache. | 1117 // Get the receiver from the stack and probe the stub cache. |
1117 Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC); | 1118 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( |
| 1119 Code::ComputeHandlerFlags(Code::STORE_IC)); |
1118 masm->isolate()->stub_cache()->GenerateProbe( | 1120 masm->isolate()->stub_cache()->GenerateProbe( |
1119 masm, flags, receiver, name, a3, a4, a5, a6); | 1121 masm, flags, receiver, name, a3, a4, a5, a6); |
1120 | 1122 |
1121 // Cache miss: Jump to runtime. | 1123 // Cache miss: Jump to runtime. |
1122 GenerateMiss(masm); | 1124 GenerateMiss(masm); |
1123 } | 1125 } |
1124 | 1126 |
1125 | 1127 |
1126 void StoreIC::GenerateMiss(MacroAssembler* masm) { | 1128 void StoreIC::GenerateMiss(MacroAssembler* masm) { |
1127 __ Push(ReceiverRegister(), NameRegister(), ValueRegister()); | 1129 __ Push(ReceiverRegister(), NameRegister(), ValueRegister()); |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1258 } else { | 1260 } else { |
1259 ASSERT(Assembler::IsBne(branch_instr)); | 1261 ASSERT(Assembler::IsBne(branch_instr)); |
1260 patcher.ChangeBranchCondition(eq); | 1262 patcher.ChangeBranchCondition(eq); |
1261 } | 1263 } |
1262 } | 1264 } |
1263 | 1265 |
1264 | 1266 |
1265 } } // namespace v8::internal | 1267 } } // namespace v8::internal |
1266 | 1268 |
1267 #endif // V8_TARGET_ARCH_MIPS64 | 1269 #endif // V8_TARGET_ARCH_MIPS64 |
OLD | NEW |