diff options
Diffstat (limited to 'deps/v8/src/interpreter/interpreter-assembler.h')
-rw-r--r-- | deps/v8/src/interpreter/interpreter-assembler.h | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/deps/v8/src/interpreter/interpreter-assembler.h b/deps/v8/src/interpreter/interpreter-assembler.h index 312fa3198d..2b38508441 100644 --- a/deps/v8/src/interpreter/interpreter-assembler.h +++ b/deps/v8/src/interpreter/interpreter-assembler.h @@ -119,14 +119,21 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { // Increment the call count for a CALL_IC or construct call. // The call count is located at feedback_vector[slot_id + 1]. - compiler::Node* IncrementCallCount(compiler::Node* feedback_vector, - compiler::Node* slot_id); + void IncrementCallCount(compiler::Node* feedback_vector, + compiler::Node* slot_id); + + // Collect the callable |target| feedback for either a CALL_IC or + // an INSTANCEOF_IC in the |feedback_vector| at |slot_id|. + void CollectCallableFeedback(compiler::Node* target, compiler::Node* context, + compiler::Node* feedback_vector, + compiler::Node* slot_id); // Collect CALL_IC feedback for |target| function in the - // |feedback_vector| at |slot_id|. + // |feedback_vector| at |slot_id|, and the call counts in + // the |feedback_vector| at |slot_id+1|. void CollectCallFeedback(compiler::Node* target, compiler::Node* context, - compiler::Node* slot_id, - compiler::Node* feedback_vector); + compiler::Node* feedback_vector, + compiler::Node* slot_id); // Call JSFunction or Callable |function| with |arg_count| arguments (not // including receiver) and the first argument located at |first_arg|, possibly @@ -201,9 +208,6 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { void JumpIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs, compiler::Node* jump_offset); - // Returns true if the stack guard check triggers an interrupt. - compiler::Node* StackCheckTriggeredInterrupt(); - // Updates the profiler interrupt budget for a return. void UpdateInterruptBudgetOnReturn(); @@ -221,12 +225,6 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { // Dispatch bytecode as wide operand variant. void DispatchWide(OperandScale operand_scale); - // Truncate tagged |value| to word32 and store the type feedback in - // |var_type_feedback|. - compiler::Node* TruncateTaggedToWord32WithFeedback( - compiler::Node* context, compiler::Node* value, - Variable* var_type_feedback); - // Abort with the given bailout reason. void Abort(BailoutReason bailout_reason); void AbortIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs, @@ -245,6 +243,11 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { Bytecode bytecode() const { return bytecode_; } static bool TargetSupportsUnalignedAccess(); + void ToNumberOrNumeric(Object::Conversion mode); + + // Lazily deserializes the current bytecode's handler and tail-calls into it. + void DeserializeLazyAndDispatch(); + private: // Returns a tagged pointer to the current function's BytecodeArray object. compiler::Node* BytecodeArrayTaggedPointer(); |