Index: src/builtins.h |
diff --git a/src/builtins.h b/src/builtins.h |
index 766bd78bbd555b887066b298ada9c9d377731d19..3b4f1367352ed9d4616b7050d46b39a6a00c2e65 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,8 @@ 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, |
+ bool is_js_function = false); |
rmcilroy
2016/07/08 09:57:59
nit - could you make this bool an enum instead.
Benedikt Meurer
2016/07/09 18:19:22
Yes, please.
mythria
2016/07/11 15:25:24
Thanks, Done.
|
Code* builtin(Name name) { |
// Code::cast cannot be used here since we access builtins |
@@ -790,14 +793,25 @@ 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, false); |
} |
static void Generate_InterpreterPushArgsAndTailCall(MacroAssembler* masm) { |
- return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow); |
+ return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow, |
+ false); |
+ } |
+ static void Generate_InterpreterPushArgsAndCallFunction( |
+ MacroAssembler* masm) { |
+ return Generate_InterpreterPushArgsAndCallImpl( |
+ masm, TailCallMode::kDisallow, true); |
+ } |
+ static void Generate_InterpreterPushArgsAndTailCallFunction( |
+ MacroAssembler* masm) { |
+ return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow, |
+ true); |
} |
static void Generate_InterpreterPushArgsAndCallImpl( |
- MacroAssembler* masm, TailCallMode tail_call_mode); |
+ MacroAssembler* masm, TailCallMode tail_call_mode, bool is_js_function); |
static void Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm); |
#define DECLARE_CODE_AGE_BUILTIN_GENERATOR(C) \ |