| Index: src/builtins.h
|
| diff --git a/src/builtins.h b/src/builtins.h
|
| index 766bd78bbd555b887066b298ada9c9d377731d19..a71cf110d786c3986fdb0fbf14288d789536e45b 100644
|
| --- a/src/builtins.h
|
| +++ b/src/builtins.h
|
| @@ -239,6 +239,8 @@ class CodeStubAssembler;
|
| \
|
| V(InterpreterEntryTrampoline, BUILTIN, kNoExtraICState) \
|
| V(InterpreterMarkBaselineOnReturn, BUILTIN, kNoExtraICState) \
|
| + V(InterpreterPushArgsAndCallFunction, BUILTIN, kNoExtraICState) \
|
| + V(InterpreterPushArgsAndTailCallFunction, BUILTIN, kNoExtraICState) \
|
| V(InterpreterPushArgsAndCall, BUILTIN, kNoExtraICState) \
|
| V(InterpreterPushArgsAndTailCall, BUILTIN, kNoExtraICState) \
|
| V(InterpreterPushArgsAndConstruct, BUILTIN, kNoExtraICState) \
|
| @@ -450,7 +452,9 @@ class Builtins {
|
| Handle<Code> Call(ConvertReceiverMode = ConvertReceiverMode::kAny,
|
| TailCallMode tail_call_mode = TailCallMode::kDisallow);
|
| Handle<Code> CallBoundFunction(TailCallMode tail_call_mode);
|
| - Handle<Code> InterpreterPushArgsAndCall(TailCallMode tail_call_mode);
|
| + Handle<Code> InterpreterPushArgsAndCall(
|
| + TailCallMode tail_call_mode,
|
| + CallableType function_type = CallableType::kAny);
|
|
|
| Code* builtin(Name name) {
|
| // Code::cast cannot be used here since we access builtins
|
| @@ -790,14 +794,26 @@ class Builtins {
|
| static void Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm);
|
| static void Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm);
|
| static void Generate_InterpreterPushArgsAndCall(MacroAssembler* masm) {
|
| - return Generate_InterpreterPushArgsAndCallImpl(masm,
|
| - TailCallMode::kDisallow);
|
| + return Generate_InterpreterPushArgsAndCallImpl(
|
| + masm, TailCallMode::kDisallow, CallableType::kAny);
|
| }
|
| static void Generate_InterpreterPushArgsAndTailCall(MacroAssembler* masm) {
|
| - return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow);
|
| + return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow,
|
| + CallableType::kAny);
|
| + }
|
| + static void Generate_InterpreterPushArgsAndCallFunction(
|
| + MacroAssembler* masm) {
|
| + return Generate_InterpreterPushArgsAndCallImpl(
|
| + masm, TailCallMode::kDisallow, CallableType::kJSFunction);
|
| + }
|
| + static void Generate_InterpreterPushArgsAndTailCallFunction(
|
| + MacroAssembler* masm) {
|
| + return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow,
|
| + CallableType::kJSFunction);
|
| }
|
| static void Generate_InterpreterPushArgsAndCallImpl(
|
| - MacroAssembler* masm, TailCallMode tail_call_mode);
|
| + MacroAssembler* masm, TailCallMode tail_call_mode,
|
| + CallableType function_type);
|
| static void Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm);
|
|
|
| #define DECLARE_CODE_AGE_BUILTIN_GENERATOR(C) \
|
|
|