| OLD | NEW | 
|---|
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include "src/compiler/js-operator.h" | 5 #include "src/compiler/js-operator.h" | 
| 6 | 6 | 
| 7 #include <limits> | 7 #include <limits> | 
| 8 | 8 | 
| 9 #include "src/base/lazy-instance.h" | 9 #include "src/base/lazy-instance.h" | 
| 10 #include "src/compiler/opcodes.h" | 10 #include "src/compiler/opcodes.h" | 
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 343   return os << p.language_mode() << ", " << Brief(*p.name()); | 343   return os << p.language_mode() << ", " << Brief(*p.name()); | 
| 344 } | 344 } | 
| 345 | 345 | 
| 346 | 346 | 
| 347 const StoreGlobalParameters& StoreGlobalParametersOf(const Operator* op) { | 347 const StoreGlobalParameters& StoreGlobalParametersOf(const Operator* op) { | 
| 348   DCHECK_EQ(IrOpcode::kJSStoreGlobal, op->opcode()); | 348   DCHECK_EQ(IrOpcode::kJSStoreGlobal, op->opcode()); | 
| 349   return OpParameter<StoreGlobalParameters>(op); | 349   return OpParameter<StoreGlobalParameters>(op); | 
| 350 } | 350 } | 
| 351 | 351 | 
| 352 | 352 | 
| 353 bool operator==(CreateArgumentsParameters const& lhs, | 353 CreateArgumentsType const& CreateArgumentsTypeOf(const Operator* op) { | 
| 354                 CreateArgumentsParameters const& rhs) { | 354   DCHECK_EQ(IrOpcode::kJSCreateArguments, op->opcode()); | 
| 355   return lhs.type() == rhs.type() && lhs.start_index() == rhs.start_index(); | 355   return OpParameter<CreateArgumentsType>(op); | 
| 356 } | 356 } | 
| 357 | 357 | 
| 358 | 358 | 
| 359 bool operator!=(CreateArgumentsParameters const& lhs, |  | 
| 360                 CreateArgumentsParameters const& rhs) { |  | 
| 361   return !(lhs == rhs); |  | 
| 362 } |  | 
| 363 |  | 
| 364 |  | 
| 365 size_t hash_value(CreateArgumentsParameters const& p) { |  | 
| 366   return base::hash_combine(p.type(), p.start_index()); |  | 
| 367 } |  | 
| 368 |  | 
| 369 |  | 
| 370 std::ostream& operator<<(std::ostream& os, CreateArgumentsParameters const& p) { |  | 
| 371   return os << p.type() << ", " << p.start_index(); |  | 
| 372 } |  | 
| 373 |  | 
| 374 |  | 
| 375 const CreateArgumentsParameters& CreateArgumentsParametersOf( |  | 
| 376     const Operator* op) { |  | 
| 377   DCHECK_EQ(IrOpcode::kJSCreateArguments, op->opcode()); |  | 
| 378   return OpParameter<CreateArgumentsParameters>(op); |  | 
| 379 } |  | 
| 380 |  | 
| 381 |  | 
| 382 bool operator==(CreateArrayParameters const& lhs, | 359 bool operator==(CreateArrayParameters const& lhs, | 
| 383                 CreateArrayParameters const& rhs) { | 360                 CreateArrayParameters const& rhs) { | 
| 384   return lhs.arity() == rhs.arity() && | 361   return lhs.arity() == rhs.arity() && | 
| 385          lhs.site().location() == rhs.site().location(); | 362          lhs.site().location() == rhs.site().location(); | 
| 386 } | 363 } | 
| 387 | 364 | 
| 388 | 365 | 
| 389 bool operator!=(CreateArrayParameters const& lhs, | 366 bool operator!=(CreateArrayParameters const& lhs, | 
| 390                 CreateArrayParameters const& rhs) { | 367                 CreateArrayParameters const& rhs) { | 
| 391   return !(lhs == rhs); | 368   return !(lhs == rhs); | 
| (...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 881                                                TypeofMode typeof_mode) { | 858                                                TypeofMode typeof_mode) { | 
| 882   DynamicAccess access(name, typeof_mode); | 859   DynamicAccess access(name, typeof_mode); | 
| 883   return new (zone()) Operator1<DynamicAccess>(           // -- | 860   return new (zone()) Operator1<DynamicAccess>(           // -- | 
| 884       IrOpcode::kJSLoadDynamic, Operator::kNoProperties,  // opcode | 861       IrOpcode::kJSLoadDynamic, Operator::kNoProperties,  // opcode | 
| 885       "JSLoadDynamic",                                    // name | 862       "JSLoadDynamic",                                    // name | 
| 886       2, 1, 1, 1, 1, 2,                                   // counts | 863       2, 1, 1, 1, 1, 2,                                   // counts | 
| 887       access);                                            // parameter | 864       access);                                            // parameter | 
| 888 } | 865 } | 
| 889 | 866 | 
| 890 | 867 | 
| 891 const Operator* JSOperatorBuilder::CreateArguments( | 868 const Operator* JSOperatorBuilder::CreateArguments(CreateArgumentsType type) { | 
| 892     CreateArgumentsParameters::Type type, int start_index) { | 869   return new (zone()) Operator1<CreateArgumentsType>(    // -- | 
| 893   DCHECK_IMPLIES(start_index, type == CreateArgumentsParameters::kRestArray); | 870       IrOpcode::kJSCreateArguments, Operator::kNoThrow,  // opcode | 
| 894   CreateArgumentsParameters parameters(type, start_index); | 871       "JSCreateArguments",                               // name | 
| 895   return new (zone()) Operator1<CreateArgumentsParameters>(  // -- | 872       1, 1, 1, 1, 1, 0,                                  // counts | 
| 896       IrOpcode::kJSCreateArguments, Operator::kNoThrow,      // opcode | 873       type);                                             // parameter | 
| 897       "JSCreateArguments",                                   // name |  | 
| 898       1, 1, 1, 1, 1, 0,                                      // counts |  | 
| 899       parameters);                                           // parameter |  | 
| 900 } | 874 } | 
| 901 | 875 | 
| 902 | 876 | 
| 903 const Operator* JSOperatorBuilder::CreateArray(size_t arity, | 877 const Operator* JSOperatorBuilder::CreateArray(size_t arity, | 
| 904                                                Handle<AllocationSite> site) { | 878                                                Handle<AllocationSite> site) { | 
| 905   // constructor, new_target, arg1, ..., argN | 879   // constructor, new_target, arg1, ..., argN | 
| 906   int const value_input_count = static_cast<int>(arity) + 2; | 880   int const value_input_count = static_cast<int>(arity) + 2; | 
| 907   CreateArrayParameters parameters(arity, site); | 881   CreateArrayParameters parameters(arity, site); | 
| 908   return new (zone()) Operator1<CreateArrayParameters>(   // -- | 882   return new (zone()) Operator1<CreateArrayParameters>(   // -- | 
| 909       IrOpcode::kJSCreateArray, Operator::kNoProperties,  // opcode | 883       IrOpcode::kJSCreateArray, Operator::kNoProperties,  // opcode | 
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 996   return new (zone()) Operator1<Handle<ScopeInfo>>(               // -- | 970   return new (zone()) Operator1<Handle<ScopeInfo>>(               // -- | 
| 997       IrOpcode::kJSCreateScriptContext, Operator::kNoProperties,  // opcode | 971       IrOpcode::kJSCreateScriptContext, Operator::kNoProperties,  // opcode | 
| 998       "JSCreateScriptContext",                                    // name | 972       "JSCreateScriptContext",                                    // name | 
| 999       1, 1, 1, 1, 1, 2,                                           // counts | 973       1, 1, 1, 1, 1, 2,                                           // counts | 
| 1000       scpope_info);                                               // parameter | 974       scpope_info);                                               // parameter | 
| 1001 } | 975 } | 
| 1002 | 976 | 
| 1003 }  // namespace compiler | 977 }  // namespace compiler | 
| 1004 }  // namespace internal | 978 }  // namespace internal | 
| 1005 }  // namespace v8 | 979 }  // namespace v8 | 
| OLD | NEW | 
|---|