| 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_CRANKSHAFT_MIPS64_LITHIUM_MIPS_H_ | 5 #ifndef V8_CRANKSHAFT_MIPS64_LITHIUM_MIPS_H_ |
| 6 #define V8_CRANKSHAFT_MIPS64_LITHIUM_MIPS_H_ | 6 #define V8_CRANKSHAFT_MIPS64_LITHIUM_MIPS_H_ |
| 7 | 7 |
| 8 #include "src/crankshaft/hydrogen.h" | 8 #include "src/crankshaft/hydrogen.h" |
| 9 #include "src/crankshaft/lithium.h" | 9 #include "src/crankshaft/lithium.h" |
| 10 #include "src/crankshaft/lithium-allocator.h" | 10 #include "src/crankshaft/lithium-allocator.h" |
| (...skipping 1609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1620 | 1620 |
| 1621 class LLoadRoot final : public LTemplateInstruction<1, 0, 0> { | 1621 class LLoadRoot final : public LTemplateInstruction<1, 0, 0> { |
| 1622 public: | 1622 public: |
| 1623 DECLARE_CONCRETE_INSTRUCTION(LoadRoot, "load-root") | 1623 DECLARE_CONCRETE_INSTRUCTION(LoadRoot, "load-root") |
| 1624 DECLARE_HYDROGEN_ACCESSOR(LoadRoot) | 1624 DECLARE_HYDROGEN_ACCESSOR(LoadRoot) |
| 1625 | 1625 |
| 1626 Heap::RootListIndex index() const { return hydrogen()->index(); } | 1626 Heap::RootListIndex index() const { return hydrogen()->index(); } |
| 1627 }; | 1627 }; |
| 1628 | 1628 |
| 1629 | 1629 |
| 1630 class LLoadKeyed final : public LTemplateInstruction<1, 2, 0> { | 1630 class LLoadKeyed final : public LTemplateInstruction<1, 3, 0> { |
| 1631 public: | 1631 public: |
| 1632 LLoadKeyed(LOperand* elements, LOperand* key) { | 1632 LLoadKeyed(LOperand* elements, LOperand* key, LOperand* backing_store_owner) { |
| 1633 inputs_[0] = elements; | 1633 inputs_[0] = elements; |
| 1634 inputs_[1] = key; | 1634 inputs_[1] = key; |
| 1635 inputs_[2] = backing_store_owner; |
| 1635 } | 1636 } |
| 1636 | 1637 |
| 1637 LOperand* elements() { return inputs_[0]; } | 1638 LOperand* elements() { return inputs_[0]; } |
| 1638 LOperand* key() { return inputs_[1]; } | 1639 LOperand* key() { return inputs_[1]; } |
| 1640 LOperand* backing_store_owner() { return inputs_[2]; } |
| 1639 ElementsKind elements_kind() const { | 1641 ElementsKind elements_kind() const { |
| 1640 return hydrogen()->elements_kind(); | 1642 return hydrogen()->elements_kind(); |
| 1641 } | 1643 } |
| 1642 bool is_fixed_typed_array() const { | 1644 bool is_fixed_typed_array() const { |
| 1643 return hydrogen()->is_fixed_typed_array(); | 1645 return hydrogen()->is_fixed_typed_array(); |
| 1644 } | 1646 } |
| 1645 | 1647 |
| 1646 DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") | 1648 DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") |
| 1647 DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) | 1649 DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) |
| 1648 | 1650 |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2151 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") | 2153 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") |
| 2152 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) | 2154 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) |
| 2153 | 2155 |
| 2154 void PrintDataTo(StringStream* stream) override; | 2156 void PrintDataTo(StringStream* stream) override; |
| 2155 | 2157 |
| 2156 Handle<Object> name() const { return hydrogen()->name(); } | 2158 Handle<Object> name() const { return hydrogen()->name(); } |
| 2157 LanguageMode language_mode() { return hydrogen()->language_mode(); } | 2159 LanguageMode language_mode() { return hydrogen()->language_mode(); } |
| 2158 }; | 2160 }; |
| 2159 | 2161 |
| 2160 | 2162 |
| 2161 class LStoreKeyed final : public LTemplateInstruction<0, 3, 0> { | 2163 class LStoreKeyed final : public LTemplateInstruction<0, 4, 0> { |
| 2162 public: | 2164 public: |
| 2163 LStoreKeyed(LOperand* object, LOperand* key, LOperand* value) { | 2165 LStoreKeyed(LOperand* object, LOperand* key, LOperand* value, |
| 2166 LOperand* backing_store_owner) { |
| 2164 inputs_[0] = object; | 2167 inputs_[0] = object; |
| 2165 inputs_[1] = key; | 2168 inputs_[1] = key; |
| 2166 inputs_[2] = value; | 2169 inputs_[2] = value; |
| 2170 inputs_[3] = backing_store_owner; |
| 2167 } | 2171 } |
| 2168 | 2172 |
| 2169 bool is_fixed_typed_array() const { | 2173 bool is_fixed_typed_array() const { |
| 2170 return hydrogen()->is_fixed_typed_array(); | 2174 return hydrogen()->is_fixed_typed_array(); |
| 2171 } | 2175 } |
| 2172 LOperand* elements() { return inputs_[0]; } | 2176 LOperand* elements() { return inputs_[0]; } |
| 2173 LOperand* key() { return inputs_[1]; } | 2177 LOperand* key() { return inputs_[1]; } |
| 2174 LOperand* value() { return inputs_[2]; } | 2178 LOperand* value() { return inputs_[2]; } |
| 2179 LOperand* backing_store_owner() { return inputs_[3]; } |
| 2175 ElementsKind elements_kind() const { | 2180 ElementsKind elements_kind() const { |
| 2176 return hydrogen()->elements_kind(); | 2181 return hydrogen()->elements_kind(); |
| 2177 } | 2182 } |
| 2178 | 2183 |
| 2179 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") | 2184 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") |
| 2180 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) | 2185 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) |
| 2181 | 2186 |
| 2182 void PrintDataTo(StringStream* stream) override; | 2187 void PrintDataTo(StringStream* stream) override; |
| 2183 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } | 2188 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } |
| 2184 uint32_t base_offset() const { return hydrogen()->base_offset(); } | 2189 uint32_t base_offset() const { return hydrogen()->base_offset(); } |
| (...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2798 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2803 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2799 }; | 2804 }; |
| 2800 | 2805 |
| 2801 #undef DECLARE_HYDROGEN_ACCESSOR | 2806 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2802 #undef DECLARE_CONCRETE_INSTRUCTION | 2807 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2803 | 2808 |
| 2804 } // namespace internal | 2809 } // namespace internal |
| 2805 } // namespace v8 | 2810 } // namespace v8 |
| 2806 | 2811 |
| 2807 #endif // V8_CRANKSHAFT_MIPS64_LITHIUM_MIPS_H_ | 2812 #endif // V8_CRANKSHAFT_MIPS64_LITHIUM_MIPS_H_ |
| OLD | NEW |