| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/lithium-allocator-inl.h" | 7 #include "src/lithium-allocator-inl.h" |
| 8 #include "src/arm64/lithium-arm64.h" | 8 #include "src/arm64/lithium-arm64.h" |
| 9 #include "src/arm64/lithium-codegen-arm64.h" | 9 #include "src/arm64/lithium-codegen-arm64.h" |
| 10 #include "src/hydrogen-osr.h" | 10 #include "src/hydrogen-osr.h" |
| (...skipping 1707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1718 LOperand* key = UseFixed(instr->key(), x0); | 1718 LOperand* key = UseFixed(instr->key(), x0); |
| 1719 | 1719 |
| 1720 LInstruction* result = | 1720 LInstruction* result = |
| 1721 DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key), x0); | 1721 DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key), x0); |
| 1722 return MarkAsCall(result, instr); | 1722 return MarkAsCall(result, instr); |
| 1723 } | 1723 } |
| 1724 | 1724 |
| 1725 | 1725 |
| 1726 LInstruction* LChunkBuilder::DoLoadNamedField(HLoadNamedField* instr) { | 1726 LInstruction* LChunkBuilder::DoLoadNamedField(HLoadNamedField* instr) { |
| 1727 LOperand* object = UseRegisterAtStart(instr->object()); | 1727 LOperand* object = UseRegisterAtStart(instr->object()); |
| 1728 return DefineAsRegister(new(zone()) LLoadNamedField(object)); | 1728 HValue* h_obj_properties = instr->object_properties(); |
| 1729 LOperand* obj_properties = |
| 1730 (h_obj_properties != NULL) ? UseRegisterAtStart(h_obj_properties) : NULL; |
| 1731 |
| 1732 return DefineAsRegister(new(zone()) LLoadNamedField(object, obj_properties)); |
| 1729 } | 1733 } |
| 1730 | 1734 |
| 1731 | 1735 |
| 1732 LInstruction* LChunkBuilder::DoLoadNamedGeneric(HLoadNamedGeneric* instr) { | 1736 LInstruction* LChunkBuilder::DoLoadNamedGeneric(HLoadNamedGeneric* instr) { |
| 1733 LOperand* context = UseFixed(instr->context(), cp); | 1737 LOperand* context = UseFixed(instr->context(), cp); |
| 1734 LOperand* object = UseFixed(instr->object(), x0); | 1738 LOperand* object = UseFixed(instr->object(), x0); |
| 1735 LInstruction* result = | 1739 LInstruction* result = |
| 1736 DefineFixed(new(zone()) LLoadNamedGeneric(context, object), x0); | 1740 DefineFixed(new(zone()) LLoadNamedGeneric(context, object), x0); |
| 1737 return MarkAsCall(result, instr); | 1741 return MarkAsCall(result, instr); |
| 1738 } | 1742 } |
| (...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2388 temp1 = TempRegister(); | 2392 temp1 = TempRegister(); |
| 2389 } else if (instr->NeedsWriteBarrierForMap()) { | 2393 } else if (instr->NeedsWriteBarrierForMap()) { |
| 2390 value = UseRegister(instr->value()); | 2394 value = UseRegister(instr->value()); |
| 2391 temp0 = TempRegister(); | 2395 temp0 = TempRegister(); |
| 2392 temp1 = TempRegister(); | 2396 temp1 = TempRegister(); |
| 2393 } else { | 2397 } else { |
| 2394 value = UseRegister(instr->value()); | 2398 value = UseRegister(instr->value()); |
| 2395 temp0 = TempRegister(); | 2399 temp0 = TempRegister(); |
| 2396 } | 2400 } |
| 2397 | 2401 |
| 2398 return new(zone()) LStoreNamedField(object, value, temp0, temp1); | 2402 HValue* h_obj_properties = instr->object_properties(); |
| 2403 LOperand* obj_properties = |
| 2404 (h_obj_properties != NULL) ? UseRegister(h_obj_properties) : NULL; |
| 2405 |
| 2406 return new(zone()) |
| 2407 LStoreNamedField(object, value, temp0, temp1, obj_properties); |
| 2399 } | 2408 } |
| 2400 | 2409 |
| 2401 | 2410 |
| 2402 LInstruction* LChunkBuilder::DoStoreNamedGeneric(HStoreNamedGeneric* instr) { | 2411 LInstruction* LChunkBuilder::DoStoreNamedGeneric(HStoreNamedGeneric* instr) { |
| 2403 LOperand* context = UseFixed(instr->context(), cp); | 2412 LOperand* context = UseFixed(instr->context(), cp); |
| 2404 LOperand* object = UseFixed(instr->object(), x1); | 2413 LOperand* object = UseFixed(instr->object(), x1); |
| 2405 LOperand* value = UseFixed(instr->value(), x0); | 2414 LOperand* value = UseFixed(instr->value(), x0); |
| 2406 LInstruction* result = new(zone()) LStoreNamedGeneric(context, object, value); | 2415 LInstruction* result = new(zone()) LStoreNamedGeneric(context, object, value); |
| 2407 return MarkAsCall(result, instr); | 2416 return MarkAsCall(result, instr); |
| 2408 } | 2417 } |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2716 HAllocateBlockContext* instr) { | 2725 HAllocateBlockContext* instr) { |
| 2717 LOperand* context = UseFixed(instr->context(), cp); | 2726 LOperand* context = UseFixed(instr->context(), cp); |
| 2718 LOperand* function = UseRegisterAtStart(instr->function()); | 2727 LOperand* function = UseRegisterAtStart(instr->function()); |
| 2719 LAllocateBlockContext* result = | 2728 LAllocateBlockContext* result = |
| 2720 new(zone()) LAllocateBlockContext(context, function); | 2729 new(zone()) LAllocateBlockContext(context, function); |
| 2721 return MarkAsCall(DefineFixed(result, cp), instr); | 2730 return MarkAsCall(DefineFixed(result, cp), instr); |
| 2722 } | 2731 } |
| 2723 | 2732 |
| 2724 | 2733 |
| 2725 } } // namespace v8::internal | 2734 } } // namespace v8::internal |
| OLD | NEW |