| 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_X64_LITHIUM_X64_H_ | 5 #ifndef V8_X64_LITHIUM_X64_H_ |
| 6 #define V8_X64_LITHIUM_X64_H_ | 6 #define V8_X64_LITHIUM_X64_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 2132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2143 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) | 2143 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) |
| 2144 | 2144 |
| 2145 void PrintDataTo(StringStream* stream) override; | 2145 void PrintDataTo(StringStream* stream) override; |
| 2146 | 2146 |
| 2147 Representation representation() const { | 2147 Representation representation() const { |
| 2148 return hydrogen()->field_representation(); | 2148 return hydrogen()->field_representation(); |
| 2149 } | 2149 } |
| 2150 }; | 2150 }; |
| 2151 | 2151 |
| 2152 | 2152 |
| 2153 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 0> { | 2153 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 2> { |
| 2154 public: | 2154 public: |
| 2155 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value) { | 2155 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value, |
| 2156 LOperand* slot, LOperand* vector) { |
| 2156 inputs_[0] = context; | 2157 inputs_[0] = context; |
| 2157 inputs_[1] = object; | 2158 inputs_[1] = object; |
| 2158 inputs_[2] = value; | 2159 inputs_[2] = value; |
| 2160 temps_[0] = slot; |
| 2161 temps_[1] = vector; |
| 2159 } | 2162 } |
| 2160 | 2163 |
| 2161 LOperand* context() { return inputs_[0]; } | 2164 LOperand* context() { return inputs_[0]; } |
| 2162 LOperand* object() { return inputs_[1]; } | 2165 LOperand* object() { return inputs_[1]; } |
| 2163 LOperand* value() { return inputs_[2]; } | 2166 LOperand* value() { return inputs_[2]; } |
| 2167 LOperand* temp_slot() { return temps_[0]; } |
| 2168 LOperand* temp_vector() { return temps_[1]; } |
| 2164 | 2169 |
| 2165 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") | 2170 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") |
| 2166 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) | 2171 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) |
| 2167 | 2172 |
| 2168 void PrintDataTo(StringStream* stream) override; | 2173 void PrintDataTo(StringStream* stream) override; |
| 2169 | 2174 |
| 2170 Handle<Object> name() const { return hydrogen()->name(); } | 2175 Handle<Object> name() const { return hydrogen()->name(); } |
| 2171 LanguageMode language_mode() { return hydrogen()->language_mode(); } | 2176 LanguageMode language_mode() { return hydrogen()->language_mode(); } |
| 2172 }; | 2177 }; |
| 2173 | 2178 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 2194 | 2199 |
| 2195 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") | 2200 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") |
| 2196 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) | 2201 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) |
| 2197 | 2202 |
| 2198 void PrintDataTo(StringStream* stream) override; | 2203 void PrintDataTo(StringStream* stream) override; |
| 2199 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } | 2204 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } |
| 2200 uint32_t base_offset() const { return hydrogen()->base_offset(); } | 2205 uint32_t base_offset() const { return hydrogen()->base_offset(); } |
| 2201 }; | 2206 }; |
| 2202 | 2207 |
| 2203 | 2208 |
| 2204 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 0> { | 2209 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 2> { |
| 2205 public: | 2210 public: |
| 2206 LStoreKeyedGeneric(LOperand* context, | 2211 LStoreKeyedGeneric(LOperand* context, LOperand* object, LOperand* key, |
| 2207 LOperand* object, | 2212 LOperand* value, LOperand* slot, LOperand* vector) { |
| 2208 LOperand* key, | |
| 2209 LOperand* value) { | |
| 2210 inputs_[0] = context; | 2213 inputs_[0] = context; |
| 2211 inputs_[1] = object; | 2214 inputs_[1] = object; |
| 2212 inputs_[2] = key; | 2215 inputs_[2] = key; |
| 2213 inputs_[3] = value; | 2216 inputs_[3] = value; |
| 2217 temps_[0] = slot; |
| 2218 temps_[1] = vector; |
| 2214 } | 2219 } |
| 2215 | 2220 |
| 2216 LOperand* context() { return inputs_[0]; } | 2221 LOperand* context() { return inputs_[0]; } |
| 2217 LOperand* object() { return inputs_[1]; } | 2222 LOperand* object() { return inputs_[1]; } |
| 2218 LOperand* key() { return inputs_[2]; } | 2223 LOperand* key() { return inputs_[2]; } |
| 2219 LOperand* value() { return inputs_[3]; } | 2224 LOperand* value() { return inputs_[3]; } |
| 2225 LOperand* temp_slot() { return temps_[0]; } |
| 2226 LOperand* temp_vector() { return temps_[1]; } |
| 2220 | 2227 |
| 2221 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") | 2228 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") |
| 2222 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) | 2229 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) |
| 2223 | 2230 |
| 2224 void PrintDataTo(StringStream* stream) override; | 2231 void PrintDataTo(StringStream* stream) override; |
| 2225 | 2232 |
| 2226 LanguageMode language_mode() { return hydrogen()->language_mode(); } | 2233 LanguageMode language_mode() { return hydrogen()->language_mode(); } |
| 2227 }; | 2234 }; |
| 2228 | 2235 |
| 2229 | 2236 |
| (...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2858 | 2865 |
| 2859 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2866 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2860 }; | 2867 }; |
| 2861 | 2868 |
| 2862 #undef DECLARE_HYDROGEN_ACCESSOR | 2869 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2863 #undef DECLARE_CONCRETE_INSTRUCTION | 2870 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2864 | 2871 |
| 2865 } } // namespace v8::int | 2872 } } // namespace v8::int |
| 2866 | 2873 |
| 2867 #endif // V8_X64_LITHIUM_X64_H_ | 2874 #endif // V8_X64_LITHIUM_X64_H_ |
| OLD | NEW |