| 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 12 matching lines...) Expand all Loading... |
| 23 return !(lhs == rhs); | 23 return !(lhs == rhs); |
| 24 } | 24 } |
| 25 | 25 |
| 26 | 26 |
| 27 size_t hash_value(VectorSlotPair const& p) { | 27 size_t hash_value(VectorSlotPair const& p) { |
| 28 return base::hash_combine(p.slot(), p.vector()); | 28 return base::hash_combine(p.slot(), p.vector()); |
| 29 } | 29 } |
| 30 | 30 |
| 31 | 31 |
| 32 std::ostream& operator<<(std::ostream& os, CallFunctionParameters const& p) { | 32 std::ostream& operator<<(std::ostream& os, CallFunctionParameters const& p) { |
| 33 return os << p.arity() << ", " << p.flags() << ", " << p.language_mode(); | 33 os << p.arity() << ", " << p.flags() << ", " << p.language_mode(); |
| 34 if (p.AllowTailCalls()) { |
| 35 os << ", ALLOW_TAIL_CALLS"; |
| 36 } |
| 37 return os; |
| 34 } | 38 } |
| 35 | 39 |
| 36 | 40 |
| 37 const CallFunctionParameters& CallFunctionParametersOf(const Operator* op) { | 41 const CallFunctionParameters& CallFunctionParametersOf(const Operator* op) { |
| 38 DCHECK_EQ(IrOpcode::kJSCallFunction, op->opcode()); | 42 DCHECK_EQ(IrOpcode::kJSCallFunction, op->opcode()); |
| 39 return OpParameter<CallFunctionParameters>(op); | 43 return OpParameter<CallFunctionParameters>(op); |
| 40 } | 44 } |
| 41 | 45 |
| 42 | 46 |
| 43 bool operator==(CallRuntimeParameters const& lhs, | 47 bool operator==(CallRuntimeParameters const& lhs, |
| (...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 case STRONG_BIT: \ | 467 case STRONG_BIT: \ |
| 464 break; /* %*!%^$#@ */ \ | 468 break; /* %*!%^$#@ */ \ |
| 465 } \ | 469 } \ |
| 466 UNREACHABLE(); \ | 470 UNREACHABLE(); \ |
| 467 return nullptr; \ | 471 return nullptr; \ |
| 468 } | 472 } |
| 469 CACHED_OP_LIST_WITH_LANGUAGE_MODE(CACHED_WITH_LANGUAGE_MODE) | 473 CACHED_OP_LIST_WITH_LANGUAGE_MODE(CACHED_WITH_LANGUAGE_MODE) |
| 470 #undef CACHED_WITH_LANGUAGE_MODE | 474 #undef CACHED_WITH_LANGUAGE_MODE |
| 471 | 475 |
| 472 | 476 |
| 473 const Operator* JSOperatorBuilder::CallFunction( | 477 const Operator* JSOperatorBuilder::CallFunction(size_t arity, |
| 474 size_t arity, CallFunctionFlags flags, LanguageMode language_mode, | 478 CallFunctionFlags flags, |
| 475 VectorSlotPair const& feedback) { | 479 LanguageMode language_mode, |
| 476 CallFunctionParameters parameters(arity, flags, language_mode, feedback); | 480 VectorSlotPair const& feedback, |
| 481 TailCallMode tail_call_mode) { |
| 482 CallFunctionParameters parameters(arity, flags, language_mode, feedback, |
| 483 tail_call_mode); |
| 477 return new (zone()) Operator1<CallFunctionParameters>( // -- | 484 return new (zone()) Operator1<CallFunctionParameters>( // -- |
| 478 IrOpcode::kJSCallFunction, Operator::kNoProperties, // opcode | 485 IrOpcode::kJSCallFunction, Operator::kNoProperties, // opcode |
| 479 "JSCallFunction", // name | 486 "JSCallFunction", // name |
| 480 parameters.arity(), 1, 1, 1, 1, 2, // inputs/outputs | 487 parameters.arity(), 1, 1, 1, 1, 2, // inputs/outputs |
| 481 parameters); // parameter | 488 parameters); // parameter |
| 482 } | 489 } |
| 483 | 490 |
| 484 | 491 |
| 485 const Operator* JSOperatorBuilder::CallRuntime(Runtime::FunctionId id, | 492 const Operator* JSOperatorBuilder::CallRuntime(Runtime::FunctionId id, |
| 486 size_t arity) { | 493 size_t arity) { |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 665 return new (zone()) Operator1<Unique<String>>( // -- | 672 return new (zone()) Operator1<Unique<String>>( // -- |
| 666 IrOpcode::kJSCreateCatchContext, Operator::kNoProperties, // opcode | 673 IrOpcode::kJSCreateCatchContext, Operator::kNoProperties, // opcode |
| 667 "JSCreateCatchContext", // name | 674 "JSCreateCatchContext", // name |
| 668 2, 1, 1, 1, 1, 2, // counts | 675 2, 1, 1, 1, 1, 2, // counts |
| 669 name); // parameter | 676 name); // parameter |
| 670 } | 677 } |
| 671 | 678 |
| 672 } // namespace compiler | 679 } // namespace compiler |
| 673 } // namespace internal | 680 } // namespace internal |
| 674 } // namespace v8 | 681 } // namespace v8 |
| OLD | NEW |