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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM | 7 #if V8_TARGET_ARCH_ARM |
8 | 8 |
9 #include "src/arm/assembler-arm.h" | 9 #include "src/arm/assembler-arm.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 | 269 |
270 | 270 |
271 void LoadIC::GenerateMegamorphic(MacroAssembler* masm) { | 271 void LoadIC::GenerateMegamorphic(MacroAssembler* masm) { |
272 // The return address is in lr. | 272 // The return address is in lr. |
273 Register receiver = ReceiverRegister(); | 273 Register receiver = ReceiverRegister(); |
274 Register name = NameRegister(); | 274 Register name = NameRegister(); |
275 ASSERT(receiver.is(r1)); | 275 ASSERT(receiver.is(r1)); |
276 ASSERT(name.is(r2)); | 276 ASSERT(name.is(r2)); |
277 | 277 |
278 // Probe the stub cache. | 278 // Probe the stub cache. |
279 Code::Flags flags = Code::ComputeHandlerFlags(Code::LOAD_IC); | 279 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( |
| 280 Code::ComputeHandlerFlags(Code::LOAD_IC)); |
280 masm->isolate()->stub_cache()->GenerateProbe( | 281 masm->isolate()->stub_cache()->GenerateProbe( |
281 masm, flags, receiver, name, r3, r4, r5, r6); | 282 masm, flags, receiver, name, r3, r4, r5, r6); |
282 | 283 |
283 // Cache miss: Jump to runtime. | 284 // Cache miss: Jump to runtime. |
284 GenerateMiss(masm); | 285 GenerateMiss(masm); |
285 } | 286 } |
286 | 287 |
287 | 288 |
288 void LoadIC::GenerateNormal(MacroAssembler* masm) { | 289 void LoadIC::GenerateNormal(MacroAssembler* masm) { |
289 Register dictionary = r0; | 290 Register dictionary = r0; |
(...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1079 | 1080 |
1080 | 1081 |
1081 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { | 1082 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { |
1082 Register receiver = ReceiverRegister(); | 1083 Register receiver = ReceiverRegister(); |
1083 Register name = NameRegister(); | 1084 Register name = NameRegister(); |
1084 ASSERT(receiver.is(r1)); | 1085 ASSERT(receiver.is(r1)); |
1085 ASSERT(name.is(r2)); | 1086 ASSERT(name.is(r2)); |
1086 ASSERT(ValueRegister().is(r0)); | 1087 ASSERT(ValueRegister().is(r0)); |
1087 | 1088 |
1088 // Get the receiver from the stack and probe the stub cache. | 1089 // Get the receiver from the stack and probe the stub cache. |
1089 Code::Flags flags = Code::ComputeHandlerFlags(Code::STORE_IC); | 1090 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( |
| 1091 Code::ComputeHandlerFlags(Code::STORE_IC)); |
1090 | 1092 |
1091 masm->isolate()->stub_cache()->GenerateProbe( | 1093 masm->isolate()->stub_cache()->GenerateProbe( |
1092 masm, flags, receiver, name, r3, r4, r5, r6); | 1094 masm, flags, receiver, name, r3, r4, r5, r6); |
1093 | 1095 |
1094 // Cache miss: Jump to runtime. | 1096 // Cache miss: Jump to runtime. |
1095 GenerateMiss(masm); | 1097 GenerateMiss(masm); |
1096 } | 1098 } |
1097 | 1099 |
1098 | 1100 |
1099 void StoreIC::GenerateMiss(MacroAssembler* masm) { | 1101 void StoreIC::GenerateMiss(MacroAssembler* masm) { |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1235 } else { | 1237 } else { |
1236 ASSERT(Assembler::GetCondition(branch_instr) == ne); | 1238 ASSERT(Assembler::GetCondition(branch_instr) == ne); |
1237 patcher.EmitCondition(eq); | 1239 patcher.EmitCondition(eq); |
1238 } | 1240 } |
1239 } | 1241 } |
1240 | 1242 |
1241 | 1243 |
1242 } } // namespace v8::internal | 1244 } } // namespace v8::internal |
1243 | 1245 |
1244 #endif // V8_TARGET_ARCH_ARM | 1246 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |