5#ifndef V8_DEOPTIMIZER_FRAME_DESCRIPTION_H_
6#define V8_DEOPTIMIZER_FRAME_DESCRIPTION_H_
59#if defined(V8_TARGET_ARCH_RISCV64) || defined(V8_TARGET_ARCH_RISCV32)
71 return new (frame_size)
75 void operator delete(
void* description) {
base::Free(description); }
99 const bool pad_arguments_bottom_frame =
false;
126 if constexpr (
Is64()) {
166 void SetFp(intptr_t frame_pointer) {
fp_ = frame_pointer; }
186#if defined(V8_TARGET_ARCH_RISCV64) || defined(V8_TARGET_ARCH_RISCV32)
187 static constexpr int double_registers_offset() {
226#if defined(V8_OS_WIN) && defined(V8_TARGET_ARCH_ARM64)
228 const int kPlatformRegister = 18;
229 if (
r != kPlatformRegister) {
243 void*
operator new(
size_t size, uint32_t frame_size) {
275 return reinterpret_cast<intptr_t*
>(
reinterpret_cast<Address>(
this) +
static constexpr int kCallerSPOffset
static constexpr int simd128_registers_offset()
static int frame_size_offset()
unsigned GetLastArgumentSlotOffset(bool pad_arguments=true)
void SetLiftoffFrameSlotPointer(unsigned offset, intptr_t value)
void SetDoubleRegister(unsigned n, Float64 value)
intptr_t GetCallerPc() const
void SetFp(intptr_t frame_pointer)
void SetCallerFp(unsigned offset, intptr_t value)
uint32_t GetFrameSize() const
void SetTop(intptr_t top)
static int continuation_offset()
static int frame_content_offset()
void SetCallerConstantPool(unsigned offset, intptr_t value)
RegisterValues register_values_
Address GetFramePointerAddress()
static const uint32_t kZapUint32
void SetLiftoffFrameSlot32(unsigned offset, int32_t value)
FrameDescription(uint32_t frame_size, int parameter_count, Isolate *isolate)
intptr_t GetConstantPool() const
intptr_t * GetFrameSlotPointer(unsigned offset)
intptr_t GetContinuation() const
void SetConstantPool(intptr_t constant_pool)
static int registers_offset()
intptr_t frame_content_[1]
Float64 GetDoubleRegister(unsigned n) const
static FrameDescription * Create(uint32_t frame_size, int parameter_count, Isolate *isolate)
intptr_t GetFrameSlot(unsigned offset)
void SetRegister(unsigned n, intptr_t value)
void SetLiftoffFrameSlot64(unsigned offset, int64_t value)
intptr_t GetRegister(unsigned n) const
void SetCallerPc(unsigned offset, intptr_t value)
RegisterValues * GetRegisterValues()
void SetSimd128Register(unsigned n, Simd128 value)
void SetFrameSlot(unsigned offset, intptr_t value)
void SetContinuation(intptr_t pc)
static constexpr int8_t kNumRegisters
void SetRegister(unsigned n, intptr_t value)
void SetDoubleRegister(unsigned n, Float64 value)
Float64 GetDoubleRegister(unsigned n) const
intptr_t registers_[Register::kNumRegisters]
Simd128 GetSimd128Register(unsigned n) const
Float32 GetFloatRegister(unsigned n) const
Simd128 simd128_registers_[Simd128Register::kNumRegisters]
void SetSimd128Register(unsigned n, Simd128 value)
intptr_t GetRegister(unsigned n) const
static void WriteUnalignedValue(Address p, V value)
void * Malloc(size_t size)
WordWithBits< 128 > Simd128
constexpr int kSimd128Size
constexpr int AddArgumentPaddingSlots(int argument_count)
constexpr int kSystemPointerSize
#define DCHECK(condition)