| 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_ARM_LITHIUM_ARM_H_ | 5 #ifndef V8_ARM_LITHIUM_ARM_H_ |
| 6 #define V8_ARM_LITHIUM_ARM_H_ | 6 #define V8_ARM_LITHIUM_ARM_H_ |
| 7 | 7 |
| 8 #include "src/hydrogen.h" | 8 #include "src/hydrogen.h" |
| 9 #include "src/lithium-allocator.h" | 9 #include "src/lithium-allocator.h" |
| 10 #include "src/lithium.h" | 10 #include "src/lithium.h" |
| (...skipping 1554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1565 LConstantOperand* constant_parameter_count() { | 1565 LConstantOperand* constant_parameter_count() { |
| 1566 ASSERT(has_constant_parameter_count()); | 1566 ASSERT(has_constant_parameter_count()); |
| 1567 return LConstantOperand::cast(parameter_count()); | 1567 return LConstantOperand::cast(parameter_count()); |
| 1568 } | 1568 } |
| 1569 LOperand* parameter_count() { return inputs_[2]; } | 1569 LOperand* parameter_count() { return inputs_[2]; } |
| 1570 | 1570 |
| 1571 DECLARE_CONCRETE_INSTRUCTION(Return, "return") | 1571 DECLARE_CONCRETE_INSTRUCTION(Return, "return") |
| 1572 }; | 1572 }; |
| 1573 | 1573 |
| 1574 | 1574 |
| 1575 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1575 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1576 public: | 1576 public: |
| 1577 explicit LLoadNamedField(LOperand* object) { | 1577 LLoadNamedField(LOperand* object, LOperand* object_properties = NULL) { |
| 1578 inputs_[0] = object; | 1578 inputs_[0] = object; |
| 1579 inputs_[1] = object_properties; |
| 1579 } | 1580 } |
| 1580 | 1581 |
| 1581 LOperand* object() { return inputs_[0]; } | 1582 LOperand* object() { return inputs_[0]; } |
| 1583 LOperand* object_properties() { return inputs_[1]; } |
| 1582 | 1584 |
| 1583 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") | 1585 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") |
| 1584 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) | 1586 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) |
| 1585 }; | 1587 }; |
| 1586 | 1588 |
| 1587 | 1589 |
| 1588 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1590 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1589 public: | 1591 public: |
| 1590 LLoadNamedGeneric(LOperand* context, LOperand* object) { | 1592 LLoadNamedGeneric(LOperand* context, LOperand* object) { |
| 1591 inputs_[0] = context; | 1593 inputs_[0] = context; |
| (...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2140 LOperand* value() { return inputs_[0]; } | 2142 LOperand* value() { return inputs_[0]; } |
| 2141 bool needs_check() const { return needs_check_; } | 2143 bool needs_check() const { return needs_check_; } |
| 2142 | 2144 |
| 2143 DECLARE_CONCRETE_INSTRUCTION(SmiUntag, "smi-untag") | 2145 DECLARE_CONCRETE_INSTRUCTION(SmiUntag, "smi-untag") |
| 2144 | 2146 |
| 2145 private: | 2147 private: |
| 2146 bool needs_check_; | 2148 bool needs_check_; |
| 2147 }; | 2149 }; |
| 2148 | 2150 |
| 2149 | 2151 |
| 2150 class LStoreNamedField V8_FINAL : public LTemplateInstruction<0, 2, 1> { | 2152 class LStoreNamedField V8_FINAL : public LTemplateInstruction<0, 3, 1> { |
| 2151 public: | 2153 public: |
| 2152 LStoreNamedField(LOperand* object, LOperand* value, LOperand* temp) { | 2154 LStoreNamedField(LOperand* object, LOperand* value, LOperand* temp, |
| 2155 LOperand* object_properties = NULL) { |
| 2153 inputs_[0] = object; | 2156 inputs_[0] = object; |
| 2154 inputs_[1] = value; | 2157 inputs_[1] = value; |
| 2158 inputs_[2] = object_properties; |
| 2155 temps_[0] = temp; | 2159 temps_[0] = temp; |
| 2156 } | 2160 } |
| 2157 | 2161 |
| 2158 LOperand* object() { return inputs_[0]; } | 2162 LOperand* object() { return inputs_[0]; } |
| 2159 LOperand* value() { return inputs_[1]; } | 2163 LOperand* value() { return inputs_[1]; } |
| 2164 LOperand* object_properties() { return inputs_[2]; } |
| 2160 LOperand* temp() { return temps_[0]; } | 2165 LOperand* temp() { return temps_[0]; } |
| 2161 | 2166 |
| 2162 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") | 2167 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") |
| 2163 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) | 2168 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) |
| 2164 | 2169 |
| 2165 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2170 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 2166 | 2171 |
| 2167 Representation representation() const { | 2172 Representation representation() const { |
| 2168 return hydrogen()->field_representation(); | 2173 return hydrogen()->field_representation(); |
| 2169 } | 2174 } |
| (...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2872 | 2877 |
| 2873 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2878 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2874 }; | 2879 }; |
| 2875 | 2880 |
| 2876 #undef DECLARE_HYDROGEN_ACCESSOR | 2881 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2877 #undef DECLARE_CONCRETE_INSTRUCTION | 2882 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2878 | 2883 |
| 2879 } } // namespace v8::internal | 2884 } } // namespace v8::internal |
| 2880 | 2885 |
| 2881 #endif // V8_ARM_LITHIUM_ARM_H_ | 2886 #endif // V8_ARM_LITHIUM_ARM_H_ |
| OLD | NEW |