| 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_X87_LITHIUM_X87_H_ | 5 #ifndef V8_CRANKSHAFT_X87_LITHIUM_X87_H_ |
| 6 #define V8_CRANKSHAFT_X87_LITHIUM_X87_H_ | 6 #define V8_CRANKSHAFT_X87_LITHIUM_X87_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 1580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1591 | 1591 |
| 1592 class LLoadRoot final : public LTemplateInstruction<1, 0, 0> { | 1592 class LLoadRoot final : public LTemplateInstruction<1, 0, 0> { |
| 1593 public: | 1593 public: |
| 1594 DECLARE_CONCRETE_INSTRUCTION(LoadRoot, "load-root") | 1594 DECLARE_CONCRETE_INSTRUCTION(LoadRoot, "load-root") |
| 1595 DECLARE_HYDROGEN_ACCESSOR(LoadRoot) | 1595 DECLARE_HYDROGEN_ACCESSOR(LoadRoot) |
| 1596 | 1596 |
| 1597 Heap::RootListIndex index() const { return hydrogen()->index(); } | 1597 Heap::RootListIndex index() const { return hydrogen()->index(); } |
| 1598 }; | 1598 }; |
| 1599 | 1599 |
| 1600 | 1600 |
| 1601 class LLoadKeyed final : public LTemplateInstruction<1, 2, 0> { | 1601 class LLoadKeyed final : public LTemplateInstruction<1, 3, 0> { |
| 1602 public: | 1602 public: |
| 1603 LLoadKeyed(LOperand* elements, LOperand* key) { | 1603 LLoadKeyed(LOperand* elements, LOperand* key, LOperand* backing_store_owner) { |
| 1604 inputs_[0] = elements; | 1604 inputs_[0] = elements; |
| 1605 inputs_[1] = key; | 1605 inputs_[1] = key; |
| 1606 inputs_[2] = backing_store_owner; |
| 1606 } | 1607 } |
| 1607 LOperand* elements() { return inputs_[0]; } | 1608 LOperand* elements() { return inputs_[0]; } |
| 1608 LOperand* key() { return inputs_[1]; } | 1609 LOperand* key() { return inputs_[1]; } |
| 1610 LOperand* backing_store_owner() { return inputs_[2]; } |
| 1609 ElementsKind elements_kind() const { | 1611 ElementsKind elements_kind() const { |
| 1610 return hydrogen()->elements_kind(); | 1612 return hydrogen()->elements_kind(); |
| 1611 } | 1613 } |
| 1612 bool is_fixed_typed_array() const { | 1614 bool is_fixed_typed_array() const { |
| 1613 return hydrogen()->is_fixed_typed_array(); | 1615 return hydrogen()->is_fixed_typed_array(); |
| 1614 } | 1616 } |
| 1615 | 1617 |
| 1616 DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") | 1618 DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") |
| 1617 DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) | 1619 DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) |
| 1618 | 1620 |
| (...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2139 | 2141 |
| 2140 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") | 2142 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") |
| 2141 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) | 2143 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) |
| 2142 | 2144 |
| 2143 void PrintDataTo(StringStream* stream) override; | 2145 void PrintDataTo(StringStream* stream) override; |
| 2144 Handle<Object> name() const { return hydrogen()->name(); } | 2146 Handle<Object> name() const { return hydrogen()->name(); } |
| 2145 LanguageMode language_mode() { return hydrogen()->language_mode(); } | 2147 LanguageMode language_mode() { return hydrogen()->language_mode(); } |
| 2146 }; | 2148 }; |
| 2147 | 2149 |
| 2148 | 2150 |
| 2149 class LStoreKeyed final : public LTemplateInstruction<0, 3, 0> { | 2151 class LStoreKeyed final : public LTemplateInstruction<0, 4, 0> { |
| 2150 public: | 2152 public: |
| 2151 LStoreKeyed(LOperand* obj, LOperand* key, LOperand* val) { | 2153 LStoreKeyed(LOperand* obj, LOperand* key, LOperand* val, |
| 2154 LOperand* backing_store_owner) { |
| 2152 inputs_[0] = obj; | 2155 inputs_[0] = obj; |
| 2153 inputs_[1] = key; | 2156 inputs_[1] = key; |
| 2154 inputs_[2] = val; | 2157 inputs_[2] = val; |
| 2158 inputs_[3] = backing_store_owner |
| 2155 } | 2159 } |
| 2156 | 2160 |
| 2157 bool is_fixed_typed_array() const { | 2161 bool is_fixed_typed_array() const { |
| 2158 return hydrogen()->is_fixed_typed_array(); | 2162 return hydrogen()->is_fixed_typed_array(); |
| 2159 } | 2163 } |
| 2160 LOperand* elements() { return inputs_[0]; } | 2164 LOperand* elements() { return inputs_[0]; } |
| 2161 LOperand* key() { return inputs_[1]; } | 2165 LOperand* key() { return inputs_[1]; } |
| 2162 LOperand* value() { return inputs_[2]; } | 2166 LOperand* value() { return inputs_[2]; } |
| 2167 LOperand* backing_store_owner() { return inputs_[3]; } |
| 2163 ElementsKind elements_kind() const { | 2168 ElementsKind elements_kind() const { |
| 2164 return hydrogen()->elements_kind(); | 2169 return hydrogen()->elements_kind(); |
| 2165 } | 2170 } |
| 2166 | 2171 |
| 2167 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") | 2172 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") |
| 2168 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) | 2173 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) |
| 2169 | 2174 |
| 2170 void PrintDataTo(StringStream* stream) override; | 2175 void PrintDataTo(StringStream* stream) override; |
| 2171 uint32_t base_offset() const { return hydrogen()->base_offset(); } | 2176 uint32_t base_offset() const { return hydrogen()->base_offset(); } |
| 2172 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } | 2177 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } |
| (...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2806 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2811 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2807 }; | 2812 }; |
| 2808 | 2813 |
| 2809 #undef DECLARE_HYDROGEN_ACCESSOR | 2814 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2810 #undef DECLARE_CONCRETE_INSTRUCTION | 2815 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2811 | 2816 |
| 2812 } // namespace internal | 2817 } // namespace internal |
| 2813 } // namespace v8 | 2818 } // namespace v8 |
| 2814 | 2819 |
| 2815 #endif // V8_CRANKSHAFT_X87_LITHIUM_X87_H_ | 2820 #endif // V8_CRANKSHAFT_X87_LITHIUM_X87_H_ |
| OLD | NEW |