5#ifndef V8_OBJECTS_BYTECODE_ARRAY_INL_H_
6#define V8_OBJECTS_BYTECODE_ARRAY_INL_H_
32 source_position_table,
34 kSourcePositionTableOffset)
38 return ReadField<uint8_t>(kHeaderSize + index *
kCharSize);
46void BytecodeArray::set_frame_size(int32_t frame_size) {
52int32_t BytecodeArray::frame_size()
const {
80int32_t BytecodeArray::max_frame_size()
const {
86 int32_t register_operand =
88 if (register_operand == 0) {
110 memset(
reinterpret_cast<void*
>(
address() + data_size), 0,
126 if (IsTrustedByteArray(maybe_table))
131 ->empty_trusted_byte_array();
140 Tagged<Object> value = RawProtectedPointerField(kConstantPoolOffset).load();
147 Tagged<Object> value = RawProtectedPointerField(kHandlerTableOffset).load();
155 RawProtectedPointerField(kSourcePositionTableOffset).Acquire_Load();
165 int size = BytecodeArraySize();
166 Tagged<Object> maybe_constant_pool = raw_constant_pool(cage_base);
167 if (IsTrustedFixedArray(maybe_constant_pool)) {
172 Tagged<Object> maybe_handler_table = raw_handler_table(cage_base);
173 if (IsTrustedByteArray(maybe_handler_table)) {
179 if (IsByteArray(maybe_table)) {
188 kBytecodeOffset, kBytecodeArrayIndirectPointerTag)
uint16_t max_arguments() const
uint16_t parameter_count_without_receiver() const
interpreter::Register incoming_new_target_or_generator_register() const
void set(int index, uint8_t value)
bool HasSourcePositionTable() const
void set_max_arguments(uint16_t max_arguments)
Address GetFirstBytecodeAddress()
int BytecodeArraySize() const
uint16_t parameter_count() const
void set_incoming_new_target_or_generator_register(interpreter::Register incoming_new_target_or_generator_register)
int register_count() const
void SetSourcePositionsFailedToCollect()
void set_parameter_count(uint16_t number_of_parameters)
static constexpr int SizeFor(int length)
static constexpr int kHeaderSize
T ReadField(size_t offset) const
void WriteField(size_t offset, T value) const
static constexpr Tagged< Smi > zero()
static void Release_Store(Tagged< HeapObject > host, PtrType value)
V8_INLINE constexpr Address ptr() const
constexpr int index() const
static constexpr Register FromOperand(int32_t operand)
constexpr int32_t ToOperand() const
static constexpr Register invalid_value()
constexpr bool is_valid() const
V8_INLINE Isolate * GetIsolateFromWritableObject(Tagged< HeapObject > object)
constexpr int kSystemPointerSizeLog2
constexpr int kSystemPointerSize
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
static constexpr AcquireLoadTag kAcquireLoad
#define PROTECTED_POINTER_ACCESSORS(holder, name, type, offset)
#define OBJECT_CONSTRUCTORS_IMPL(Type, Super)
#define DEF_ACQUIRE_GETTER(holder, name,...)
#define ACCESSORS(holder, name, type, offset)
#define TRUSTED_POINTER_ACCESSORS(holder, name, type, offset, tag)
#define SMI_ACCESSORS(holder, name, offset)
#define RELEASE_ACQUIRE_SMI_ACCESSORS(holder, name, offset)
#define RELEASE_ACQUIRE_PROTECTED_POINTER_ACCESSORS(holder, name, type, offset)
#define DEF_GETTER(Camel, Lower, Bit)
#define DCHECK_NE(v1, v2)
#define DCHECK_GE(v1, v2)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)
constexpr bool IsAligned(T value, U alignment)