Chromium Code Reviews| 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) \ |