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 #ifndef V8_ARM64_LITHIUM_ARM64_H_ | 5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ |
6 #define V8_ARM64_LITHIUM_ARM64_H_ | 6 #define V8_ARM64_LITHIUM_ARM64_H_ |
7 | 7 |
8 #include "src/hydrogen.h" | 8 #include "src/hydrogen.h" |
9 #include "src/lithium-allocator.h" | 9 #include "src/lithium-allocator.h" |
10 #include "src/lithium.h" | 10 #include "src/lithium.h" |
(...skipping 1654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1665 | 1665 |
1666 DECLARE_CONCRETE_INSTRUCTION(LoadContextSlot, "load-context-slot") | 1666 DECLARE_CONCRETE_INSTRUCTION(LoadContextSlot, "load-context-slot") |
1667 DECLARE_HYDROGEN_ACCESSOR(LoadContextSlot) | 1667 DECLARE_HYDROGEN_ACCESSOR(LoadContextSlot) |
1668 | 1668 |
1669 int slot_index() const { return hydrogen()->slot_index(); } | 1669 int slot_index() const { return hydrogen()->slot_index(); } |
1670 | 1670 |
1671 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1671 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
1672 }; | 1672 }; |
1673 | 1673 |
1674 | 1674 |
1675 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1675 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
1676 public: | 1676 public: |
1677 explicit LLoadNamedField(LOperand* object) { | 1677 LLoadNamedField(LOperand* object, LOperand* object_properties = NULL) { |
1678 inputs_[0] = object; | 1678 inputs_[0] = object; |
| 1679 inputs_[1] = object_properties; |
1679 } | 1680 } |
1680 | 1681 |
1681 LOperand* object() { return inputs_[0]; } | 1682 LOperand* object() { return inputs_[0]; } |
| 1683 LOperand* object_properties() { return inputs_[1]; } |
1682 | 1684 |
1683 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") | 1685 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") |
1684 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) | 1686 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) |
1685 }; | 1687 }; |
1686 | 1688 |
1687 | 1689 |
1688 class LFunctionLiteral V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1690 class LFunctionLiteral V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
1689 public: | 1691 public: |
1690 explicit LFunctionLiteral(LOperand* context) { | 1692 explicit LFunctionLiteral(LOperand* context) { |
1691 inputs_[0] = context; | 1693 inputs_[0] = context; |
(...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2544 | 2546 |
2545 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") | 2547 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") |
2546 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) | 2548 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) |
2547 | 2549 |
2548 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2550 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
2549 | 2551 |
2550 StrictMode strict_mode() { return hydrogen()->strict_mode(); } | 2552 StrictMode strict_mode() { return hydrogen()->strict_mode(); } |
2551 }; | 2553 }; |
2552 | 2554 |
2553 | 2555 |
2554 class LStoreNamedField V8_FINAL : public LTemplateInstruction<0, 2, 2> { | 2556 class LStoreNamedField V8_FINAL : public LTemplateInstruction<0, 3, 2> { |
2555 public: | 2557 public: |
2556 LStoreNamedField(LOperand* object, LOperand* value, | 2558 LStoreNamedField(LOperand* object, LOperand* value, |
2557 LOperand* temp0, LOperand* temp1) { | 2559 LOperand* temp0, LOperand* temp1, |
| 2560 LOperand* object_properties = NULL) { |
2558 inputs_[0] = object; | 2561 inputs_[0] = object; |
2559 inputs_[1] = value; | 2562 inputs_[1] = value; |
| 2563 inputs_[2] = object_properties; |
2560 temps_[0] = temp0; | 2564 temps_[0] = temp0; |
2561 temps_[1] = temp1; | 2565 temps_[1] = temp1; |
2562 } | 2566 } |
2563 | 2567 |
2564 LOperand* object() { return inputs_[0]; } | 2568 LOperand* object() { return inputs_[0]; } |
2565 LOperand* value() { return inputs_[1]; } | 2569 LOperand* value() { return inputs_[1]; } |
| 2570 LOperand* object_properties() { return inputs_[2]; } |
2566 LOperand* temp0() { return temps_[0]; } | 2571 LOperand* temp0() { return temps_[0]; } |
2567 LOperand* temp1() { return temps_[1]; } | 2572 LOperand* temp1() { return temps_[1]; } |
2568 | 2573 |
2569 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") | 2574 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") |
2570 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) | 2575 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) |
2571 | 2576 |
2572 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2577 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
2573 | 2578 |
2574 Representation representation() const { | 2579 Representation representation() const { |
2575 return hydrogen()->field_representation(); | 2580 return hydrogen()->field_representation(); |
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3239 | 3244 |
3240 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 3245 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
3241 }; | 3246 }; |
3242 | 3247 |
3243 #undef DECLARE_HYDROGEN_ACCESSOR | 3248 #undef DECLARE_HYDROGEN_ACCESSOR |
3244 #undef DECLARE_CONCRETE_INSTRUCTION | 3249 #undef DECLARE_CONCRETE_INSTRUCTION |
3245 | 3250 |
3246 } } // namespace v8::internal | 3251 } } // namespace v8::internal |
3247 | 3252 |
3248 #endif // V8_ARM64_LITHIUM_ARM64_H_ | 3253 #endif // V8_ARM64_LITHIUM_ARM64_H_ |
OLD | NEW |