| 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 #ifndef V8_X64_LITHIUM_X64_H_ | 5 #ifndef V8_X64_LITHIUM_X64_H_ |
| 6 #define V8_X64_LITHIUM_X64_H_ | 6 #define V8_X64_LITHIUM_X64_H_ |
| 7 | 7 |
| 8 #include "src/hydrogen.h" | 8 #include "src/hydrogen.h" |
| 9 #include "src/lithium.h" | 9 #include "src/lithium.h" |
| 10 #include "src/lithium-allocator.h" | 10 #include "src/lithium-allocator.h" |
| (...skipping 1552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1563 inputs_[0] = object; | 1563 inputs_[0] = object; |
| 1564 } | 1564 } |
| 1565 | 1565 |
| 1566 LOperand* object() { return inputs_[0]; } | 1566 LOperand* object() { return inputs_[0]; } |
| 1567 | 1567 |
| 1568 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") | 1568 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") |
| 1569 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) | 1569 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) |
| 1570 }; | 1570 }; |
| 1571 | 1571 |
| 1572 | 1572 |
| 1573 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1573 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
| 1574 public: | 1574 public: |
| 1575 explicit LLoadNamedGeneric(LOperand* context, LOperand* object) { | 1575 explicit LLoadNamedGeneric(LOperand* context, LOperand* object, |
| 1576 LOperand* vector) { |
| 1576 inputs_[0] = context; | 1577 inputs_[0] = context; |
| 1577 inputs_[1] = object; | 1578 inputs_[1] = object; |
| 1579 temps_[0] = vector; |
| 1578 } | 1580 } |
| 1579 | 1581 |
| 1580 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") | 1582 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") |
| 1581 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) | 1583 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) |
| 1582 | 1584 |
| 1583 LOperand* context() { return inputs_[0]; } | 1585 LOperand* context() { return inputs_[0]; } |
| 1584 LOperand* object() { return inputs_[1]; } | 1586 LOperand* object() { return inputs_[1]; } |
| 1587 LOperand* temp_vector() { return temps_[0]; } |
| 1588 |
| 1585 Handle<Object> name() const { return hydrogen()->name(); } | 1589 Handle<Object> name() const { return hydrogen()->name(); } |
| 1586 }; | 1590 }; |
| 1587 | 1591 |
| 1588 | 1592 |
| 1589 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1593 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 1590 public: | 1594 public: |
| 1591 explicit LLoadFunctionPrototype(LOperand* function) { | 1595 explicit LLoadFunctionPrototype(LOperand* function) { |
| 1592 inputs_[0] = function; | 1596 inputs_[0] = function; |
| 1593 } | 1597 } |
| 1594 | 1598 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1646 LOperand* elements() { return inputs_[0]; } | 1650 LOperand* elements() { return inputs_[0]; } |
| 1647 LOperand* key() { return inputs_[1]; } | 1651 LOperand* key() { return inputs_[1]; } |
| 1648 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1652 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1649 uint32_t base_offset() const { return hydrogen()->base_offset(); } | 1653 uint32_t base_offset() const { return hydrogen()->base_offset(); } |
| 1650 ElementsKind elements_kind() const { | 1654 ElementsKind elements_kind() const { |
| 1651 return hydrogen()->elements_kind(); | 1655 return hydrogen()->elements_kind(); |
| 1652 } | 1656 } |
| 1653 }; | 1657 }; |
| 1654 | 1658 |
| 1655 | 1659 |
| 1656 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 0> { | 1660 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 1> { |
| 1657 public: | 1661 public: |
| 1658 LLoadKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key) { | 1662 LLoadKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key, |
| 1663 LOperand* vector) { |
| 1659 inputs_[0] = context; | 1664 inputs_[0] = context; |
| 1660 inputs_[1] = obj; | 1665 inputs_[1] = obj; |
| 1661 inputs_[2] = key; | 1666 inputs_[2] = key; |
| 1667 temps_[0] = vector; |
| 1662 } | 1668 } |
| 1663 | 1669 |
| 1664 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") | 1670 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") |
| 1671 DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric) |
| 1665 | 1672 |
| 1666 LOperand* context() { return inputs_[0]; } | 1673 LOperand* context() { return inputs_[0]; } |
| 1667 LOperand* object() { return inputs_[1]; } | 1674 LOperand* object() { return inputs_[1]; } |
| 1668 LOperand* key() { return inputs_[2]; } | 1675 LOperand* key() { return inputs_[2]; } |
| 1676 LOperand* temp_vector() { return temps_[0]; } |
| 1669 }; | 1677 }; |
| 1670 | 1678 |
| 1671 | 1679 |
| 1672 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 1680 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
| 1673 public: | 1681 public: |
| 1674 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") | 1682 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") |
| 1675 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) | 1683 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) |
| 1676 }; | 1684 }; |
| 1677 | 1685 |
| 1678 | 1686 |
| 1679 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1687 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
| 1680 public: | 1688 public: |
| 1681 explicit LLoadGlobalGeneric(LOperand* context, LOperand* global_object) { | 1689 explicit LLoadGlobalGeneric(LOperand* context, LOperand* global_object, |
| 1690 LOperand* vector) { |
| 1682 inputs_[0] = context; | 1691 inputs_[0] = context; |
| 1683 inputs_[1] = global_object; | 1692 inputs_[1] = global_object; |
| 1693 temps_[0] = vector; |
| 1684 } | 1694 } |
| 1685 | 1695 |
| 1686 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") | 1696 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") |
| 1687 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) | 1697 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) |
| 1688 | 1698 |
| 1689 LOperand* context() { return inputs_[0]; } | 1699 LOperand* context() { return inputs_[0]; } |
| 1690 LOperand* global_object() { return inputs_[1]; } | 1700 LOperand* global_object() { return inputs_[1]; } |
| 1701 LOperand* temp_vector() { return temps_[0]; } |
| 1702 |
| 1691 Handle<Object> name() const { return hydrogen()->name(); } | 1703 Handle<Object> name() const { return hydrogen()->name(); } |
| 1692 bool for_typeof() const { return hydrogen()->for_typeof(); } | 1704 bool for_typeof() const { return hydrogen()->for_typeof(); } |
| 1693 }; | 1705 }; |
| 1694 | 1706 |
| 1695 | 1707 |
| 1696 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 1> { | 1708 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 1> { |
| 1697 public: | 1709 public: |
| 1698 explicit LStoreGlobalCell(LOperand* value, LOperand* temp) { | 1710 explicit LStoreGlobalCell(LOperand* value, LOperand* temp) { |
| 1699 inputs_[0] = value; | 1711 inputs_[0] = value; |
| 1700 temps_[0] = temp; | 1712 temps_[0] = temp; |
| (...skipping 1158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2859 | 2871 |
| 2860 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2872 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2861 }; | 2873 }; |
| 2862 | 2874 |
| 2863 #undef DECLARE_HYDROGEN_ACCESSOR | 2875 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2864 #undef DECLARE_CONCRETE_INSTRUCTION | 2876 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2865 | 2877 |
| 2866 } } // namespace v8::int | 2878 } } // namespace v8::int |
| 2867 | 2879 |
| 2868 #endif // V8_X64_LITHIUM_X64_H_ | 2880 #endif // V8_X64_LITHIUM_X64_H_ |
| OLD | NEW |