| 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 |