Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Side by Side Diff: src/x87/lithium-x87.h

Issue 1213373002: X87: VectorICs: Lithium support for vector-based stores. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/x87/lithium-codegen-x87.cc ('k') | src/x87/lithium-x87.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_X87_LITHIUM_X87_H_ 5 #ifndef V8_X87_LITHIUM_X87_H_
6 #define V8_X87_LITHIUM_X87_H_ 6 #define V8_X87_LITHIUM_X87_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 2161 matching lines...) Expand 10 before | Expand all | Expand 10 after
2172 LOperand* temp() { return temps_[0]; } 2172 LOperand* temp() { return temps_[0]; }
2173 LOperand* temp_map() { return temps_[1]; } 2173 LOperand* temp_map() { return temps_[1]; }
2174 2174
2175 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") 2175 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field")
2176 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) 2176 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField)
2177 2177
2178 void PrintDataTo(StringStream* stream) override; 2178 void PrintDataTo(StringStream* stream) override;
2179 }; 2179 };
2180 2180
2181 2181
2182 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 0> { 2182 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 2> {
2183 public: 2183 public:
2184 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value) { 2184 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value,
2185 LOperand* slot, LOperand* vector) {
2185 inputs_[0] = context; 2186 inputs_[0] = context;
2186 inputs_[1] = object; 2187 inputs_[1] = object;
2187 inputs_[2] = value; 2188 inputs_[2] = value;
2189 temps_[0] = slot;
2190 temps_[1] = vector;
2188 } 2191 }
2189 2192
2190 LOperand* context() { return inputs_[0]; } 2193 LOperand* context() { return inputs_[0]; }
2191 LOperand* object() { return inputs_[1]; } 2194 LOperand* object() { return inputs_[1]; }
2192 LOperand* value() { return inputs_[2]; } 2195 LOperand* value() { return inputs_[2]; }
2196 LOperand* temp_slot() { return temps_[0]; }
2197 LOperand* temp_vector() { return temps_[1]; }
2193 2198
2194 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") 2199 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic")
2195 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) 2200 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric)
2196 2201
2197 void PrintDataTo(StringStream* stream) override; 2202 void PrintDataTo(StringStream* stream) override;
2198 Handle<Object> name() const { return hydrogen()->name(); } 2203 Handle<Object> name() const { return hydrogen()->name(); }
2199 LanguageMode language_mode() { return hydrogen()->language_mode(); } 2204 LanguageMode language_mode() { return hydrogen()->language_mode(); }
2200 }; 2205 };
2201 2206
2202 2207
(...skipping 21 matching lines...) Expand all
2224 2229
2225 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") 2230 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed")
2226 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) 2231 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed)
2227 2232
2228 void PrintDataTo(StringStream* stream) override; 2233 void PrintDataTo(StringStream* stream) override;
2229 uint32_t base_offset() const { return hydrogen()->base_offset(); } 2234 uint32_t base_offset() const { return hydrogen()->base_offset(); }
2230 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } 2235 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); }
2231 }; 2236 };
2232 2237
2233 2238
2234 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 0> { 2239 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 2> {
2235 public: 2240 public:
2236 LStoreKeyedGeneric(LOperand* context, 2241 LStoreKeyedGeneric(LOperand* context, LOperand* object, LOperand* key,
2237 LOperand* object, 2242 LOperand* value, LOperand* slot, LOperand* vector) {
2238 LOperand* key,
2239 LOperand* value) {
2240 inputs_[0] = context; 2243 inputs_[0] = context;
2241 inputs_[1] = object; 2244 inputs_[1] = object;
2242 inputs_[2] = key; 2245 inputs_[2] = key;
2243 inputs_[3] = value; 2246 inputs_[3] = value;
2247 temps_[0] = slot;
2248 temps_[1] = vector;
2244 } 2249 }
2245 2250
2246 LOperand* context() { return inputs_[0]; } 2251 LOperand* context() { return inputs_[0]; }
2247 LOperand* object() { return inputs_[1]; } 2252 LOperand* object() { return inputs_[1]; }
2248 LOperand* key() { return inputs_[2]; } 2253 LOperand* key() { return inputs_[2]; }
2249 LOperand* value() { return inputs_[3]; } 2254 LOperand* value() { return inputs_[3]; }
2255 LOperand* temp_slot() { return temps_[0]; }
2256 LOperand* temp_vector() { return temps_[1]; }
2250 2257
2251 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") 2258 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic")
2252 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) 2259 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric)
2253 2260
2254 void PrintDataTo(StringStream* stream) override; 2261 void PrintDataTo(StringStream* stream) override;
2255 2262
2256 LanguageMode language_mode() { return hydrogen()->language_mode(); } 2263 LanguageMode language_mode() { return hydrogen()->language_mode(); }
2257 }; 2264 };
2258 2265
2259 2266
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
2887 2894
2888 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2895 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2889 }; 2896 };
2890 2897
2891 #undef DECLARE_HYDROGEN_ACCESSOR 2898 #undef DECLARE_HYDROGEN_ACCESSOR
2892 #undef DECLARE_CONCRETE_INSTRUCTION 2899 #undef DECLARE_CONCRETE_INSTRUCTION
2893 2900
2894 } } // namespace v8::internal 2901 } } // namespace v8::internal
2895 2902
2896 #endif // V8_X87_LITHIUM_X87_H_ 2903 #endif // V8_X87_LITHIUM_X87_H_
OLDNEW
« no previous file with comments | « src/x87/lithium-codegen-x87.cc ('k') | src/x87/lithium-x87.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698