Index: src/interpreter/bytecode-array-builder.h |
diff --git a/src/interpreter/bytecode-array-builder.h b/src/interpreter/bytecode-array-builder.h |
index cb3fed9f99a8ff5a29b75dd4aefce22af457aec4..23a301bb9c5806501b2e12fa10a9dc17d019917f 100644 |
--- a/src/interpreter/bytecode-array-builder.h |
+++ b/src/interpreter/bytecode-array-builder.h |
@@ -152,14 +152,31 @@ class BytecodeArrayBuilder final : public ZoneObject { |
// Call a JS function. The JSFunction or Callable to be called should be in |
// |callable|, the receiver should be in |receiver_args| and all subsequent |
// arguments should be in registers <receiver_args + 1> to |
+ // <receiver_args + receiver_arg_count - 1>. Type feedback is recorded in |
+ // the |feedback_slot| in the type feedback vector. |
+ BytecodeArrayBuilder& CallWithFeedback( |
+ Register callable, Register receiver_args, size_t receiver_arg_count, |
+ int feedback_slot, TailCallMode tail_call_mode = TailCallMode::kDisallow); |
+ |
+ BytecodeArrayBuilder& TailCallWithFeedback(Register callable, |
+ Register receiver_args, |
+ size_t receiver_arg_count, |
+ int feedback_slot) { |
+ return CallWithFeedback(callable, receiver_args, receiver_arg_count, |
+ feedback_slot, TailCallMode::kAllow); |
+ } |
+ |
+ // Call a JS function. The JSFunction or Callable to be called should be in |
+ // |callable|, the receiver should be in |receiver_args| and all subsequent |
+ // arguments should be in registers <receiver_args + 1> to |
// <receiver_args + receiver_arg_count - 1>. |
BytecodeArrayBuilder& Call( |
Register callable, Register receiver_args, size_t receiver_arg_count, |
- int feedback_slot, TailCallMode tail_call_mode = TailCallMode::kDisallow); |
+ TailCallMode tail_call_mode = TailCallMode::kDisallow); |
BytecodeArrayBuilder& TailCall(Register callable, Register receiver_args, |
- size_t receiver_arg_count, int feedback_slot) { |
- return Call(callable, receiver_args, receiver_arg_count, feedback_slot, |
+ size_t receiver_arg_count) { |
+ return Call(callable, receiver_args, receiver_arg_count, |
TailCallMode::kAllow); |
} |
@@ -303,6 +320,7 @@ class BytecodeArrayBuilder final : public ZoneObject { |
static Bytecode BytecodeForCreateArguments(CreateArgumentsType type); |
static Bytecode BytecodeForDelete(LanguageMode language_mode); |
static Bytecode BytecodeForCall(TailCallMode tail_call_mode); |
+ static Bytecode BytecodeForCallWithFeedback(TailCallMode tail_call_mode); |
void Output(Bytecode bytecode, uint32_t operand0, uint32_t operand1, |
uint32_t operand2, uint32_t operand3); |