5#ifndef V8_DEOPTIMIZER_FRAME_TRANSLATION_BUILDER_H_
6#define V8_DEOPTIMIZER_FRAME_TRANSLATION_BUILDER_H_
15#if V8_ENABLE_WEBASSEMBLY
37 bool update_feedback);
40 int bytecode_array_id,
unsigned height,
41 int return_value_offset,
int return_value_count);
48#if V8_ENABLE_WEBASSEMBLY
49 void BeginJSToWasmBuiltinContinuationFrame(
51 std::optional<wasm::ValueKind> return_kind);
52 void BeginWasmInlinedIntoJSFrame(
BytecodeOffset bailout_id,
int literal_id,
55 uint32_t wasm_function_index);
58 int literal_id,
unsigned height);
99 template <
typename... T>
103#ifdef ENABLE_SLOW_DCHECKS
105 is_operand_signed{
operands.IsSigned()...}
113#ifdef ENABLE_SLOW_DCHECKS
121 template <
typename... T>
126 template <
typename... T>
131 template <
typename... T>
136 template <
typename... T>
137 void AddRawBegin(
bool update_feedback, T... operands);
165#ifdef ENABLE_SLOW_DCHECKS
166 std::vector<Instruction> all_instructions_;
int BeginTranslation(int frame_count, int jsframe_count, bool update_feedback)
void StoreBoolStackSlot(int index)
void ValidateBytes(DeoptTranslationIterator &iter) const
ZoneVector< Instruction > basis_instructions_
void BeginJavaScriptBuiltinContinuationFrame(BytecodeOffset bailout_id, int literal_id, unsigned height)
bool match_previous_allowed_
void StoreSimd128StackSlot(int index)
void AddRawToContentsForCompression(TranslationOpcode opcode, T... operands)
base::Vector< const uint8_t > ToFrameTranslationWasm()
void StoreUint32StackSlot(int index)
void StoreFloatStackSlot(int index)
ZoneVector< uint8_t > contents_
void StoreRegister(TranslationOpcode opcode, Register reg)
void StoreFloatRegister(FloatRegister reg)
size_t total_matching_instructions_in_current_translation_
void StoreUint32Register(Register reg)
void BeginCapturedObject(int length)
void BeginJavaScriptBuiltinContinuationWithCatchFrame(BytecodeOffset bailout_id, int literal_id, unsigned height)
size_t matching_instructions_count_
void StoreInt32StackSlot(int index)
void BeginInlinedExtraArguments(int literal_id, unsigned height, uint32_t parameter_count)
void StoreHoleyDoubleRegister(DoubleRegister reg)
void StoreUnsignedBigInt64Register(Register reg)
void ArgumentsElements(CreateArgumentsType type)
void FinishPendingInstructionIfNeeded()
void AddUpdateFeedback(int vector_literal, int slot)
void BeginConstructCreateStubFrame(int literal_id, unsigned height)
void BeginBuiltinContinuationFrame(BytecodeOffset bailout_id, int literal_id, unsigned height)
void StoreBoolRegister(Register reg)
void StoreStackSlot(int index)
void StoreIntPtrRegister(Register reg)
void StoreLiteral(int literal_id)
void StoreInt64Register(Register reg)
void StoreDoubleStackSlot(int index)
size_t instruction_index_within_translation_
int index_of_basis_translation_start_
void StoreInt32Register(Register reg)
void StoreHoleyDoubleStackSlot(int index)
void BeginConstructInvokeStubFrame(int literal_id)
void StoreIntPtrStackSlot(int index)
void StoreDoubleRegister(DoubleRegister reg)
void StoreSignedBigInt64StackSlot(int index)
void StoreSignedBigInt64Register(Register reg)
void StoreJSFrameFunction()
FrameTranslationBuilder(Zone *zone)
void DuplicateObject(int object_index)
void BeginInterpretedFrame(BytecodeOffset bytecode_offset, int literal_id, int bytecode_array_id, unsigned height, int return_value_offset, int return_value_count)
ZoneVector< int32_t > contents_for_compression_
void StoreInt64StackSlot(int index)
DirectHandle< DeoptimizationFrameTranslation > ToFrameTranslation(LocalFactory *factory)
void AddRawBegin(bool update_feedback, T... operands)
void Add(TranslationOpcode opcode, T... operands)
void StoreUnsignedBigInt64StackSlot(int index)
void StoreSimd128Register(Simd128Register reg)
void AddRawToContents(TranslationOpcode opcode, T... operands)
V8_EXPORT_PRIVATE FlagValues v8_flags
constexpr int kMaxTranslationOperandCount
Instruction(TranslationOpcode opcode, T... operands)
uint32_t operands[kMaxTranslationOperandCount]
#define V8_UNLIKELY(condition)