| Index: src/compiler/linkage.cc
|
| diff --git a/src/compiler/linkage.cc b/src/compiler/linkage.cc
|
| index 9727639a88c8fcb7a287d51f1175203445f96f4c..9338a5bed7029d4783618b9734df6fb06bcd0a4e 100644
|
| --- a/src/compiler/linkage.cc
|
| +++ b/src/compiler/linkage.cc
|
| @@ -105,7 +105,7 @@ FrameOffset Linkage::GetFrameOffset(int spill_slot, Frame* frame,
|
|
|
|
|
| // static
|
| -bool Linkage::NeedsFrameState(Runtime::FunctionId function) {
|
| +int Linkage::FrameStateInputCount(Runtime::FunctionId function) {
|
| // Most runtime functions need a FrameState. A few chosen ones that we know
|
| // not to call into arbitrary JavaScript, not to throw, and not to deoptimize
|
| // are blacklisted here and can be called without a FrameState.
|
| @@ -129,15 +129,16 @@ bool Linkage::NeedsFrameState(Runtime::FunctionId function) {
|
| case Runtime::kToFastProperties: // TODO(jarin): Is it safe?
|
| case Runtime::kTraceEnter:
|
| case Runtime::kTraceExit:
|
| - return false;
|
| + return 0;
|
| case Runtime::kInlineArguments:
|
| case Runtime::kInlineCallFunction:
|
| - case Runtime::kInlineDeoptimizeNow:
|
| case Runtime::kInlineGetCallerJSFunction:
|
| case Runtime::kInlineGetPrototype:
|
| case Runtime::kInlineRegExpExec:
|
| + return 1;
|
| + case Runtime::kInlineDeoptimizeNow:
|
| case Runtime::kInlineThrowNotDateError:
|
| - return true;
|
| + return 2;
|
| default:
|
| break;
|
| }
|
| @@ -145,9 +146,9 @@ bool Linkage::NeedsFrameState(Runtime::FunctionId function) {
|
| // Most inlined runtime functions (except the ones listed above) can be called
|
| // without a FrameState or will be lowered by JSIntrinsicLowering internally.
|
| const Runtime::Function* const f = Runtime::FunctionForId(function);
|
| - if (f->intrinsic_type == Runtime::IntrinsicType::INLINE) return false;
|
| + if (f->intrinsic_type == Runtime::IntrinsicType::INLINE) return 0;
|
|
|
| - return true;
|
| + return 1;
|
| }
|
|
|
|
|
|
|