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) \ |