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

Side by Side Diff: src/compiler/js-operator.h

Issue 1178363002: Vector ICs: Turbofan vector store ic support (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix mips64 compile error. Created 5 years, 6 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/compiler/ast-graph-builder.cc ('k') | src/compiler/js-operator.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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_COMPILER_JS_OPERATOR_H_ 5 #ifndef V8_COMPILER_JS_OPERATOR_H_
6 #define V8_COMPILER_JS_OPERATOR_H_ 6 #define V8_COMPILER_JS_OPERATOR_H_
7 7
8 #include "src/runtime/runtime.h" 8 #include "src/runtime/runtime.h"
9 #include "src/unique.h" 9 #include "src/unique.h"
10 10
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 267
268 std::ostream& operator<<(std::ostream&, LoadPropertyParameters const&); 268 std::ostream& operator<<(std::ostream&, LoadPropertyParameters const&);
269 269
270 const LoadPropertyParameters& LoadPropertyParametersOf(const Operator* op); 270 const LoadPropertyParameters& LoadPropertyParametersOf(const Operator* op);
271 271
272 272
273 // Defines the property being stored to an object by a named store. This is 273 // Defines the property being stored to an object by a named store. This is
274 // used as a parameter by JSStoreNamed operators. 274 // used as a parameter by JSStoreNamed operators.
275 class StoreNamedParameters final { 275 class StoreNamedParameters final {
276 public: 276 public:
277 StoreNamedParameters(LanguageMode language_mode, const Unique<Name>& name) 277 StoreNamedParameters(LanguageMode language_mode,
278 : language_mode_(language_mode), name_(name) {} 278 const ResolvedFeedbackSlot& feedback,
279 const Unique<Name>& name)
280 : language_mode_(language_mode), name_(name), feedback_(feedback) {}
279 281
280 LanguageMode language_mode() const { return language_mode_; } 282 LanguageMode language_mode() const { return language_mode_; }
283 const ResolvedFeedbackSlot& feedback() const { return feedback_; }
281 const Unique<Name>& name() const { return name_; } 284 const Unique<Name>& name() const { return name_; }
282 285
283 private: 286 private:
284 const LanguageMode language_mode_; 287 const LanguageMode language_mode_;
285 const Unique<Name> name_; 288 const Unique<Name> name_;
289 const ResolvedFeedbackSlot feedback_;
286 }; 290 };
287 291
288 bool operator==(StoreNamedParameters const&, StoreNamedParameters const&); 292 bool operator==(StoreNamedParameters const&, StoreNamedParameters const&);
289 bool operator!=(StoreNamedParameters const&, StoreNamedParameters const&); 293 bool operator!=(StoreNamedParameters const&, StoreNamedParameters const&);
290 294
291 size_t hash_value(StoreNamedParameters const&); 295 size_t hash_value(StoreNamedParameters const&);
292 296
293 std::ostream& operator<<(std::ostream&, StoreNamedParameters const&); 297 std::ostream& operator<<(std::ostream&, StoreNamedParameters const&);
294 298
295 const StoreNamedParameters& StoreNamedParametersOf(const Operator* op); 299 const StoreNamedParameters& StoreNamedParametersOf(const Operator* op);
296 300
297 301
302 // Defines the property being stored to an object. This is used as a parameter
303 // by JSStoreProperty operators.
304 class StorePropertyParameters final {
305 public:
306 StorePropertyParameters(LanguageMode language_mode,
307 const ResolvedFeedbackSlot& feedback)
308 : language_mode_(language_mode), feedback_(feedback) {}
309
310 LanguageMode language_mode() const { return language_mode_; }
311 const ResolvedFeedbackSlot& feedback() const { return feedback_; }
312
313 private:
314 const LanguageMode language_mode_;
315 const ResolvedFeedbackSlot feedback_;
316 };
317
318 bool operator==(StorePropertyParameters const&, StorePropertyParameters const&);
319 bool operator!=(StorePropertyParameters const&, StorePropertyParameters const&);
320
321 size_t hash_value(StorePropertyParameters const&);
322
323 std::ostream& operator<<(std::ostream&, StorePropertyParameters const&);
324
325 const StorePropertyParameters& StorePropertyParametersOf(const Operator* op);
326
327
298 // Defines shared information for the closure that should be created. This is 328 // Defines shared information for the closure that should be created. This is
299 // used as a parameter by JSCreateClosure operators. 329 // used as a parameter by JSCreateClosure operators.
300 class CreateClosureParameters final { 330 class CreateClosureParameters final {
301 public: 331 public:
302 CreateClosureParameters(Handle<SharedFunctionInfo> shared_info, 332 CreateClosureParameters(Handle<SharedFunctionInfo> shared_info,
303 PretenureFlag pretenure) 333 PretenureFlag pretenure)
304 : shared_info_(shared_info), pretenure_(pretenure) {} 334 : shared_info_(shared_info), pretenure_(pretenure) {}
305 335
306 Handle<SharedFunctionInfo> shared_info() const { return shared_info_; } 336 Handle<SharedFunctionInfo> shared_info() const { return shared_info_; }
307 PretenureFlag pretenure() const { return pretenure_; } 337 PretenureFlag pretenure() const { return pretenure_; }
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 LanguageMode language_mode); 396 LanguageMode language_mode);
367 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity); 397 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity);
368 398
369 const Operator* CallConstruct(int arguments); 399 const Operator* CallConstruct(int arguments);
370 400
371 const Operator* LoadProperty(const ResolvedFeedbackSlot& feedback); 401 const Operator* LoadProperty(const ResolvedFeedbackSlot& feedback);
372 const Operator* LoadNamed(const Unique<Name>& name, 402 const Operator* LoadNamed(const Unique<Name>& name,
373 const ResolvedFeedbackSlot& feedback, 403 const ResolvedFeedbackSlot& feedback,
374 ContextualMode contextual_mode = NOT_CONTEXTUAL); 404 ContextualMode contextual_mode = NOT_CONTEXTUAL);
375 405
376 const Operator* StoreProperty(LanguageMode language_mode); 406 const Operator* StoreProperty(LanguageMode language_mode,
407 const ResolvedFeedbackSlot& feedback);
377 const Operator* StoreNamed(LanguageMode language_mode, 408 const Operator* StoreNamed(LanguageMode language_mode,
378 const Unique<Name>& name); 409 const Unique<Name>& name,
410 const ResolvedFeedbackSlot& feedback);
379 411
380 const Operator* DeleteProperty(LanguageMode language_mode); 412 const Operator* DeleteProperty(LanguageMode language_mode);
381 413
382 const Operator* HasProperty(); 414 const Operator* HasProperty();
383 415
384 const Operator* LoadContext(size_t depth, size_t index, bool immutable); 416 const Operator* LoadContext(size_t depth, size_t index, bool immutable);
385 const Operator* StoreContext(size_t depth, size_t index); 417 const Operator* StoreContext(size_t depth, size_t index);
386 418
387 const Operator* LoadDynamicGlobal(const Handle<String>& name, 419 const Operator* LoadDynamicGlobal(const Handle<String>& name,
388 uint32_t check_bitset, 420 uint32_t check_bitset,
(...skipping 28 matching lines...) Expand all
417 Zone* const zone_; 449 Zone* const zone_;
418 450
419 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); 451 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder);
420 }; 452 };
421 453
422 } // namespace compiler 454 } // namespace compiler
423 } // namespace internal 455 } // namespace internal
424 } // namespace v8 456 } // namespace v8
425 457
426 #endif // V8_COMPILER_JS_OPERATOR_H_ 458 #endif // V8_COMPILER_JS_OPERATOR_H_
OLDNEW
« no previous file with comments | « src/compiler/ast-graph-builder.cc ('k') | src/compiler/js-operator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698