| 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 #include "src/arm/lithium-arm.h" | 7 #include "src/arm/lithium-arm.h" |
| 8 #include "src/arm/lithium-codegen-arm.h" | 8 #include "src/arm/lithium-codegen-arm.h" |
| 9 #include "src/hydrogen-osr.h" | 9 #include "src/hydrogen-osr.h" |
| 10 #include "src/lithium-allocator-inl.h" | 10 #include "src/lithium-allocator-inl.h" |
| (...skipping 2198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2209 LInstruction* LChunkBuilder::DoLoadGlobalCell(HLoadGlobalCell* instr) { | 2209 LInstruction* LChunkBuilder::DoLoadGlobalCell(HLoadGlobalCell* instr) { |
| 2210 LLoadGlobalCell* result = new(zone()) LLoadGlobalCell; | 2210 LLoadGlobalCell* result = new(zone()) LLoadGlobalCell; |
| 2211 return instr->RequiresHoleCheck() | 2211 return instr->RequiresHoleCheck() |
| 2212 ? AssignEnvironment(DefineAsRegister(result)) | 2212 ? AssignEnvironment(DefineAsRegister(result)) |
| 2213 : DefineAsRegister(result); | 2213 : DefineAsRegister(result); |
| 2214 } | 2214 } |
| 2215 | 2215 |
| 2216 | 2216 |
| 2217 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) { | 2217 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) { |
| 2218 LOperand* context = UseFixed(instr->context(), cp); | 2218 LOperand* context = UseFixed(instr->context(), cp); |
| 2219 LOperand* global_object = UseFixed(instr->global_object(), | 2219 LOperand* global_object = UseFixed(instr->global_object(), r0); |
| 2220 LoadIC::ReceiverRegister()); | |
| 2221 LLoadGlobalGeneric* result = | 2220 LLoadGlobalGeneric* result = |
| 2222 new(zone()) LLoadGlobalGeneric(context, global_object); | 2221 new(zone()) LLoadGlobalGeneric(context, global_object); |
| 2223 return MarkAsCall(DefineFixed(result, r0), instr); | 2222 return MarkAsCall(DefineFixed(result, r0), instr); |
| 2224 } | 2223 } |
| 2225 | 2224 |
| 2226 | 2225 |
| 2227 LInstruction* LChunkBuilder::DoStoreGlobalCell(HStoreGlobalCell* instr) { | 2226 LInstruction* LChunkBuilder::DoStoreGlobalCell(HStoreGlobalCell* instr) { |
| 2228 LOperand* value = UseRegister(instr->value()); | 2227 LOperand* value = UseRegister(instr->value()); |
| 2229 // Use a temp to check the value in the cell in the case where we perform | 2228 // Use a temp to check the value in the cell in the case where we perform |
| 2230 // a hole check. | 2229 // a hole check. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2264 | 2263 |
| 2265 | 2264 |
| 2266 LInstruction* LChunkBuilder::DoLoadNamedField(HLoadNamedField* instr) { | 2265 LInstruction* LChunkBuilder::DoLoadNamedField(HLoadNamedField* instr) { |
| 2267 LOperand* obj = UseRegisterAtStart(instr->object()); | 2266 LOperand* obj = UseRegisterAtStart(instr->object()); |
| 2268 return DefineAsRegister(new(zone()) LLoadNamedField(obj)); | 2267 return DefineAsRegister(new(zone()) LLoadNamedField(obj)); |
| 2269 } | 2268 } |
| 2270 | 2269 |
| 2271 | 2270 |
| 2272 LInstruction* LChunkBuilder::DoLoadNamedGeneric(HLoadNamedGeneric* instr) { | 2271 LInstruction* LChunkBuilder::DoLoadNamedGeneric(HLoadNamedGeneric* instr) { |
| 2273 LOperand* context = UseFixed(instr->context(), cp); | 2272 LOperand* context = UseFixed(instr->context(), cp); |
| 2274 LOperand* object = UseFixed(instr->object(), LoadIC::ReceiverRegister()); | 2273 LOperand* object = UseFixed(instr->object(), r0); |
| 2275 LInstruction* result = | 2274 LInstruction* result = |
| 2276 DefineFixed(new(zone()) LLoadNamedGeneric(context, object), r0); | 2275 DefineFixed(new(zone()) LLoadNamedGeneric(context, object), r0); |
| 2277 return MarkAsCall(result, instr); | 2276 return MarkAsCall(result, instr); |
| 2278 } | 2277 } |
| 2279 | 2278 |
| 2280 | 2279 |
| 2281 LInstruction* LChunkBuilder::DoLoadFunctionPrototype( | 2280 LInstruction* LChunkBuilder::DoLoadFunctionPrototype( |
| 2282 HLoadFunctionPrototype* instr) { | 2281 HLoadFunctionPrototype* instr) { |
| 2283 return AssignEnvironment(DefineAsRegister( | 2282 return AssignEnvironment(DefineAsRegister( |
| 2284 new(zone()) LLoadFunctionPrototype(UseRegister(instr->function())))); | 2283 new(zone()) LLoadFunctionPrototype(UseRegister(instr->function())))); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2324 // LCodeGen::DoLoadKeyedFixedArray | 2323 // LCodeGen::DoLoadKeyedFixedArray |
| 2325 instr->RequiresHoleCheck()) { | 2324 instr->RequiresHoleCheck()) { |
| 2326 result = AssignEnvironment(result); | 2325 result = AssignEnvironment(result); |
| 2327 } | 2326 } |
| 2328 return result; | 2327 return result; |
| 2329 } | 2328 } |
| 2330 | 2329 |
| 2331 | 2330 |
| 2332 LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) { | 2331 LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) { |
| 2333 LOperand* context = UseFixed(instr->context(), cp); | 2332 LOperand* context = UseFixed(instr->context(), cp); |
| 2334 LOperand* object = UseFixed(instr->object(), KeyedLoadIC::ReceiverRegister()); | 2333 LOperand* object = UseFixed(instr->object(), r1); |
| 2335 LOperand* key = UseFixed(instr->key(), KeyedLoadIC::NameRegister()); | 2334 LOperand* key = UseFixed(instr->key(), r0); |
| 2336 | 2335 |
| 2337 LInstruction* result = | 2336 LInstruction* result = |
| 2338 DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key), r0); | 2337 DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key), r0); |
| 2339 return MarkAsCall(result, instr); | 2338 return MarkAsCall(result, instr); |
| 2340 } | 2339 } |
| 2341 | 2340 |
| 2342 | 2341 |
| 2343 LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) { | 2342 LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) { |
| 2344 if (!instr->is_typed_elements()) { | 2343 if (!instr->is_typed_elements()) { |
| 2345 ASSERT(instr->elements()->representation().IsTagged()); | 2344 ASSERT(instr->elements()->representation().IsTagged()); |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2720 LInstruction* LChunkBuilder::DoAllocateBlockContext( | 2719 LInstruction* LChunkBuilder::DoAllocateBlockContext( |
| 2721 HAllocateBlockContext* instr) { | 2720 HAllocateBlockContext* instr) { |
| 2722 LOperand* context = UseFixed(instr->context(), cp); | 2721 LOperand* context = UseFixed(instr->context(), cp); |
| 2723 LOperand* function = UseRegisterAtStart(instr->function()); | 2722 LOperand* function = UseRegisterAtStart(instr->function()); |
| 2724 LAllocateBlockContext* result = | 2723 LAllocateBlockContext* result = |
| 2725 new(zone()) LAllocateBlockContext(context, function); | 2724 new(zone()) LAllocateBlockContext(context, function); |
| 2726 return MarkAsCall(DefineFixed(result, cp), instr); | 2725 return MarkAsCall(DefineFixed(result, cp), instr); |
| 2727 } | 2726 } |
| 2728 | 2727 |
| 2729 } } // namespace v8::internal | 2728 } } // namespace v8::internal |
| OLD | NEW |