5#ifndef V8_CODEGEN_LOONG64_ASSEMBLER_LOONG64_INL_H_
6#define V8_CODEGEN_LOONG64_ASSEMBLER_LOONG64_INL_H_
40 intptr_t internal_ref = ReadUnalignedValue<intptr_t>(
pc_);
41 internal_ref += delta;
109 return static_cast<Builtin>(builtin_id);
136 return origin->relative_code_target_object_handle_at(
pc_);
187 return Memory<Address>(
pc_);
207 code_target_index = ((code_target_index & 0x3ff) << 22 >> 6) |
229 uint32_t new_constant,
230 WritableJitAllocation* jit_allocation,
258 *
reinterpret_cast<T*
>(
pc_) =
x;
265 *
reinterpret_cast<uint8_t*
>(
pc_) =
x;
IndirectHandle< Code > GetCodeTarget(intptr_t code_target_index) const
IndirectHandle< HeapObject > GetEmbeddedObject(EmbeddedObjectIndex index) const
static constexpr int kSpecialTargetSize
bool is_buffer_growth_blocked() const
static void deserialization_set_target_internal_reference_at(Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
V8_INLINE Handle< Code > relative_code_target_object_handle_at(Address pc_) const
static Tagged_t target_compressed_address_at(Address pc, Address constant_pool)
static void RelocateRelativeReference(RelocInfo::Mode rmode, Address pc, intptr_t pc_delta, WritableJitAllocation *jit_allocation=nullptr)
static void set_target_compressed_address_at(Address pc, Address constant_pool, Tagged_t target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
static void set_uint32_constant_at(Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
static void set_target_compressed_value_at(Address pc, uint32_t target, WritableJitAllocation *jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
static constexpr int kGap
static V8_INLINE void set_target_address_at(Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
Handle< HeapObject > compressed_embedded_object_handle_at(Address pc, Address constant_pool)
static Builtin target_builtin_at(Address pc)
static constexpr int kInstructionsFor64BitConstant
static int deserialization_special_target_size(Address location)
V8_INLINE void CheckBuffer()
Handle< HeapObject > embedded_object_handle_at(Address pc, Address constant_pool)
static V8_INLINE Address target_address_at(Address pc, Address constant_pool)
void CheckTrampolinePoolQuick(int extra_instructions=0)
Handle< Code > code_target_object_handle_at(Address pc)
static uint32_t uint32_constant_at(Address pc, Address constant_pool)
static constexpr bool IsBuiltinId(Builtin builtin)
static bool IsSupported(CpuFeature f)
static bool SupportsOptimizer()
V8_INLINE EnsureSpace(Assembler *assembler)
static V8_INLINE bool InTrustedSpace(Tagged< HeapObject > object)
static V8_INLINE bool InCodeSpace(Tagged< HeapObject > object)
union v8::internal::Operand::Value value_
bool IsHeapNumberRequest() const
V8_INLINE bool is_reg() const
int32_t immediate() const
constexpr bool is_valid() const
V8_INLINE Address target_internal_reference()
static constexpr bool IsInternalReference(Mode mode)
static constexpr bool IsOffHeapTarget(Mode mode)
static constexpr bool IsRelativeCodeTarget(Mode mode)
static constexpr bool IsCodeTargetMode(Mode mode)
static constexpr bool IsCompressedEmbeddedObject(Mode mode)
V8_INLINE Address target_address()
static constexpr bool IsNearBuiltinEntry(Mode mode)
V8_INLINE Address target_internal_reference_address()
static constexpr bool IsCodeTarget(Mode mode)
static constexpr bool IsWasmCall(Mode mode)
V8_INLINE int target_address_size()
V8_INLINE Builtin target_builtin_at(Assembler *origin)
V8_INLINE WasmCodePointer wasm_code_pointer_table_entry() const
V8_INLINE Address target_off_heap_target()
static constexpr bool IsWasmStubCall(Mode mode)
static constexpr bool IsEmbeddedObjectMode(Mode mode)
V8_INLINE Address target_external_reference()
V8_INLINE Tagged< HeapObject > target_object(PtrComprCageBase cage_base)
V8_INLINE Address constant_pool_entry_address()
V8_INLINE JSDispatchHandle js_dispatch_handle()
V8_INLINE DirectHandle< HeapObject > target_object_handle(Assembler *origin)
static constexpr bool IsFullEmbeddedObject(Mode mode)
@ WASM_CODE_POINTER_TABLE_ENTRY
bool HasTargetAddressAddress() const
V8_INLINE Address target_address_address()
static V8_INLINE Tagged_t CompressObject(Address tagged)
static V8_INLINE Address DecompressTagged(TOnHeapAddress on_heap_addr, Tagged_t raw_value)
V8_INLINE void WriteUnalignedValue(Address address, T value)
V8_INLINE void set_target_object(Tagged< InstructionStream > host, Tagged< HeapObject > target, WriteBarrierMode write_barrier_mode=UPDATE_WRITE_BARRIER, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
WritableJitAllocation & jit_allocation_
V8_INLINE void set_wasm_code_pointer_table_entry(WasmCodePointer, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
V8_INLINE void apply(intptr_t delta)
V8_INLINE void set_target_external_reference(Address, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
#define V8_EXTERNAL_CODE_SPACE_BOOL
#define COMPRESS_POINTERS_BOOL
#define HAS_SMI_TAG(value)
#define V8_ENABLE_SANDBOX_BOOL
kInterpreterTrampolineOffset Tagged< HeapObject >
base::StrongAlias< JSDispatchHandleAliasTag, uint32_t > JSDispatchHandle
constexpr uint8_t kInstrSize
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define DCHECK_IMPLIES(v1, v2)
#define DCHECK(condition)