35#ifndef V8_CODEGEN_MIPS64_ASSEMBLER_MIPS64_INL_H_
36#define V8_CODEGEN_MIPS64_ASSEMBLER_MIPS64_INL_H_
110 uint64_t imm28 = target &
static_cast<uint64_t
>(
kImm28Mask);
112 instr &= ~kImm26Mask;
113 uint64_t imm26 = imm28 >> 2;
178 return Memory<Address>(
pc_);
184 uint64_t imm28 =
instr << 2;
186 return static_cast<Address>(segment | imm28);
197 return ReadUnalignedValue<JSDispatchHandle>(
pc_);
216 uint32_t addr = upper16 | lower16;
222 uint32_t new_constant,
223 WritableJitAllocation* jit_allocation,
226 uint32_t rt_code =
GetRt(instr1);
232 (
GetRt(instr0) == rt_code));
296 *
reinterpret_cast<T*
>(
pc_) =
x;
303 *
reinterpret_cast<uint8_t*
>(
pc_) =
x;
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)
static bool IsJ(Instr instr)
static uint32_t GetOpcodeField(Instr instr)
void EmittedCompactBranchInstruction()
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)
void instr_at_put(int pos, Instr instr)
bool IsPrevInstrCompactBranch()
static uint32_t GetRt(Instr instr)
static void set_target_internal_reference_encoded_at(Address pc, Address target)
static constexpr int kGap
static int RelocateInternalReference(RelocInfo::Mode rmode, Address pc, intptr_t pc_delta, WritableJitAllocation *jit_allocation=nullptr)
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)
void CheckForEmitInForbiddenSlot()
static constexpr int kInstructionsFor64BitConstant
static uint32_t GetImmediate16(Instr instr)
static int deserialization_special_target_size(Address location)
V8_INLINE void CheckBuffer()
void ClearCompactBranchState()
static V8_INLINE Address target_address_at(Address pc, Address constant_pool)
void CheckTrampolinePoolQuick(int extra_instructions=0)
static uint32_t uint32_constant_at(Address pc, Address constant_pool)
static bool IsSupported(CpuFeature f)
static bool SupportsOptimizer()
static V8_INLINE DirectHandle FromSlot(Address *slot)
V8_INLINE EnsureSpace(Assembler *assembler)
static bool IsForbiddenAfterBranchInstr(Instr instr)
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)
V8_INLINE Address target_address()
static constexpr bool IsInternalReferenceEncoded(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)
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
@ INTERNAL_REFERENCE_ENCODED
bool HasTargetAddressAddress() const
V8_INLINE Address target_address_address()
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)
void FlushInstructionCache(void *start, size_t size)
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(condition)