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_IA32_LITHIUM_IA32_H_ | 5 #ifndef V8_IA32_LITHIUM_IA32_H_ |
6 #define V8_IA32_LITHIUM_IA32_H_ | 6 #define V8_IA32_LITHIUM_IA32_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 1560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1571 inputs_[0] = object; | 1571 inputs_[0] = object; |
1572 } | 1572 } |
1573 | 1573 |
1574 LOperand* object() { return inputs_[0]; } | 1574 LOperand* object() { return inputs_[0]; } |
1575 | 1575 |
1576 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") | 1576 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") |
1577 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) | 1577 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) |
1578 }; | 1578 }; |
1579 | 1579 |
1580 | 1580 |
1581 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1581 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
1582 public: | 1582 public: |
1583 LLoadNamedGeneric(LOperand* context, LOperand* object) { | 1583 LLoadNamedGeneric(LOperand* context, LOperand* object, LOperand* vector) { |
1584 inputs_[0] = context; | 1584 inputs_[0] = context; |
1585 inputs_[1] = object; | 1585 inputs_[1] = object; |
| 1586 temps_[0] = vector; |
1586 } | 1587 } |
1587 | 1588 |
1588 LOperand* context() { return inputs_[0]; } | 1589 LOperand* context() { return inputs_[0]; } |
1589 LOperand* object() { return inputs_[1]; } | 1590 LOperand* object() { return inputs_[1]; } |
| 1591 LOperand* temp_vector() { return temps_[0]; } |
1590 | 1592 |
1591 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") | 1593 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") |
1592 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) | 1594 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) |
1593 | 1595 |
1594 Handle<Object> name() const { return hydrogen()->name(); } | 1596 Handle<Object> name() const { return hydrogen()->name(); } |
1595 }; | 1597 }; |
1596 | 1598 |
1597 | 1599 |
1598 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 1> { | 1600 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 1> { |
1599 public: | 1601 public: |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1660 return key_representation.IsSmi() && | 1662 return key_representation.IsSmi() && |
1661 (elements_kind == EXTERNAL_INT8_ELEMENTS || | 1663 (elements_kind == EXTERNAL_INT8_ELEMENTS || |
1662 elements_kind == EXTERNAL_UINT8_ELEMENTS || | 1664 elements_kind == EXTERNAL_UINT8_ELEMENTS || |
1663 elements_kind == EXTERNAL_UINT8_CLAMPED_ELEMENTS || | 1665 elements_kind == EXTERNAL_UINT8_CLAMPED_ELEMENTS || |
1664 elements_kind == UINT8_ELEMENTS || | 1666 elements_kind == UINT8_ELEMENTS || |
1665 elements_kind == INT8_ELEMENTS || | 1667 elements_kind == INT8_ELEMENTS || |
1666 elements_kind == UINT8_CLAMPED_ELEMENTS); | 1668 elements_kind == UINT8_CLAMPED_ELEMENTS); |
1667 } | 1669 } |
1668 | 1670 |
1669 | 1671 |
1670 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 0> { | 1672 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 1> { |
1671 public: | 1673 public: |
1672 LLoadKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key) { | 1674 LLoadKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key, |
| 1675 LOperand* vector) { |
1673 inputs_[0] = context; | 1676 inputs_[0] = context; |
1674 inputs_[1] = obj; | 1677 inputs_[1] = obj; |
1675 inputs_[2] = key; | 1678 inputs_[2] = key; |
| 1679 temps_[0] = vector; |
1676 } | 1680 } |
1677 | 1681 |
1678 LOperand* context() { return inputs_[0]; } | 1682 LOperand* context() { return inputs_[0]; } |
1679 LOperand* object() { return inputs_[1]; } | 1683 LOperand* object() { return inputs_[1]; } |
1680 LOperand* key() { return inputs_[2]; } | 1684 LOperand* key() { return inputs_[2]; } |
| 1685 LOperand* temp_vector() { return temps_[0]; } |
1681 | 1686 |
1682 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") | 1687 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") |
| 1688 DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric) |
1683 }; | 1689 }; |
1684 | 1690 |
1685 | 1691 |
1686 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 1692 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
1687 public: | 1693 public: |
1688 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") | 1694 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") |
1689 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) | 1695 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) |
1690 }; | 1696 }; |
1691 | 1697 |
1692 | 1698 |
1693 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1699 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
1694 public: | 1700 public: |
1695 LLoadGlobalGeneric(LOperand* context, LOperand* global_object) { | 1701 LLoadGlobalGeneric(LOperand* context, LOperand* global_object, |
| 1702 LOperand* vector) { |
1696 inputs_[0] = context; | 1703 inputs_[0] = context; |
1697 inputs_[1] = global_object; | 1704 inputs_[1] = global_object; |
| 1705 temps_[0] = vector; |
1698 } | 1706 } |
1699 | 1707 |
1700 LOperand* context() { return inputs_[0]; } | 1708 LOperand* context() { return inputs_[0]; } |
1701 LOperand* global_object() { return inputs_[1]; } | 1709 LOperand* global_object() { return inputs_[1]; } |
| 1710 LOperand* temp_vector() { return temps_[0]; } |
1702 | 1711 |
1703 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") | 1712 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") |
1704 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) | 1713 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) |
1705 | 1714 |
1706 Handle<Object> name() const { return hydrogen()->name(); } | 1715 Handle<Object> name() const { return hydrogen()->name(); } |
1707 bool for_typeof() const { return hydrogen()->for_typeof(); } | 1716 bool for_typeof() const { return hydrogen()->for_typeof(); } |
1708 }; | 1717 }; |
1709 | 1718 |
1710 | 1719 |
1711 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 0> { | 1720 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 0> { |
(...skipping 1151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2863 | 2872 |
2864 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2873 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2865 }; | 2874 }; |
2866 | 2875 |
2867 #undef DECLARE_HYDROGEN_ACCESSOR | 2876 #undef DECLARE_HYDROGEN_ACCESSOR |
2868 #undef DECLARE_CONCRETE_INSTRUCTION | 2877 #undef DECLARE_CONCRETE_INSTRUCTION |
2869 | 2878 |
2870 } } // namespace v8::internal | 2879 } } // namespace v8::internal |
2871 | 2880 |
2872 #endif // V8_IA32_LITHIUM_IA32_H_ | 2881 #endif // V8_IA32_LITHIUM_IA32_H_ |
OLD | NEW |