18#define ASSERT_OFFSET(BuiltinName) \
19 static_assert(IsolateData::builtin_tier0_entry_table_offset() + \
20 Builtins::ToInt(BuiltinName) * kSystemPointerSize <= \
27#ifdef V8_ENABLE_CET_IBT
34#if V8_ENABLE_CET_SHADOW_STACK
48 RwxMemoryWriteScope rwx_write_scope(
"Patch jump to deopt trampoline");
54 constexpr int kSize = 32;
58 int offset =
static_cast<int>(new_pc -
pc);
static bool IsJmpRel(Address addr)
static bool IsNop(Instr instr, int type=NON_MARKING_NOP)
static constexpr int kIntraSegmentJmpInstrSize
static void PatchToJump(Address pc, Address new_pc)
static V8_EXPORT_PRIVATE const int kEagerDeoptExitSize
static V8_EXPORT_PRIVATE const int kAdaptShadowStackOffsetToSubtract
static V8_EXPORT_PRIVATE const int kLazyDeoptExitSize
void SetCallerFp(unsigned offset, intptr_t value)
void SetCallerConstantPool(unsigned offset, intptr_t value)
void SetCallerPc(unsigned offset, intptr_t value)
void SetFrameSlot(unsigned offset, intptr_t value)
void SetDoubleRegister(unsigned n, Float64 value)
Float64 GetDoubleRegister(unsigned n) const
Float32 GetFloatRegister(unsigned n) const
Simd128 simd128_registers_[Simd128Register::kNumRegisters]
#define ASSERT_OFFSET(BuiltinName)
static V ReadUnalignedValue(Address p)
static void WriteUnalignedValue(Address p, V value)
FloatWithBits< 32 > Float32
FloatWithBits< 64 > Float64
void FlushInstructionCache(void *start, size_t size)
std::unique_ptr< AssemblerBuffer > ExternalAssemblerBuffer(void *start, int size)
#define DCHECK(condition)