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_MIPS | 9 #if V8_TARGET_ARCH_MIPS |
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, t0, t1, t2); | 289 masm, flags, receiver, name, a3, t0, t1, t2); |
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 801 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1098 | 1099 |
1099 | 1100 |
1100 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { | 1101 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { |
1101 Register receiver = ReceiverRegister(); | 1102 Register receiver = ReceiverRegister(); |
1102 Register name = NameRegister(); | 1103 Register name = NameRegister(); |
1103 ASSERT(receiver.is(a1)); | 1104 ASSERT(receiver.is(a1)); |
1104 ASSERT(name.is(a2)); | 1105 ASSERT(name.is(a2)); |
1105 ASSERT(ValueRegister().is(a0)); | 1106 ASSERT(ValueRegister().is(a0)); |
1106 | 1107 |
1107 // Get the receiver from the stack and probe the stub cache. | 1108 // Get the receiver from the stack and probe the stub cache. |
1108 Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC); | 1109 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( |
| 1110 Code::ComputeHandlerFlags(Code::STORE_IC)); |
1109 masm->isolate()->stub_cache()->GenerateProbe( | 1111 masm->isolate()->stub_cache()->GenerateProbe( |
1110 masm, flags, receiver, name, a3, t0, t1, t2); | 1112 masm, flags, receiver, name, a3, t0, t1, t2); |
1111 | 1113 |
1112 // Cache miss: Jump to runtime. | 1114 // Cache miss: Jump to runtime. |
1113 GenerateMiss(masm); | 1115 GenerateMiss(masm); |
1114 } | 1116 } |
1115 | 1117 |
1116 | 1118 |
1117 void StoreIC::GenerateMiss(MacroAssembler* masm) { | 1119 void StoreIC::GenerateMiss(MacroAssembler* masm) { |
1118 __ Push(ReceiverRegister(), NameRegister(), ValueRegister()); | 1120 __ Push(ReceiverRegister(), NameRegister(), ValueRegister()); |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1251 } else { | 1253 } else { |
1252 ASSERT(Assembler::IsBne(branch_instr)); | 1254 ASSERT(Assembler::IsBne(branch_instr)); |
1253 patcher.ChangeBranchCondition(eq); | 1255 patcher.ChangeBranchCondition(eq); |
1254 } | 1256 } |
1255 } | 1257 } |
1256 | 1258 |
1257 | 1259 |
1258 } } // namespace v8::internal | 1260 } } // namespace v8::internal |
1259 | 1261 |
1260 #endif // V8_TARGET_ARCH_MIPS | 1262 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |