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_X87_LITHIUM_X87_H_ | 5 #ifndef V8_X87_LITHIUM_X87_H_ |
6 #define V8_X87_LITHIUM_X87_H_ | 6 #define V8_X87_LITHIUM_X87_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 1575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1586 inputs_[0] = object; | 1586 inputs_[0] = object; |
1587 } | 1587 } |
1588 | 1588 |
1589 LOperand* object() { return inputs_[0]; } | 1589 LOperand* object() { return inputs_[0]; } |
1590 | 1590 |
1591 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") | 1591 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") |
1592 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) | 1592 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) |
1593 }; | 1593 }; |
1594 | 1594 |
1595 | 1595 |
1596 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1596 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
1597 public: | 1597 public: |
1598 LLoadNamedGeneric(LOperand* context, LOperand* object) { | 1598 LLoadNamedGeneric(LOperand* context, LOperand* object, LOperand* vector) { |
1599 inputs_[0] = context; | 1599 inputs_[0] = context; |
1600 inputs_[1] = object; | 1600 inputs_[1] = object; |
| 1601 temps_[0] = vector; |
1601 } | 1602 } |
1602 | 1603 |
1603 LOperand* context() { return inputs_[0]; } | 1604 LOperand* context() { return inputs_[0]; } |
1604 LOperand* object() { return inputs_[1]; } | 1605 LOperand* object() { return inputs_[1]; } |
| 1606 LOperand* temp_vector() { return temps_[0]; } |
1605 | 1607 |
1606 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") | 1608 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") |
1607 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) | 1609 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) |
1608 | 1610 |
1609 Handle<Object> name() const { return hydrogen()->name(); } | 1611 Handle<Object> name() const { return hydrogen()->name(); } |
1610 }; | 1612 }; |
1611 | 1613 |
1612 | 1614 |
1613 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 1> { | 1615 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 1> { |
1614 public: | 1616 public: |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1675 return key_representation.IsSmi() && | 1677 return key_representation.IsSmi() && |
1676 (elements_kind == EXTERNAL_INT8_ELEMENTS || | 1678 (elements_kind == EXTERNAL_INT8_ELEMENTS || |
1677 elements_kind == EXTERNAL_UINT8_ELEMENTS || | 1679 elements_kind == EXTERNAL_UINT8_ELEMENTS || |
1678 elements_kind == EXTERNAL_UINT8_CLAMPED_ELEMENTS || | 1680 elements_kind == EXTERNAL_UINT8_CLAMPED_ELEMENTS || |
1679 elements_kind == UINT8_ELEMENTS || | 1681 elements_kind == UINT8_ELEMENTS || |
1680 elements_kind == INT8_ELEMENTS || | 1682 elements_kind == INT8_ELEMENTS || |
1681 elements_kind == UINT8_CLAMPED_ELEMENTS); | 1683 elements_kind == UINT8_CLAMPED_ELEMENTS); |
1682 } | 1684 } |
1683 | 1685 |
1684 | 1686 |
1685 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 0> { | 1687 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 1> { |
1686 public: | 1688 public: |
1687 LLoadKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key) { | 1689 LLoadKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key, |
| 1690 LOperand* vector) { |
1688 inputs_[0] = context; | 1691 inputs_[0] = context; |
1689 inputs_[1] = obj; | 1692 inputs_[1] = obj; |
1690 inputs_[2] = key; | 1693 inputs_[2] = key; |
| 1694 temps_[0] = vector; |
1691 } | 1695 } |
1692 | 1696 |
1693 LOperand* context() { return inputs_[0]; } | 1697 LOperand* context() { return inputs_[0]; } |
1694 LOperand* object() { return inputs_[1]; } | 1698 LOperand* object() { return inputs_[1]; } |
1695 LOperand* key() { return inputs_[2]; } | 1699 LOperand* key() { return inputs_[2]; } |
| 1700 LOperand* temp_vector() { return temps_[0]; } |
1696 | 1701 |
1697 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") | 1702 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") |
| 1703 DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric) |
1698 }; | 1704 }; |
1699 | 1705 |
1700 | 1706 |
1701 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 1707 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
1702 public: | 1708 public: |
1703 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") | 1709 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") |
1704 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) | 1710 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) |
1705 }; | 1711 }; |
1706 | 1712 |
1707 | 1713 |
1708 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1714 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
1709 public: | 1715 public: |
1710 LLoadGlobalGeneric(LOperand* context, LOperand* global_object) { | 1716 LLoadGlobalGeneric(LOperand* context, LOperand* global_object, |
| 1717 LOperand* vector) { |
1711 inputs_[0] = context; | 1718 inputs_[0] = context; |
1712 inputs_[1] = global_object; | 1719 inputs_[1] = global_object; |
| 1720 temps_[0] = vector; |
1713 } | 1721 } |
1714 | 1722 |
1715 LOperand* context() { return inputs_[0]; } | 1723 LOperand* context() { return inputs_[0]; } |
1716 LOperand* global_object() { return inputs_[1]; } | 1724 LOperand* global_object() { return inputs_[1]; } |
| 1725 LOperand* temp_vector() { return temps_[0]; } |
1717 | 1726 |
1718 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") | 1727 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") |
1719 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) | 1728 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) |
1720 | 1729 |
1721 Handle<Object> name() const { return hydrogen()->name(); } | 1730 Handle<Object> name() const { return hydrogen()->name(); } |
1722 bool for_typeof() const { return hydrogen()->for_typeof(); } | 1731 bool for_typeof() const { return hydrogen()->for_typeof(); } |
1723 }; | 1732 }; |
1724 | 1733 |
1725 | 1734 |
1726 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 0> { | 1735 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 0> { |
(...skipping 1152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2879 | 2888 |
2880 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2889 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2881 }; | 2890 }; |
2882 | 2891 |
2883 #undef DECLARE_HYDROGEN_ACCESSOR | 2892 #undef DECLARE_HYDROGEN_ACCESSOR |
2884 #undef DECLARE_CONCRETE_INSTRUCTION | 2893 #undef DECLARE_CONCRETE_INSTRUCTION |
2885 | 2894 |
2886 } } // namespace v8::internal | 2895 } } // namespace v8::internal |
2887 | 2896 |
2888 #endif // V8_X87_LITHIUM_X87_H_ | 2897 #endif // V8_X87_LITHIUM_X87_H_ |
OLD | NEW |