| 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 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 IrOpcode::kJS##Name, properties, "JS" #Name, 2, 1, 1, 1, 1, \ | 578 IrOpcode::kJS##Name, properties, "JS" #Name, 2, 1, 1, 1, 1, \ |
| 579 Operator::ZeroIfNoThrow(properties), kHint) {} \ | 579 Operator::ZeroIfNoThrow(properties), kHint) {} \ |
| 580 }; \ | 580 }; \ |
| 581 Name##Operator<CompareOperationHint::kNone> k##Name##NoneOperator; \ | 581 Name##Operator<CompareOperationHint::kNone> k##Name##NoneOperator; \ |
| 582 Name##Operator<CompareOperationHint::kSignedSmall> \ | 582 Name##Operator<CompareOperationHint::kSignedSmall> \ |
| 583 k##Name##SignedSmallOperator; \ | 583 k##Name##SignedSmallOperator; \ |
| 584 Name##Operator<CompareOperationHint::kNumber> k##Name##NumberOperator; \ | 584 Name##Operator<CompareOperationHint::kNumber> k##Name##NumberOperator; \ |
| 585 Name##Operator<CompareOperationHint::kNumberOrOddball> \ | 585 Name##Operator<CompareOperationHint::kNumberOrOddball> \ |
| 586 k##Name##NumberOrOddballOperator; \ | 586 k##Name##NumberOrOddballOperator; \ |
| 587 Name##Operator<CompareOperationHint::kString> k##Name##StringOperator; \ | 587 Name##Operator<CompareOperationHint::kString> k##Name##StringOperator; \ |
| 588 Name##Operator<CompareOperationHint::kInternalizedString> \ |
| 589 k##Name##InternalizedStringOperator; \ |
| 588 Name##Operator<CompareOperationHint::kAny> k##Name##AnyOperator; | 590 Name##Operator<CompareOperationHint::kAny> k##Name##AnyOperator; |
| 589 COMPARE_OP_LIST(COMPARE_OP) | 591 COMPARE_OP_LIST(COMPARE_OP) |
| 590 #undef COMPARE_OP | 592 #undef COMPARE_OP |
| 591 }; | 593 }; |
| 592 | 594 |
| 593 static base::LazyInstance<JSOperatorGlobalCache>::type kCache = | 595 static base::LazyInstance<JSOperatorGlobalCache>::type kCache = |
| 594 LAZY_INSTANCE_INITIALIZER; | 596 LAZY_INSTANCE_INITIALIZER; |
| 595 | 597 |
| 596 JSOperatorBuilder::JSOperatorBuilder(Zone* zone) | 598 JSOperatorBuilder::JSOperatorBuilder(Zone* zone) |
| 597 : cache_(kCache.Get()), zone_(zone) {} | 599 : cache_(kCache.Get()), zone_(zone) {} |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 629 const Operator* JSOperatorBuilder::Name(CompareOperationHint hint) { \ | 631 const Operator* JSOperatorBuilder::Name(CompareOperationHint hint) { \ |
| 630 switch (hint) { \ | 632 switch (hint) { \ |
| 631 case CompareOperationHint::kNone: \ | 633 case CompareOperationHint::kNone: \ |
| 632 return &cache_.k##Name##NoneOperator; \ | 634 return &cache_.k##Name##NoneOperator; \ |
| 633 case CompareOperationHint::kSignedSmall: \ | 635 case CompareOperationHint::kSignedSmall: \ |
| 634 return &cache_.k##Name##SignedSmallOperator; \ | 636 return &cache_.k##Name##SignedSmallOperator; \ |
| 635 case CompareOperationHint::kNumber: \ | 637 case CompareOperationHint::kNumber: \ |
| 636 return &cache_.k##Name##NumberOperator; \ | 638 return &cache_.k##Name##NumberOperator; \ |
| 637 case CompareOperationHint::kNumberOrOddball: \ | 639 case CompareOperationHint::kNumberOrOddball: \ |
| 638 return &cache_.k##Name##NumberOrOddballOperator; \ | 640 return &cache_.k##Name##NumberOrOddballOperator; \ |
| 641 case CompareOperationHint::kInternalizedString: \ |
| 642 return &cache_.k##Name##InternalizedStringOperator; \ |
| 639 case CompareOperationHint::kString: \ | 643 case CompareOperationHint::kString: \ |
| 640 return &cache_.k##Name##StringOperator; \ | 644 return &cache_.k##Name##StringOperator; \ |
| 641 case CompareOperationHint::kAny: \ | 645 case CompareOperationHint::kAny: \ |
| 642 return &cache_.k##Name##AnyOperator; \ | 646 return &cache_.k##Name##AnyOperator; \ |
| 643 } \ | 647 } \ |
| 644 UNREACHABLE(); \ | 648 UNREACHABLE(); \ |
| 645 return nullptr; \ | 649 return nullptr; \ |
| 646 } | 650 } |
| 647 COMPARE_OP_LIST(COMPARE_OP) | 651 COMPARE_OP_LIST(COMPARE_OP) |
| 648 #undef COMPARE_OP | 652 #undef COMPARE_OP |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 964 return new (zone()) Operator1<Handle<ScopeInfo>>( // -- | 968 return new (zone()) Operator1<Handle<ScopeInfo>>( // -- |
| 965 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode | 969 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode |
| 966 "JSCreateScriptContext", // name | 970 "JSCreateScriptContext", // name |
| 967 1, 1, 1, 1, 1, 2, // counts | 971 1, 1, 1, 1, 1, 2, // counts |
| 968 scope_info); // parameter | 972 scope_info); // parameter |
| 969 } | 973 } |
| 970 | 974 |
| 971 } // namespace compiler | 975 } // namespace compiler |
| 972 } // namespace internal | 976 } // namespace internal |
| 973 } // namespace v8 | 977 } // namespace v8 |
| OLD | NEW |