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_MIPS_LITHIUM_MIPS_H_ | 5 #ifndef V8_MIPS_LITHIUM_MIPS_H_ |
6 #define V8_MIPS_LITHIUM_MIPS_H_ | 6 #define V8_MIPS_LITHIUM_MIPS_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 1527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1538 inputs_[0] = object; | 1538 inputs_[0] = object; |
1539 } | 1539 } |
1540 | 1540 |
1541 LOperand* object() { return inputs_[0]; } | 1541 LOperand* object() { return inputs_[0]; } |
1542 | 1542 |
1543 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") | 1543 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") |
1544 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) | 1544 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) |
1545 }; | 1545 }; |
1546 | 1546 |
1547 | 1547 |
1548 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1548 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
1549 public: | 1549 public: |
1550 LLoadNamedGeneric(LOperand* context, LOperand* object) { | 1550 LLoadNamedGeneric(LOperand* context, LOperand* object, LOperand* vector) { |
1551 inputs_[0] = context; | 1551 inputs_[0] = context; |
1552 inputs_[1] = object; | 1552 inputs_[1] = object; |
| 1553 temps_[0] = vector; |
1553 } | 1554 } |
1554 | 1555 |
1555 LOperand* context() { return inputs_[0]; } | 1556 LOperand* context() { return inputs_[0]; } |
1556 LOperand* object() { return inputs_[1]; } | 1557 LOperand* object() { return inputs_[1]; } |
| 1558 LOperand* temp_vector() { return temps_[0]; } |
1557 | 1559 |
1558 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") | 1560 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") |
1559 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) | 1561 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) |
1560 | 1562 |
1561 Handle<Object> name() const { return hydrogen()->name(); } | 1563 Handle<Object> name() const { return hydrogen()->name(); } |
1562 }; | 1564 }; |
1563 | 1565 |
1564 | 1566 |
1565 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1567 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
1566 public: | 1568 public: |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1607 } | 1609 } |
1608 | 1610 |
1609 DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") | 1611 DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") |
1610 DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) | 1612 DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) |
1611 | 1613 |
1612 virtual void PrintDataTo(StringStream* stream); | 1614 virtual void PrintDataTo(StringStream* stream); |
1613 uint32_t base_offset() const { return hydrogen()->base_offset(); } | 1615 uint32_t base_offset() const { return hydrogen()->base_offset(); } |
1614 }; | 1616 }; |
1615 | 1617 |
1616 | 1618 |
1617 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 0> { | 1619 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 1> { |
1618 public: | 1620 public: |
1619 LLoadKeyedGeneric(LOperand* context, LOperand* object, LOperand* key) { | 1621 LLoadKeyedGeneric(LOperand* context, LOperand* object, LOperand* key, |
| 1622 LOperand* vector) { |
1620 inputs_[0] = context; | 1623 inputs_[0] = context; |
1621 inputs_[1] = object; | 1624 inputs_[1] = object; |
1622 inputs_[2] = key; | 1625 inputs_[2] = key; |
| 1626 temps_[0] = vector; |
1623 } | 1627 } |
1624 | 1628 |
1625 LOperand* context() { return inputs_[0]; } | 1629 LOperand* context() { return inputs_[0]; } |
1626 LOperand* object() { return inputs_[1]; } | 1630 LOperand* object() { return inputs_[1]; } |
1627 LOperand* key() { return inputs_[2]; } | 1631 LOperand* key() { return inputs_[2]; } |
| 1632 LOperand* temp_vector() { return temps_[0]; } |
1628 | 1633 |
1629 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") | 1634 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") |
| 1635 DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric) |
1630 }; | 1636 }; |
1631 | 1637 |
1632 | 1638 |
1633 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 1639 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
1634 public: | 1640 public: |
1635 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") | 1641 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") |
1636 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) | 1642 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) |
1637 }; | 1643 }; |
1638 | 1644 |
1639 | 1645 |
1640 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1646 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
1641 public: | 1647 public: |
1642 LLoadGlobalGeneric(LOperand* context, LOperand* global_object) { | 1648 LLoadGlobalGeneric(LOperand* context, LOperand* global_object, |
| 1649 LOperand* vector) { |
1643 inputs_[0] = context; | 1650 inputs_[0] = context; |
1644 inputs_[1] = global_object; | 1651 inputs_[1] = global_object; |
| 1652 temps_[0] = vector; |
1645 } | 1653 } |
1646 | 1654 |
1647 LOperand* context() { return inputs_[0]; } | 1655 LOperand* context() { return inputs_[0]; } |
1648 LOperand* global_object() { return inputs_[1]; } | 1656 LOperand* global_object() { return inputs_[1]; } |
| 1657 LOperand* temp_vector() { return temps_[0]; } |
1649 | 1658 |
1650 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") | 1659 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") |
1651 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) | 1660 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) |
1652 | 1661 |
1653 Handle<Object> name() const { return hydrogen()->name(); } | 1662 Handle<Object> name() const { return hydrogen()->name(); } |
1654 bool for_typeof() const { return hydrogen()->for_typeof(); } | 1663 bool for_typeof() const { return hydrogen()->for_typeof(); } |
1655 }; | 1664 }; |
1656 | 1665 |
1657 | 1666 |
1658 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 1> { | 1667 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 1> { |
(...skipping 1153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2812 | 2821 |
2813 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2822 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2814 }; | 2823 }; |
2815 | 2824 |
2816 #undef DECLARE_HYDROGEN_ACCESSOR | 2825 #undef DECLARE_HYDROGEN_ACCESSOR |
2817 #undef DECLARE_CONCRETE_INSTRUCTION | 2826 #undef DECLARE_CONCRETE_INSTRUCTION |
2818 | 2827 |
2819 } } // namespace v8::internal | 2828 } } // namespace v8::internal |
2820 | 2829 |
2821 #endif // V8_MIPS_LITHIUM_MIPS_H_ | 2830 #endif // V8_MIPS_LITHIUM_MIPS_H_ |
OLD | NEW |