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 2115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2126 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) | 2126 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) |
2127 | 2127 |
2128 void PrintDataTo(StringStream* stream) override; | 2128 void PrintDataTo(StringStream* stream) override; |
2129 | 2129 |
2130 Representation representation() const { | 2130 Representation representation() const { |
2131 return hydrogen()->field_representation(); | 2131 return hydrogen()->field_representation(); |
2132 } | 2132 } |
2133 }; | 2133 }; |
2134 | 2134 |
2135 | 2135 |
2136 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 0> { | 2136 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 2> { |
2137 public: | 2137 public: |
2138 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value) { | 2138 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value, |
| 2139 LOperand* slot, LOperand* vector) { |
2139 inputs_[0] = context; | 2140 inputs_[0] = context; |
2140 inputs_[1] = object; | 2141 inputs_[1] = object; |
2141 inputs_[2] = value; | 2142 inputs_[2] = value; |
| 2143 temps_[0] = slot; |
| 2144 temps_[1] = vector; |
2142 } | 2145 } |
2143 | 2146 |
2144 LOperand* context() { return inputs_[0]; } | 2147 LOperand* context() { return inputs_[0]; } |
2145 LOperand* object() { return inputs_[1]; } | 2148 LOperand* object() { return inputs_[1]; } |
2146 LOperand* value() { return inputs_[2]; } | 2149 LOperand* value() { return inputs_[2]; } |
| 2150 LOperand* temp_slot() { return temps_[0]; } |
| 2151 LOperand* temp_vector() { return temps_[1]; } |
2147 | 2152 |
2148 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") | 2153 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") |
2149 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) | 2154 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) |
2150 | 2155 |
2151 void PrintDataTo(StringStream* stream) override; | 2156 void PrintDataTo(StringStream* stream) override; |
2152 | 2157 |
2153 Handle<Object> name() const { return hydrogen()->name(); } | 2158 Handle<Object> name() const { return hydrogen()->name(); } |
2154 LanguageMode language_mode() { return hydrogen()->language_mode(); } | 2159 LanguageMode language_mode() { return hydrogen()->language_mode(); } |
2155 }; | 2160 }; |
2156 | 2161 |
(...skipping 22 matching lines...) Expand all Loading... |
2179 | 2184 |
2180 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") | 2185 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") |
2181 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) | 2186 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) |
2182 | 2187 |
2183 void PrintDataTo(StringStream* stream) override; | 2188 void PrintDataTo(StringStream* stream) override; |
2184 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } | 2189 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } |
2185 uint32_t base_offset() const { return hydrogen()->base_offset(); } | 2190 uint32_t base_offset() const { return hydrogen()->base_offset(); } |
2186 }; | 2191 }; |
2187 | 2192 |
2188 | 2193 |
2189 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 0> { | 2194 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 2> { |
2190 public: | 2195 public: |
2191 LStoreKeyedGeneric(LOperand* context, | 2196 LStoreKeyedGeneric(LOperand* context, LOperand* object, LOperand* key, |
2192 LOperand* obj, | 2197 LOperand* value, LOperand* slot, LOperand* vector) { |
2193 LOperand* key, | |
2194 LOperand* value) { | |
2195 inputs_[0] = context; | 2198 inputs_[0] = context; |
2196 inputs_[1] = obj; | 2199 inputs_[1] = object; |
2197 inputs_[2] = key; | 2200 inputs_[2] = key; |
2198 inputs_[3] = value; | 2201 inputs_[3] = value; |
| 2202 temps_[0] = slot; |
| 2203 temps_[1] = vector; |
2199 } | 2204 } |
2200 | 2205 |
2201 LOperand* context() { return inputs_[0]; } | 2206 LOperand* context() { return inputs_[0]; } |
2202 LOperand* object() { return inputs_[1]; } | 2207 LOperand* object() { return inputs_[1]; } |
2203 LOperand* key() { return inputs_[2]; } | 2208 LOperand* key() { return inputs_[2]; } |
2204 LOperand* value() { return inputs_[3]; } | 2209 LOperand* value() { return inputs_[3]; } |
| 2210 LOperand* temp_slot() { return temps_[0]; } |
| 2211 LOperand* temp_vector() { return temps_[1]; } |
2205 | 2212 |
2206 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") | 2213 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") |
2207 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) | 2214 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) |
2208 | 2215 |
2209 void PrintDataTo(StringStream* stream) override; | 2216 void PrintDataTo(StringStream* stream) override; |
2210 | 2217 |
2211 LanguageMode language_mode() { return hydrogen()->language_mode(); } | 2218 LanguageMode language_mode() { return hydrogen()->language_mode(); } |
2212 }; | 2219 }; |
2213 | 2220 |
2214 | 2221 |
(...skipping 620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2835 | 2842 |
2836 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2843 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2837 }; | 2844 }; |
2838 | 2845 |
2839 #undef DECLARE_HYDROGEN_ACCESSOR | 2846 #undef DECLARE_HYDROGEN_ACCESSOR |
2840 #undef DECLARE_CONCRETE_INSTRUCTION | 2847 #undef DECLARE_CONCRETE_INSTRUCTION |
2841 | 2848 |
2842 } } // namespace v8::internal | 2849 } } // namespace v8::internal |
2843 | 2850 |
2844 #endif // V8_MIPS_LITHIUM_MIPS_H_ | 2851 #endif // V8_MIPS_LITHIUM_MIPS_H_ |
OLD | NEW |