Flutter Engine
The Flutter Engine
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
dart::compiler::MicroAssembler Class Reference

#include <assembler_riscv.h>

Inheritance diagram for dart::compiler::MicroAssembler:
dart::compiler::AssemblerBase dart::StackResource dart::compiler::Assembler

Public Member Functions

 MicroAssembler (ObjectPoolBuilder *object_pool_builder, intptr_t far_branch_level, ExtensionSet extensions)
 
 ~MicroAssembler ()
 
bool Supports (Extension extension) const
 
bool Supports (ExtensionSet extensions) const
 
intptr_t far_branch_level () const
 
void set_far_branch_level (intptr_t level)
 
void Bind (Label *label)
 
void lui (Register rd, intptr_t imm)
 
void lui_fixed (Register rd, intptr_t imm)
 
void auipc (Register rd, intptr_t imm)
 
void jal (Register rd, Label *label, JumpDistance d=kFarJump)
 
void jal (Label *label, JumpDistance d=kFarJump)
 
void j (Label *label, JumpDistance d=kFarJump)
 
void jalr (Register rd, Register rs1, intptr_t offset=0)
 
void jalr_fixed (Register rd, Register rs1, intptr_t offset)
 
void jalr (Register rs1, intptr_t offset=0)
 
void jr (Register rs1, intptr_t offset=0)
 
void ret ()
 
void beq (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void bne (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void blt (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void bge (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void bgt (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void ble (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void bltu (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void bgeu (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void bgtu (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void bleu (Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
 
void lb (Register rd, Address addr)
 
void lh (Register rd, Address addr)
 
void lw (Register rd, Address addr)
 
void lbu (Register rd, Address addr)
 
void lhu (Register rd, Address addr)
 
void sb (Register rs2, Address addr)
 
void sh (Register rs2, Address addr)
 
void sw (Register rs2, Address addr)
 
void addi (Register rd, Register rs1, intptr_t imm)
 
void subi (Register rd, Register rs1, intptr_t imm)
 
void slti (Register rd, Register rs1, intptr_t imm)
 
void sltiu (Register rd, Register rs1, intptr_t imm)
 
void xori (Register rd, Register rs1, intptr_t imm)
 
void ori (Register rd, Register rs1, intptr_t imm)
 
void andi (Register rd, Register rs1, intptr_t imm)
 
void slli (Register rd, Register rs1, intptr_t shamt)
 
void srli (Register rd, Register rs1, intptr_t shamt)
 
void srai (Register rd, Register rs1, intptr_t shamt)
 
void add (Register rd, Register rs1, Register rs2)
 
void sub (Register rd, Register rs1, Register rs2)
 
void sll (Register rd, Register rs1, Register rs2)
 
void slt (Register rd, Register rs1, Register rs2)
 
void sltu (Register rd, Register rs1, Register rs2)
 
void xor_ (Register rd, Register rs1, Register rs2)
 
void srl (Register rd, Register rs1, Register rs2)
 
void sra (Register rd, Register rs1, Register rs2)
 
void or_ (Register rd, Register rs1, Register rs2)
 
void and_ (Register rd, Register rs1, Register rs2)
 
void fence (HartEffects predecessor, HartEffects successor)
 
void fence ()
 
void fencei ()
 
void ecall ()
 
void ebreak ()
 
void csrrw (Register rd, uint32_t csr, Register rs1)
 
void csrrs (Register rd, uint32_t csr, Register rs1)
 
void csrrc (Register rd, uint32_t csr, Register rs1)
 
void csrr (Register rd, uint32_t csr)
 
void csrw (uint32_t csr, Register rs)
 
void csrs (uint32_t csr, Register rs)
 
void csrc (uint32_t csr, Register rs)
 
void csrrwi (Register rd, uint32_t csr, uint32_t imm)
 
void csrrsi (Register rd, uint32_t csr, uint32_t imm)
 
void csrrci (Register rd, uint32_t csr, uint32_t imm)
 
void csrwi (uint32_t csr, uint32_t imm)
 
void csrsi (uint32_t csr, uint32_t imm)
 
void csrci (uint32_t csr, uint32_t imm)
 
void trap ()
 
void nop ()
 
void li (Register rd, intptr_t imm)
 
void mv (Register rd, Register rs)
 
void not_ (Register rd, Register rs)
 
void neg (Register rd, Register rs)
 
void snez (Register rd, Register rs)
 
void seqz (Register rd, Register rs)
 
void sltz (Register rd, Register rs)
 
void sgtz (Register rd, Register rs)
 
void beqz (Register rs, Label *label, JumpDistance distance=kFarJump)
 
void bnez (Register rs, Label *label, JumpDistance distance=kFarJump)
 
void blez (Register rs, Label *label, JumpDistance distance=kFarJump)
 
void bgez (Register rs, Label *label, JumpDistance distance=kFarJump)
 
void bltz (Register rs, Label *label, JumpDistance distance=kFarJump)
 
void bgtz (Register rs, Label *label, JumpDistance distance=kFarJump)
 
void mul (Register rd, Register rs1, Register rs2)
 
void mulh (Register rd, Register rs1, Register rs2)
 
void mulhsu (Register rd, Register rs1, Register rs2)
 
void mulhu (Register rd, Register rs1, Register rs2)
 
void div (Register rd, Register rs1, Register rs2)
 
void divu (Register rd, Register rs1, Register rs2)
 
void rem (Register rd, Register rs1, Register rs2)
 
void remu (Register rd, Register rs1, Register rs2)
 
void lrw (Register rd, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void scw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void amoswapw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void amoaddw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void amoxorw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void amoandw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void amoorw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void amominw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void amomaxw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void amominuw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void amomaxuw (Register rd, Register rs2, Address addr, std::memory_order order=std::memory_order_relaxed)
 
void flw (FRegister rd, Address addr)
 
void fsw (FRegister rs2, Address addr)
 
void fmadds (FRegister rd, FRegister rs1, FRegister rs2, FRegister rs3, RoundingMode rounding=RNE)
 
void fmsubs (FRegister rd, FRegister rs1, FRegister rs2, FRegister rs3, RoundingMode rounding=RNE)
 
void fnmsubs (FRegister rd, FRegister rs1, FRegister rs2, FRegister rs3, RoundingMode rounding=RNE)
 
void fnmadds (FRegister rd, FRegister rs1, FRegister rs2, FRegister rs3, RoundingMode rounding=RNE)
 
void fadds (FRegister rd, FRegister rs1, FRegister rs2, RoundingMode rounding=RNE)
 
void fsubs (FRegister rd, FRegister rs1, FRegister rs2, RoundingMode rounding=RNE)
 
void fmuls (FRegister rd, FRegister rs1, FRegister rs2, RoundingMode rounding=RNE)
 
void fdivs (FRegister rd, FRegister rs1, FRegister rs2, RoundingMode rounding=RNE)
 
void fsqrts (FRegister rd, FRegister rs1, RoundingMode rounding=RNE)
 
void fsgnjs (FRegister rd, FRegister rs1, FRegister rs2)
 
void fsgnjns (FRegister rd, FRegister rs1, FRegister rs2)
 
void fsgnjxs (FRegister rd, FRegister rs1, FRegister rs2)
 
void fmins (FRegister rd, FRegister rs1, FRegister rs2)
 
void fmaxs (FRegister rd, FRegister rs1, FRegister rs2)
 
void feqs (Register rd, FRegister rs1, FRegister rs2)
 
void flts (Register rd, FRegister rs1, FRegister rs2)
 
void fles (Register rd, FRegister rs1, FRegister rs2)
 
void fgts (Register rd, FRegister rs1, FRegister rs2)
 
void fges (Register rd, FRegister rs1, FRegister rs2)
 
void fclasss (Register rd, FRegister rs1)
 
void fcvtws (Register rd, FRegister rs1, RoundingMode rounding=RNE)
 
void fcvtwus (Register rd, FRegister rs1, RoundingMode rounding=RNE)
 
void fcvtsw (FRegister rd, Register rs1, RoundingMode rounding=RNE)
 
void fcvtswu (FRegister rd, Register rs1, RoundingMode rounding=RNE)
 
void fmvs (FRegister rd, FRegister rs)
 
void fabss (FRegister rd, FRegister rs)
 
void fnegs (FRegister rd, FRegister rs)
 
void fmvxw (Register rd, FRegister rs1)
 
void fmvwx (FRegister rd, Register rs1)
 
void fld (FRegister rd, Address addr)
 
void fsd (FRegister rs2, Address addr)
 
void fmaddd (FRegister rd, FRegister rs1, FRegister rs2, FRegister rs3, RoundingMode rounding=RNE)
 
void fmsubd (FRegister rd, FRegister rs1, FRegister rs2, FRegister rs3, RoundingMode rounding=RNE)
 
void fnmsubd (FRegister rd, FRegister rs1, FRegister rs2, FRegister rs3, RoundingMode rounding=RNE)
 
void fnmaddd (FRegister rd, FRegister rs1, FRegister rs2, FRegister rs3, RoundingMode rounding=RNE)
 
void faddd (FRegister rd, FRegister rs1, FRegister rs2, RoundingMode rounding=RNE)
 
void fsubd (FRegister rd, FRegister rs1, FRegister rs2, RoundingMode rounding=RNE)
 
void fmuld (FRegister rd, FRegister rs1, FRegister rs2, RoundingMode rounding=RNE)
 
void fdivd (FRegister rd, FRegister rs1, FRegister rs2, RoundingMode rounding=RNE)
 
void fsqrtd (FRegister rd, FRegister rs1, RoundingMode rounding=RNE)
 
void fsgnjd (FRegister rd, FRegister rs1, FRegister rs2)
 
void fsgnjnd (FRegister rd, FRegister rs1, FRegister rs2)
 
void fsgnjxd (FRegister rd, FRegister rs1, FRegister rs2)
 
void fmind (FRegister rd, FRegister rs1, FRegister rs2)
 
void fmaxd (FRegister rd, FRegister rs1, FRegister rs2)
 
void fcvtsd (FRegister rd, FRegister rs1, RoundingMode rounding=RNE)
 
void fcvtds (FRegister rd, FRegister rs1, RoundingMode rounding=RNE)
 
void feqd (Register rd, FRegister rs1, FRegister rs2)
 
void fltd (Register rd, FRegister rs1, FRegister rs2)
 
void fled (Register rd, FRegister rs1, FRegister rs2)
 
void fgtd (Register rd, FRegister rs1, FRegister rs2)
 
void fged (Register rd, FRegister rs1, FRegister rs2)
 
void fclassd (Register rd, FRegister rs1)
 
void fcvtwd (Register rd, FRegister rs1, RoundingMode rounding=RNE)
 
void fcvtwud (Register rd, FRegister rs1, RoundingMode rounding=RNE)
 
void fcvtdw (FRegister rd, Register rs1, RoundingMode rounding=RNE)
 
void fcvtdwu (FRegister rd, Register rs1, RoundingMode rounding=RNE)
 
void fmvd (FRegister rd, FRegister rs)
 
void fabsd (FRegister rd, FRegister rs)
 
void fnegd (FRegister rd, FRegister rs)
 
void adduw (Register rd, Register rs1, Register rs2)
 
void sh1add (Register rd, Register rs1, Register rs2)
 
void sh1adduw (Register rd, Register rs1, Register rs2)
 
void sh2add (Register rd, Register rs1, Register rs2)
 
void sh2adduw (Register rd, Register rs1, Register rs2)
 
void sh3add (Register rd, Register rs1, Register rs2)
 
void sh3adduw (Register rd, Register rs1, Register rs2)
 
void slliuw (Register rd, Register rs1, intx_t imm)
 
void andn (Register rd, Register rs1, Register rs2)
 
void orn (Register rd, Register rs1, Register rs2)
 
void xnor (Register rd, Register rs1, Register rs2)
 
void clz (Register rd, Register rs)
 
void clzw (Register rd, Register rs)
 
void ctz (Register rd, Register rs)
 
void ctzw (Register rd, Register rs)
 
void cpop (Register rd, Register rs)
 
void cpopw (Register rd, Register rs)
 
void max (Register rd, Register rs1, Register rs2)
 
void maxu (Register rd, Register rs1, Register rs2)
 
void min (Register rd, Register rs1, Register rs2)
 
void minu (Register rd, Register rs1, Register rs2)
 
void sextb (Register rd, Register rs)
 
void sexth (Register rd, Register rs)
 
void zexth (Register rd, Register rs)
 
void rol (Register rd, Register rs1, Register rs2)
 
void rolw (Register rd, Register rs1, Register rs2)
 
void ror (Register rd, Register rs1, Register rs2)
 
void rori (Register rd, Register rs1, intx_t imm)
 
void roriw (Register rd, Register rs1, intx_t imm)
 
void rorw (Register rd, Register rs1, Register rs2)
 
void orcb (Register rd, Register rs)
 
void rev8 (Register rd, Register rs)
 
void clmul (Register rd, Register rs1, Register rs2)
 
void clmulh (Register rd, Register rs1, Register rs2)
 
void clmulr (Register rd, Register rs1, Register rs2)
 
void bclr (Register rd, Register rs1, Register rs2)
 
void bclri (Register rd, Register rs1, intx_t shamt)
 
void bext (Register rd, Register rs1, Register rs2)
 
void bexti (Register rd, Register rs1, intx_t shamt)
 
void binv (Register rd, Register rs1, Register rs2)
 
void binvi (Register rd, Register rs1, intx_t shamt)
 
void bset (Register rd, Register rs1, Register rs2)
 
void bseti (Register rd, Register rs1, intx_t shamt)
 
void lb (Register rd, Address addr, std::memory_order order)
 
void lh (Register rd, Address addr, std::memory_order order)
 
void lw (Register rd, Address addr, std::memory_order order)
 
void sb (Register rs2, Address addr, std::memory_order order)
 
void sh (Register rs2, Address addr, std::memory_order order)
 
void sw (Register rs2, Address addr, std::memory_order order)
 
void SimulatorPrintObject (Register rs1)
 
void Emit32 (uint32_t instruction)
 
void Emit64 (uint64_t instruction)
 
- Public Member Functions inherited from dart::compiler::AssemblerBase
 AssemblerBase (ObjectPoolBuilder *object_pool_builder)
 
virtual ~AssemblerBase ()
 
intptr_t CodeSize () const
 
uword CodeAddress (intptr_t offset)
 
bool HasObjectPoolBuilder () const
 
ObjectPoolBuilderobject_pool_builder ()
 
intptr_t prologue_offset () const
 
bool has_monomorphic_entry () const
 
void mark_should_be_aligned ()
 
bool should_be_aligned () const
 
void Comment (const char *format,...) PRINTF_ATTRIBUTE(2
 
virtual void Breakpoint ()=0
 
virtual void SmiTag (Register r)=0
 
virtual void Bind (Label *label)=0
 
void ExtendNonNegativeSmi (Register dst)
 
virtual void ExtendValue (Register dst, Register src, OperandSize sz)=0
 
virtual void ExtendAndSmiTagValue (Register dst, Register src, OperandSize sz)
 
virtual void MoveRegister (Register dst, Register src)
 
virtual void MoveAndSmiTagRegister (Register dst, Register src)
 
virtual void TryAllocateObject (intptr_t cid, intptr_t instance_size, Label *failure, JumpDistance distance, Register instance_reg, Register temp)=0
 
void TryAllocate (const Class &cls, Label *failure, JumpDistance distance, Register instance_reg, Register temp)
 
virtual void BranchIfSmi (Register reg, Label *label, JumpDistance distance=kFarJump)=0
 
virtual void ArithmeticShiftRightImmediate (Register reg, intptr_t shift)=0
 
virtual void CompareWords (Register reg1, Register reg2, intptr_t offset, Register count, Register temp, Label *equals)=0
 
void UnrolledMemCopy (Register dst_base, intptr_t dst_offset, Register src_base, intptr_t src_offset, intptr_t size, Register temp)
 
virtual void LoadFieldAddressForOffset (Register reg, Register base, int32_t offset)=0
 
virtual void LoadFieldAddressForRegOffset (Register address, Register instance, Register offset_in_words_as_smi)=0
 
virtual void LoadAcquire (Register dst, const Address &address, OperandSize size=kWordBytes)=0
 
virtual void StoreRelease (Register src, const Address &address, OperandSize size=kWordBytes)=0
 
virtual void Load (Register dst, const Address &address, OperandSize sz=kWordBytes)=0
 
virtual void Store (Register src, const Address &address, OperandSize sz=kWordBytes)=0
 
void StoreIntoObject (Register object, const Address &address, Register value, CanBeSmi can_be_smi=kValueCanBeSmi, MemoryOrder memory_order=kRelaxedNonAtomic, Register scratch=TMP, OperandSize size=kWordBytes)
 
void StoreIntoObjectNoBarrier (Register object, const Address &address, Register value, MemoryOrder memory_order=kRelaxedNonAtomic, OperandSize size=kWordBytes)
 
virtual void StoreObjectIntoObjectNoBarrier (Register object, const Address &address, const Object &value, MemoryOrder memory_order=kRelaxedNonAtomic, OperandSize size=kWordBytes)=0
 
virtual void LoadIndexedPayload (Register dst, Register base, int32_t offset, Register index, ScaleFactor scale, OperandSize sz=kWordBytes)=0
 
void LoadAcquireFromOffset (Register dst, Register base, int32_t offset=0, OperandSize size=kWordBytes)
 
void StoreReleaseToOffset (Register src, Register base, int32_t offset=0, OperandSize size=kWordBytes)
 
virtual void LoadFromOffset (Register dst, Register base, int32_t offset, OperandSize sz=kWordBytes)
 
virtual void StoreToOffset (Register src, Register base, int32_t offset, OperandSize sz=kWordBytes)
 
virtual void StoreIntoObjectOffset (Register object, int32_t offset, Register value, CanBeSmi can_be_smi=kValueCanBeSmi, MemoryOrder memory_order=kRelaxedNonAtomic, Register scratch=TMP, OperandSize size=kWordBytes)
 
virtual void StoreIntoObjectOffsetNoBarrier (Register object, int32_t offset, Register value, MemoryOrder memory_order=kRelaxedNonAtomic, OperandSize size=kWordBytes)
 
void StoreObjectIntoObjectOffsetNoBarrier (Register object, int32_t offset, const Object &value, MemoryOrder memory_order=kRelaxedNonAtomic, OperandSize size=kWordBytes)
 
void LoadField (Register dst, const FieldAddress &address, OperandSize sz=kWordBytes)
 
virtual void LoadFieldFromOffset (Register dst, Register base, int32_t offset, OperandSize sz=kWordBytes)
 
virtual void StoreFieldToOffset (Register src, Register base, int32_t offset, OperandSize sz=kWordBytes)
 
void LoadSmi (Register dst, const Address &address)
 
void LoadSmiField (Register dst, const FieldAddress &address)
 
void LoadSmiFromOffset (Register dst, Register base, int32_t offset)
 
void LoadSmiFieldFromOffset (Register dst, Register base, int32_t offset)
 
void LoadCompressedFieldAddressForRegOffset (Register address, Register instance, Register offset_in_words_as_smi)
 
void LoadAcquireCompressed (Register dst, const Address &address)
 
void LoadCompressed (Register dst, const Address &address)
 
void LoadIndexedCompressed (Register dst, Register base, int32_t offset, Register index)
 
void LoadCompressedSmi (Register dst, const Address &address)
 
void StoreReleaseCompressed (Register src, const Address &address)
 
void StoreReleaseCompressedToOffset (Register src, Register base, int32_t offset=0)
 
void StoreCompressedIntoObject (Register object, const Address &address, Register value, CanBeSmi can_be_smi=kValueCanBeSmi, MemoryOrder memory_order=kRelaxedNonAtomic, Register scratch=TMP)
 
void StoreCompressedIntoObjectNoBarrier (Register object, const Address &address, Register value, MemoryOrder memory_order=kRelaxedNonAtomic)
 
virtual void StoreCompressedObjectIntoObjectNoBarrier (Register object, const Address &address, const Object &value, MemoryOrder memory_order=kRelaxedNonAtomic)
 
void StoreCompressedIntoObjectOffset (Register object, int32_t offset, Register value, CanBeSmi can_be_smi=kValueCanBeSmi, MemoryOrder memory_order=kRelaxedNonAtomic, Register scratch=TMP)
 
void StoreCompressedIntoObjectOffsetNoBarrier (Register object, int32_t offset, Register value, MemoryOrder memory_order=kRelaxedNonAtomic)
 
void StoreCompressedObjectIntoObjectOffsetNoBarrier (Register object, int32_t offset, const Object &value, MemoryOrder memory_order=kRelaxedNonAtomic)
 
void StoreIntoArray (Register object, Register slot, Register value, CanBeSmi can_value_be_smi=kValueCanBeSmi, Register scratch=TMP, OperandSize size=kWordBytes)
 
void StoreCompressedIntoArray (Register object, Register slot, Register value, CanBeSmi can_value_be_smi=kValueCanBeSmi, Register scratch=TMP)
 
void LoadAcquireCompressedFromOffset (Register dst, Register base, int32_t offset)
 
void LoadCompressedField (Register dst, const FieldAddress &address)
 
void LoadCompressedFromOffset (Register dst, Register base, int32_t offset)
 
void LoadCompressedFieldFromOffset (Register dst, Register base, int32_t offset)
 
void LoadCompressedSmiField (Register dst, const FieldAddress &address)
 
void LoadCompressedSmiFromOffset (Register dst, Register base, int32_t offset)
 
void LoadCompressedSmiFieldFromOffset (Register dst, Register base, int32_t offset)
 
void LoadFromSlot (Register dst, Register base, const Slot &slot)
 
void StoreToSlot (Register src, Register base, const Slot &slot, CanBeSmi can_be_smi, MemoryOrder memory_order=kRelaxedNonAtomic, Register scratch=TMP)
 
void StoreToSlotNoBarrier (Register src, Register base, const Slot &slot, MemoryOrder memory_order=kRelaxedNonAtomic)
 
void StoreToSlot (Register src, Register base, const Slot &slot, MemoryOrder memory_order=kRelaxedNonAtomic, Register scratch=TMP)
 
virtual void LoadInt32FromBoxOrSmi (Register result, Register value)=0
 
virtual void LoadInt64FromBoxOrSmi (Register result, Register value)=0
 
void LoadWordFromBoxOrSmi (Register result, Register value)
 
void LoadAbstractTypeNullability (Register dst, Register type)
 
void CompareAbstractTypeNullabilityWith (Register type, int8_t value, Register scratch)
 
virtual void AddScaled (Register dst, Register base, Register index, ScaleFactor scale, int32_t disp)=0
 
virtual void LoadImmediate (Register dst, target::word imm)=0
 
virtual void CompareImmediate (Register reg, target::word imm, OperandSize width=kWordBytes)=0
 
virtual void CompareWithMemoryValue (Register value, Address address, OperandSize size=kWordBytes)=0
 
virtual void AndImmediate (Register dst, target::word imm)=0
 
virtual void LsrImmediate (Register dst, int32_t shift)=0
 
virtual void MulImmediate (Register dst, target::word imm, OperandSize=kWordBytes)=0
 
virtual void AndRegisters (Register dst, Register src1, Register src2=kNoRegister)=0
 
virtual void LslRegister (Register dst, Register shift)=0
 
virtual void CombineHashes (Register dst, Register other)=0
 
void FinalizeHash (Register hash, Register scratch=TMP)
 
virtual void FinalizeHashForSize (intptr_t bit_size, Register hash, Register scratch=TMP)=0
 
void LoadTypeClassId (Register dst, Register src)
 
virtual void EnsureHasClassIdInDEBUG (intptr_t cid, Register src, Register scratch, bool can_be_null=false)=0
 
intptr_t InsertAlignedRelocation (BSS::Relocation reloc)
 
void MsanUnpoison (Register base, intptr_t length_in_bytes)
 
void MsanUnpoison (Register base, Register length_in_bytes)
 
void Unimplemented (const char *message)
 
void Untested (const char *message)
 
void Unreachable (const char *message)
 
void Stop (const char *message)
 
void FinalizeInstructions (const MemoryRegion &region)
 
intptr_t CountPointerOffsets () const
 
const ZoneGrowableArray< intptr_t > & GetPointerOffsets () const
 
const GrowableArray< CodeComment * > & comments () const
 
void BindUncheckedEntryPoint ()
 
intptr_t UncheckedEntryOffset () const
 
virtual void RangeCheck (Register value, Register temp, intptr_t low, intptr_t high, RangeCheckCondition condition, Label *target)=0
 
void VerifySmi (Register dst)
 
- Public Member Functions inherited from dart::StackResource
 StackResource (ThreadState *thread)
 
virtual ~StackResource ()
 
ThreadStatethread () const
 

Protected Member Functions

intptr_t UpdateCBOffset (intptr_t branch_position, intptr_t new_offset)
 
intptr_t UpdateCJOffset (intptr_t branch_position, intptr_t new_offset)
 
intptr_t UpdateBOffset (intptr_t branch_position, intptr_t new_offset)
 
intptr_t UpdateJOffset (intptr_t branch_position, intptr_t new_offset)
 
intptr_t UpdateFarOffset (intptr_t branch_position, intptr_t new_offset)
 
intptr_t Position ()
 
void EmitBranch (Register rs1, Register rs2, Label *label, Funct3 func, JumpDistance distance)
 
void EmitJump (Register rd, Label *label, Opcode op, JumpDistance distance)
 
void EmitCBranch (Register rs1p, Label *label, COpcode op)
 
void EmitCJump (Label *label, COpcode op)
 
void EmitRType (Funct5 funct5, std::memory_order order, Register rs2, Register rs1, Funct3 funct3, Register rd, Opcode opcode)
 
void EmitRType (Funct7 funct7, Register rs2, Register rs1, Funct3 funct3, Register rd, Opcode opcode)
 
void EmitRType (Funct7 funct7, FRegister rs2, FRegister rs1, Funct3 funct3, FRegister rd, Opcode opcode)
 
void EmitRType (Funct7 funct7, FRegister rs2, FRegister rs1, RoundingMode round, FRegister rd, Opcode opcode)
 
void EmitRType (Funct7 funct7, FRegister rs2, Register rs1, RoundingMode round, FRegister rd, Opcode opcode)
 
void EmitRType (Funct7 funct7, FRegister rs2, Register rs1, Funct3 funct3, FRegister rd, Opcode opcode)
 
void EmitRType (Funct7 funct7, FRegister rs2, FRegister rs1, Funct3 funct3, Register rd, Opcode opcode)
 
void EmitRType (Funct7 funct7, FRegister rs2, FRegister rs1, RoundingMode round, Register rd, Opcode opcode)
 
void EmitRType (Funct7 funct7, intptr_t shamt, Register rs1, Funct3 funct3, Register rd, Opcode opcode)
 
void EmitR4Type (FRegister rs3, Funct2 funct2, FRegister rs2, FRegister rs1, RoundingMode round, FRegister rd, Opcode opcode)
 
void EmitIType (intptr_t imm, Register rs1, Funct3 funct3, Register rd, Opcode opcode)
 
void EmitIType (intptr_t imm, Register rs1, Funct3 funct3, FRegister rd, Opcode opcode)
 
void EmitSType (intptr_t imm, Register rs2, Register rs1, Funct3 funct3, Opcode opcode)
 
void EmitSType (intptr_t imm, FRegister rs2, Register rs1, Funct3 funct3, Opcode opcode)
 
void EmitBType (intptr_t imm, Register rs2, Register rs1, Funct3 funct3, Opcode opcode)
 
void EmitUType (intptr_t imm, Register rd, Opcode opcode)
 
void EmitJType (intptr_t imm, Register rd, Opcode opcode)
 
uint16_t Read16 (intptr_t position)
 
void Write16 (intptr_t position, uint16_t instruction)
 
void Emit16 (uint16_t instruction)
 
uint32_t Read32 (intptr_t position)
 
void Write32 (intptr_t position, uint32_t instruction)
 

Protected Attributes

ExtensionSet extensions_
 
intptr_t far_branch_level_
 
- Protected Attributes inherited from dart::compiler::AssemblerBase
AssemblerBuffer buffer_
 
int32_t prologue_offset_ = -1
 
bool has_monomorphic_entry_ = false
 
bool should_be_aligned_ = false
 
intptr_t unchecked_entry_offset_ = 0
 

Additional Inherited Members

- Public Types inherited from dart::compiler::AssemblerBase
enum  JumpDistance : bool { kFarJump = false , kNearJump = true }
 
enum  CanBeSmi { kValueCanBeSmi , kValueIsNotSmi }
 
enum  MemoryOrder { kRelease , kRelaxedNonAtomic }
 
enum  RangeCheckCondition { kIfNotInRange = 0 , kIfInRange = 1 }
 
- Static Public Member Functions inherited from dart::compiler::AssemblerBase
void static bool EmittingComments ()
 
- Static Public Member Functions inherited from dart::StackResource
static void Unwind (ThreadState *thread)
 
static void UnwindAbove (ThreadState *thread, StackResource *new_top)
 

Detailed Description

Definition at line 62 of file assembler_riscv.h.

Constructor & Destructor Documentation

◆ MicroAssembler()

dart::compiler::MicroAssembler::MicroAssembler ( ObjectPoolBuilder object_pool_builder,
intptr_t  far_branch_level,
ExtensionSet  extensions 
)

◆ ~MicroAssembler()

dart::compiler::MicroAssembler::~MicroAssembler ( )

Member Function Documentation

◆ add()

void dart::compiler::MicroAssembler::add ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ addi()

void dart::compiler::MicroAssembler::addi ( Register  rd,
Register  rs1,
intptr_t  imm 
)

◆ adduw()

void dart::compiler::MicroAssembler::adduw ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ amoaddw()

void dart::compiler::MicroAssembler::amoaddw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ amoandw()

void dart::compiler::MicroAssembler::amoandw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ amomaxuw()

void dart::compiler::MicroAssembler::amomaxuw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ amomaxw()

void dart::compiler::MicroAssembler::amomaxw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ amominuw()

void dart::compiler::MicroAssembler::amominuw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ amominw()

void dart::compiler::MicroAssembler::amominw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ amoorw()

void dart::compiler::MicroAssembler::amoorw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ amoswapw()

void dart::compiler::MicroAssembler::amoswapw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ amoxorw()

void dart::compiler::MicroAssembler::amoxorw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ and_()

void dart::compiler::MicroAssembler::and_ ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ andi()

void dart::compiler::MicroAssembler::andi ( Register  rd,
Register  rs1,
intptr_t  imm 
)

◆ andn()

void dart::compiler::MicroAssembler::andn ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ auipc()

void dart::compiler::MicroAssembler::auipc ( Register  rd,
intptr_t  imm 
)

◆ bclr()

void dart::compiler::MicroAssembler::bclr ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ bclri()

void dart::compiler::MicroAssembler::bclri ( Register  rd,
Register  rs1,
intx_t  shamt 
)

◆ beq()

void dart::compiler::MicroAssembler::beq ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)

◆ beqz()

void dart::compiler::MicroAssembler::beqz ( Register  rs,
Label label,
JumpDistance  distance = kFarJump 
)
inline

Definition at line 182 of file assembler_riscv.h.

182 {
183 beq(rs, ZR, label, distance);
184 }
void beq(Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)

◆ bext()

void dart::compiler::MicroAssembler::bext ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ bexti()

void dart::compiler::MicroAssembler::bexti ( Register  rd,
Register  rs1,
intx_t  shamt 
)

◆ bge()

void dart::compiler::MicroAssembler::bge ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)

◆ bgeu()

void dart::compiler::MicroAssembler::bgeu ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)

◆ bgez()

void dart::compiler::MicroAssembler::bgez ( Register  rs,
Label label,
JumpDistance  distance = kFarJump 
)
inline

Definition at line 191 of file assembler_riscv.h.

191 {
192 bge(rs, ZR, label, distance);
193 }
void bge(Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)

◆ bgt()

void dart::compiler::MicroAssembler::bgt ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)
inline

Definition at line 102 of file assembler_riscv.h.

102 {
103 blt(rs2, rs1, l, d);
104 }
void blt(Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE auto & d
Definition: main.cc:19

◆ bgtu()

void dart::compiler::MicroAssembler::bgtu ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)
inline

Definition at line 110 of file assembler_riscv.h.

110 {
111 bltu(rs2, rs1, l, d);
112 }
void bltu(Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)

◆ bgtz()

void dart::compiler::MicroAssembler::bgtz ( Register  rs,
Label label,
JumpDistance  distance = kFarJump 
)
inline

Definition at line 197 of file assembler_riscv.h.

197 {
198 blt(ZR, rs, label, distance);
199 }

◆ Bind()

void dart::compiler::MicroAssembler::Bind ( Label label)
virtual

◆ binv()

void dart::compiler::MicroAssembler::binv ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ binvi()

void dart::compiler::MicroAssembler::binvi ( Register  rd,
Register  rs1,
intx_t  shamt 
)

◆ ble()

void dart::compiler::MicroAssembler::ble ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)
inline

Definition at line 105 of file assembler_riscv.h.

105 {
106 bge(rs2, rs1, l, d);
107 }

◆ bleu()

void dart::compiler::MicroAssembler::bleu ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)
inline

Definition at line 113 of file assembler_riscv.h.

113 {
114 bgeu(rs2, rs1, l, d);
115 }
void bgeu(Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)

◆ blez()

void dart::compiler::MicroAssembler::blez ( Register  rs,
Label label,
JumpDistance  distance = kFarJump 
)
inline

Definition at line 188 of file assembler_riscv.h.

188 {
189 bge(ZR, rs, label, distance);
190 }

◆ blt()

void dart::compiler::MicroAssembler::blt ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)

◆ bltu()

void dart::compiler::MicroAssembler::bltu ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)

◆ bltz()

void dart::compiler::MicroAssembler::bltz ( Register  rs,
Label label,
JumpDistance  distance = kFarJump 
)
inline

Definition at line 194 of file assembler_riscv.h.

194 {
195 blt(rs, ZR, label, distance);
196 }

◆ bne()

void dart::compiler::MicroAssembler::bne ( Register  rs1,
Register  rs2,
Label l,
JumpDistance  d = kFarJump 
)

◆ bnez()

void dart::compiler::MicroAssembler::bnez ( Register  rs,
Label label,
JumpDistance  distance = kFarJump 
)
inline

Definition at line 185 of file assembler_riscv.h.

185 {
186 bne(rs, ZR, label, distance);
187 }
void bne(Register rs1, Register rs2, Label *l, JumpDistance d=kFarJump)

◆ bset()

void dart::compiler::MicroAssembler::bset ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ bseti()

void dart::compiler::MicroAssembler::bseti ( Register  rd,
Register  rs1,
intx_t  shamt 
)

◆ clmul()

void dart::compiler::MicroAssembler::clmul ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ clmulh()

void dart::compiler::MicroAssembler::clmulh ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ clmulr()

void dart::compiler::MicroAssembler::clmulr ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ clz()

void dart::compiler::MicroAssembler::clz ( Register  rd,
Register  rs 
)

◆ clzw()

void dart::compiler::MicroAssembler::clzw ( Register  rd,
Register  rs 
)

◆ cpop()

void dart::compiler::MicroAssembler::cpop ( Register  rd,
Register  rs 
)

◆ cpopw()

void dart::compiler::MicroAssembler::cpopw ( Register  rd,
Register  rs 
)

◆ csrc()

void dart::compiler::MicroAssembler::csrc ( uint32_t  csr,
Register  rs 
)
inline

Definition at line 161 of file assembler_riscv.h.

161{ csrrc(ZR, csr, rs); }
void csrrc(Register rd, uint32_t csr, Register rs1)

◆ csrci()

void dart::compiler::MicroAssembler::csrci ( uint32_t  csr,
uint32_t  imm 
)
inline

Definition at line 167 of file assembler_riscv.h.

167{ csrrci(ZR, csr, imm); }
void csrrci(Register rd, uint32_t csr, uint32_t imm)

◆ csrr()

void dart::compiler::MicroAssembler::csrr ( Register  rd,
uint32_t  csr 
)
inline

Definition at line 158 of file assembler_riscv.h.

158{ csrrs(rd, csr, ZR); }
void csrrs(Register rd, uint32_t csr, Register rs1)

◆ csrrc()

void dart::compiler::MicroAssembler::csrrc ( Register  rd,
uint32_t  csr,
Register  rs1 
)

◆ csrrci()

void dart::compiler::MicroAssembler::csrrci ( Register  rd,
uint32_t  csr,
uint32_t  imm 
)

◆ csrrs()

void dart::compiler::MicroAssembler::csrrs ( Register  rd,
uint32_t  csr,
Register  rs1 
)

◆ csrrsi()

void dart::compiler::MicroAssembler::csrrsi ( Register  rd,
uint32_t  csr,
uint32_t  imm 
)

◆ csrrw()

void dart::compiler::MicroAssembler::csrrw ( Register  rd,
uint32_t  csr,
Register  rs1 
)

◆ csrrwi()

void dart::compiler::MicroAssembler::csrrwi ( Register  rd,
uint32_t  csr,
uint32_t  imm 
)

◆ csrs()

void dart::compiler::MicroAssembler::csrs ( uint32_t  csr,
Register  rs 
)
inline

Definition at line 160 of file assembler_riscv.h.

160{ csrrs(ZR, csr, rs); }

◆ csrsi()

void dart::compiler::MicroAssembler::csrsi ( uint32_t  csr,
uint32_t  imm 
)
inline

Definition at line 166 of file assembler_riscv.h.

166{ csrrsi(ZR, csr, imm); }
void csrrsi(Register rd, uint32_t csr, uint32_t imm)

◆ csrw()

void dart::compiler::MicroAssembler::csrw ( uint32_t  csr,
Register  rs 
)
inline

Definition at line 159 of file assembler_riscv.h.

159{ csrrw(ZR, csr, rs); }
void csrrw(Register rd, uint32_t csr, Register rs1)

◆ csrwi()

void dart::compiler::MicroAssembler::csrwi ( uint32_t  csr,
uint32_t  imm 
)
inline

Definition at line 165 of file assembler_riscv.h.

165{ csrrwi(ZR, csr, imm); }
void csrrwi(Register rd, uint32_t csr, uint32_t imm)

◆ ctz()

void dart::compiler::MicroAssembler::ctz ( Register  rd,
Register  rs 
)

◆ ctzw()

void dart::compiler::MicroAssembler::ctzw ( Register  rd,
Register  rs 
)

◆ div()

void dart::compiler::MicroAssembler::div ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ divu()

void dart::compiler::MicroAssembler::divu ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ ebreak()

void dart::compiler::MicroAssembler::ebreak ( )

◆ ecall()

void dart::compiler::MicroAssembler::ecall ( )

◆ Emit16()

void dart::compiler::MicroAssembler::Emit16 ( uint16_t  instruction)
inlineprotected

Definition at line 809 of file assembler_riscv.h.

809 {
810 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
811 buffer_.Emit<uint16_t>(instruction);
812 }

◆ Emit32()

void dart::compiler::MicroAssembler::Emit32 ( uint32_t  instruction)
inline

Definition at line 821 of file assembler_riscv.h.

821 {
822 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
823 buffer_.Emit<uint32_t>(instruction);
824 }

◆ Emit64()

void dart::compiler::MicroAssembler::Emit64 ( uint64_t  instruction)
inline

Definition at line 825 of file assembler_riscv.h.

825 {
826 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
827 buffer_.Emit<uint64_t>(instruction);
828 }

◆ EmitBranch()

void dart::compiler::MicroAssembler::EmitBranch ( Register  rs1,
Register  rs2,
Label label,
Funct3  func,
JumpDistance  distance 
)
protected

◆ EmitBType()

void dart::compiler::MicroAssembler::EmitBType ( intptr_t  imm,
Register  rs2,
Register  rs1,
Funct3  funct3,
Opcode  opcode 
)
protected

◆ EmitCBranch()

void dart::compiler::MicroAssembler::EmitCBranch ( Register  rs1p,
Label label,
COpcode  op 
)
protected

◆ EmitCJump()

void dart::compiler::MicroAssembler::EmitCJump ( Label label,
COpcode  op 
)
protected

◆ EmitIType() [1/2]

void dart::compiler::MicroAssembler::EmitIType ( intptr_t  imm,
Register  rs1,
Funct3  funct3,
FRegister  rd,
Opcode  opcode 
)
protected

◆ EmitIType() [2/2]

void dart::compiler::MicroAssembler::EmitIType ( intptr_t  imm,
Register  rs1,
Funct3  funct3,
Register  rd,
Opcode  opcode 
)
protected

◆ EmitJType()

void dart::compiler::MicroAssembler::EmitJType ( intptr_t  imm,
Register  rd,
Opcode  opcode 
)
protected

◆ EmitJump()

void dart::compiler::MicroAssembler::EmitJump ( Register  rd,
Label label,
Opcode  op,
JumpDistance  distance 
)
protected

◆ EmitR4Type()

void dart::compiler::MicroAssembler::EmitR4Type ( FRegister  rs3,
Funct2  funct2,
FRegister  rs2,
FRegister  rs1,
RoundingMode  round,
FRegister  rd,
Opcode  opcode 
)
protected

◆ EmitRType() [1/9]

void dart::compiler::MicroAssembler::EmitRType ( Funct5  funct5,
std::memory_order  order,
Register  rs2,
Register  rs1,
Funct3  funct3,
Register  rd,
Opcode  opcode 
)
protected

◆ EmitRType() [2/9]

void dart::compiler::MicroAssembler::EmitRType ( Funct7  funct7,
FRegister  rs2,
FRegister  rs1,
Funct3  funct3,
FRegister  rd,
Opcode  opcode 
)
protected

◆ EmitRType() [3/9]

void dart::compiler::MicroAssembler::EmitRType ( Funct7  funct7,
FRegister  rs2,
FRegister  rs1,
Funct3  funct3,
Register  rd,
Opcode  opcode 
)
protected

◆ EmitRType() [4/9]

void dart::compiler::MicroAssembler::EmitRType ( Funct7  funct7,
FRegister  rs2,
FRegister  rs1,
RoundingMode  round,
FRegister  rd,
Opcode  opcode 
)
protected

◆ EmitRType() [5/9]

void dart::compiler::MicroAssembler::EmitRType ( Funct7  funct7,
FRegister  rs2,
FRegister  rs1,
RoundingMode  round,
Register  rd,
Opcode  opcode 
)
protected

◆ EmitRType() [6/9]

void dart::compiler::MicroAssembler::EmitRType ( Funct7  funct7,
FRegister  rs2,
Register  rs1,
Funct3  funct3,
FRegister  rd,
Opcode  opcode 
)
protected

◆ EmitRType() [7/9]

void dart::compiler::MicroAssembler::EmitRType ( Funct7  funct7,
FRegister  rs2,
Register  rs1,
RoundingMode  round,
FRegister  rd,
Opcode  opcode 
)
protected

◆ EmitRType() [8/9]

void dart::compiler::MicroAssembler::EmitRType ( Funct7  funct7,
intptr_t  shamt,
Register  rs1,
Funct3  funct3,
Register  rd,
Opcode  opcode 
)
protected

◆ EmitRType() [9/9]

void dart::compiler::MicroAssembler::EmitRType ( Funct7  funct7,
Register  rs2,
Register  rs1,
Funct3  funct3,
Register  rd,
Opcode  opcode 
)
protected

◆ EmitSType() [1/2]

void dart::compiler::MicroAssembler::EmitSType ( intptr_t  imm,
FRegister  rs2,
Register  rs1,
Funct3  funct3,
Opcode  opcode 
)
protected

◆ EmitSType() [2/2]

void dart::compiler::MicroAssembler::EmitSType ( intptr_t  imm,
Register  rs2,
Register  rs1,
Funct3  funct3,
Opcode  opcode 
)
protected

◆ EmitUType()

void dart::compiler::MicroAssembler::EmitUType ( intptr_t  imm,
Register  rd,
Opcode  opcode 
)
protected

◆ fabsd()

void dart::compiler::MicroAssembler::fabsd ( FRegister  rd,
FRegister  rs 
)
inline

Definition at line 536 of file assembler_riscv.h.

536{ fsgnjxd(rd, rs, rs); }
void fsgnjxd(FRegister rd, FRegister rs1, FRegister rs2)

◆ fabss()

void dart::compiler::MicroAssembler::fabss ( FRegister  rd,
FRegister  rs 
)
inline

Definition at line 449 of file assembler_riscv.h.

449{ fsgnjxs(rd, rs, rs); }
void fsgnjxs(FRegister rd, FRegister rs1, FRegister rs2)

◆ faddd()

void dart::compiler::MicroAssembler::faddd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
RoundingMode  rounding = RNE 
)

◆ fadds()

void dart::compiler::MicroAssembler::fadds ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
RoundingMode  rounding = RNE 
)

◆ far_branch_level()

intptr_t dart::compiler::MicroAssembler::far_branch_level ( ) const
inline

Definition at line 79 of file assembler_riscv.h.

◆ fclassd()

void dart::compiler::MicroAssembler::fclassd ( Register  rd,
FRegister  rs1 
)

◆ fclasss()

void dart::compiler::MicroAssembler::fclasss ( Register  rd,
FRegister  rs1 
)

◆ fcvtds()

void dart::compiler::MicroAssembler::fcvtds ( FRegister  rd,
FRegister  rs1,
RoundingMode  rounding = RNE 
)

◆ fcvtdw()

void dart::compiler::MicroAssembler::fcvtdw ( FRegister  rd,
Register  rs1,
RoundingMode  rounding = RNE 
)

◆ fcvtdwu()

void dart::compiler::MicroAssembler::fcvtdwu ( FRegister  rd,
Register  rs1,
RoundingMode  rounding = RNE 
)

◆ fcvtsd()

void dart::compiler::MicroAssembler::fcvtsd ( FRegister  rd,
FRegister  rs1,
RoundingMode  rounding = RNE 
)

◆ fcvtsw()

void dart::compiler::MicroAssembler::fcvtsw ( FRegister  rd,
Register  rs1,
RoundingMode  rounding = RNE 
)

◆ fcvtswu()

void dart::compiler::MicroAssembler::fcvtswu ( FRegister  rd,
Register  rs1,
RoundingMode  rounding = RNE 
)

◆ fcvtwd()

void dart::compiler::MicroAssembler::fcvtwd ( Register  rd,
FRegister  rs1,
RoundingMode  rounding = RNE 
)

◆ fcvtws()

void dart::compiler::MicroAssembler::fcvtws ( Register  rd,
FRegister  rs1,
RoundingMode  rounding = RNE 
)

◆ fcvtwud()

void dart::compiler::MicroAssembler::fcvtwud ( Register  rd,
FRegister  rs1,
RoundingMode  rounding = RNE 
)

◆ fcvtwus()

void dart::compiler::MicroAssembler::fcvtwus ( Register  rd,
FRegister  rs1,
RoundingMode  rounding = RNE 
)

◆ fdivd()

void dart::compiler::MicroAssembler::fdivd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
RoundingMode  rounding = RNE 
)

◆ fdivs()

void dart::compiler::MicroAssembler::fdivs ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
RoundingMode  rounding = RNE 
)

◆ fence() [1/2]

void dart::compiler::MicroAssembler::fence ( )
inline

Definition at line 150 of file assembler_riscv.h.

150{ fence(kAll, kAll); }

◆ fence() [2/2]

void dart::compiler::MicroAssembler::fence ( HartEffects  predecessor,
HartEffects  successor 
)

◆ fencei()

void dart::compiler::MicroAssembler::fencei ( )

◆ feqd()

void dart::compiler::MicroAssembler::feqd ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ feqs()

void dart::compiler::MicroAssembler::feqs ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fged()

void dart::compiler::MicroAssembler::fged ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)
inline

Definition at line 524 of file assembler_riscv.h.

524{ fled(rd, rs2, rs1); }
void fled(Register rd, FRegister rs1, FRegister rs2)

◆ fges()

void dart::compiler::MicroAssembler::fges ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)
inline

Definition at line 437 of file assembler_riscv.h.

437{ fles(rd, rs2, rs1); }
void fles(Register rd, FRegister rs1, FRegister rs2)

◆ fgtd()

void dart::compiler::MicroAssembler::fgtd ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)
inline

Definition at line 523 of file assembler_riscv.h.

523{ fltd(rd, rs2, rs1); }
void fltd(Register rd, FRegister rs1, FRegister rs2)

◆ fgts()

void dart::compiler::MicroAssembler::fgts ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)
inline

Definition at line 436 of file assembler_riscv.h.

436{ flts(rd, rs2, rs1); }
void flts(Register rd, FRegister rs1, FRegister rs2)

◆ fld()

void dart::compiler::MicroAssembler::fld ( FRegister  rd,
Address  addr 
)

◆ fled()

void dart::compiler::MicroAssembler::fled ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fles()

void dart::compiler::MicroAssembler::fles ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fltd()

void dart::compiler::MicroAssembler::fltd ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ flts()

void dart::compiler::MicroAssembler::flts ( Register  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ flw()

void dart::compiler::MicroAssembler::flw ( FRegister  rd,
Address  addr 
)

◆ fmaddd()

void dart::compiler::MicroAssembler::fmaddd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
FRegister  rs3,
RoundingMode  rounding = RNE 
)

◆ fmadds()

void dart::compiler::MicroAssembler::fmadds ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
FRegister  rs3,
RoundingMode  rounding = RNE 
)

◆ fmaxd()

void dart::compiler::MicroAssembler::fmaxd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fmaxs()

void dart::compiler::MicroAssembler::fmaxs ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fmind()

void dart::compiler::MicroAssembler::fmind ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fmins()

void dart::compiler::MicroAssembler::fmins ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fmsubd()

void dart::compiler::MicroAssembler::fmsubd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
FRegister  rs3,
RoundingMode  rounding = RNE 
)

◆ fmsubs()

void dart::compiler::MicroAssembler::fmsubs ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
FRegister  rs3,
RoundingMode  rounding = RNE 
)

◆ fmuld()

void dart::compiler::MicroAssembler::fmuld ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
RoundingMode  rounding = RNE 
)

◆ fmuls()

void dart::compiler::MicroAssembler::fmuls ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
RoundingMode  rounding = RNE 
)

◆ fmvd()

void dart::compiler::MicroAssembler::fmvd ( FRegister  rd,
FRegister  rs 
)
inline

Definition at line 535 of file assembler_riscv.h.

535{ fsgnjd(rd, rs, rs); }
void fsgnjd(FRegister rd, FRegister rs1, FRegister rs2)

◆ fmvs()

void dart::compiler::MicroAssembler::fmvs ( FRegister  rd,
FRegister  rs 
)
inline

Definition at line 448 of file assembler_riscv.h.

448{ fsgnjs(rd, rs, rs); }
void fsgnjs(FRegister rd, FRegister rs1, FRegister rs2)

◆ fmvwx()

void dart::compiler::MicroAssembler::fmvwx ( FRegister  rd,
Register  rs1 
)

◆ fmvxw()

void dart::compiler::MicroAssembler::fmvxw ( Register  rd,
FRegister  rs1 
)

◆ fnegd()

void dart::compiler::MicroAssembler::fnegd ( FRegister  rd,
FRegister  rs 
)
inline

Definition at line 537 of file assembler_riscv.h.

537{ fsgnjnd(rd, rs, rs); }
void fsgnjnd(FRegister rd, FRegister rs1, FRegister rs2)

◆ fnegs()

void dart::compiler::MicroAssembler::fnegs ( FRegister  rd,
FRegister  rs 
)
inline

Definition at line 450 of file assembler_riscv.h.

450{ fsgnjns(rd, rs, rs); }
void fsgnjns(FRegister rd, FRegister rs1, FRegister rs2)

◆ fnmaddd()

void dart::compiler::MicroAssembler::fnmaddd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
FRegister  rs3,
RoundingMode  rounding = RNE 
)

◆ fnmadds()

void dart::compiler::MicroAssembler::fnmadds ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
FRegister  rs3,
RoundingMode  rounding = RNE 
)

◆ fnmsubd()

void dart::compiler::MicroAssembler::fnmsubd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
FRegister  rs3,
RoundingMode  rounding = RNE 
)

◆ fnmsubs()

void dart::compiler::MicroAssembler::fnmsubs ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
FRegister  rs3,
RoundingMode  rounding = RNE 
)

◆ fsd()

void dart::compiler::MicroAssembler::fsd ( FRegister  rs2,
Address  addr 
)

◆ fsgnjd()

void dart::compiler::MicroAssembler::fsgnjd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fsgnjnd()

void dart::compiler::MicroAssembler::fsgnjnd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fsgnjns()

void dart::compiler::MicroAssembler::fsgnjns ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fsgnjs()

void dart::compiler::MicroAssembler::fsgnjs ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fsgnjxd()

void dart::compiler::MicroAssembler::fsgnjxd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fsgnjxs()

void dart::compiler::MicroAssembler::fsgnjxs ( FRegister  rd,
FRegister  rs1,
FRegister  rs2 
)

◆ fsqrtd()

void dart::compiler::MicroAssembler::fsqrtd ( FRegister  rd,
FRegister  rs1,
RoundingMode  rounding = RNE 
)

◆ fsqrts()

void dart::compiler::MicroAssembler::fsqrts ( FRegister  rd,
FRegister  rs1,
RoundingMode  rounding = RNE 
)

◆ fsubd()

void dart::compiler::MicroAssembler::fsubd ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
RoundingMode  rounding = RNE 
)

◆ fsubs()

void dart::compiler::MicroAssembler::fsubs ( FRegister  rd,
FRegister  rs1,
FRegister  rs2,
RoundingMode  rounding = RNE 
)

◆ fsw()

void dart::compiler::MicroAssembler::fsw ( FRegister  rs2,
Address  addr 
)

◆ j()

void dart::compiler::MicroAssembler::j ( Label label,
JumpDistance  d = kFarJump 
)
inline

Definition at line 90 of file assembler_riscv.h.

90{ jal(ZR, label, d); }
void jal(Register rd, Label *label, JumpDistance d=kFarJump)

◆ jal() [1/2]

void dart::compiler::MicroAssembler::jal ( Label label,
JumpDistance  d = kFarJump 
)
inline

Definition at line 89 of file assembler_riscv.h.

89{ jal(RA, label, d); }

◆ jal() [2/2]

void dart::compiler::MicroAssembler::jal ( Register  rd,
Label label,
JumpDistance  d = kFarJump 
)

◆ jalr() [1/2]

void dart::compiler::MicroAssembler::jalr ( Register  rd,
Register  rs1,
intptr_t  offset = 0 
)

◆ jalr() [2/2]

void dart::compiler::MicroAssembler::jalr ( Register  rs1,
intptr_t  offset = 0 
)
inline

Definition at line 94 of file assembler_riscv.h.

94{ jalr(RA, rs1, offset); }
void jalr(Register rd, Register rs1, intptr_t offset=0)
SeparatedVector2 offset

◆ jalr_fixed()

void dart::compiler::MicroAssembler::jalr_fixed ( Register  rd,
Register  rs1,
intptr_t  offset 
)

◆ jr()

void dart::compiler::MicroAssembler::jr ( Register  rs1,
intptr_t  offset = 0 
)
inline

Definition at line 95 of file assembler_riscv.h.

95{ jalr(ZR, rs1, offset); }

◆ lb() [1/2]

void dart::compiler::MicroAssembler::lb ( Register  rd,
Address  addr 
)

◆ lb() [2/2]

void dart::compiler::MicroAssembler::lb ( Register  rd,
Address  addr,
std::memory_order  order 
)

◆ lbu()

void dart::compiler::MicroAssembler::lbu ( Register  rd,
Address  addr 
)

◆ lh() [1/2]

void dart::compiler::MicroAssembler::lh ( Register  rd,
Address  addr 
)

◆ lh() [2/2]

void dart::compiler::MicroAssembler::lh ( Register  rd,
Address  addr,
std::memory_order  order 
)

◆ lhu()

void dart::compiler::MicroAssembler::lhu ( Register  rd,
Address  addr 
)

◆ li()

void dart::compiler::MicroAssembler::li ( Register  rd,
intptr_t  imm 
)
inline

Definition at line 172 of file assembler_riscv.h.

172{ addi(rd, ZR, imm); }
void addi(Register rd, Register rs1, intptr_t imm)

◆ lrw()

void dart::compiler::MicroAssembler::lrw ( Register  rd,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ lui()

void dart::compiler::MicroAssembler::lui ( Register  rd,
intptr_t  imm 
)

◆ lui_fixed()

void dart::compiler::MicroAssembler::lui_fixed ( Register  rd,
intptr_t  imm 
)

◆ lw() [1/2]

void dart::compiler::MicroAssembler::lw ( Register  rd,
Address  addr 
)

◆ lw() [2/2]

void dart::compiler::MicroAssembler::lw ( Register  rd,
Address  addr,
std::memory_order  order 
)

◆ max()

void dart::compiler::MicroAssembler::max ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ maxu()

void dart::compiler::MicroAssembler::maxu ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ min()

void dart::compiler::MicroAssembler::min ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ minu()

void dart::compiler::MicroAssembler::minu ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ mul()

void dart::compiler::MicroAssembler::mul ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ mulh()

void dart::compiler::MicroAssembler::mulh ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ mulhsu()

void dart::compiler::MicroAssembler::mulhsu ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ mulhu()

void dart::compiler::MicroAssembler::mulhu ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ mv()

void dart::compiler::MicroAssembler::mv ( Register  rd,
Register  rs 
)
inline

Definition at line 173 of file assembler_riscv.h.

173{ addi(rd, rs, 0); }

◆ neg()

void dart::compiler::MicroAssembler::neg ( Register  rd,
Register  rs 
)
inline

Definition at line 175 of file assembler_riscv.h.

175{ sub(rd, ZR, rs); }
void sub(Register rd, Register rs1, Register rs2)

◆ nop()

void dart::compiler::MicroAssembler::nop ( )
inline

Definition at line 171 of file assembler_riscv.h.

171{ addi(ZR, ZR, 0); }

◆ not_()

void dart::compiler::MicroAssembler::not_ ( Register  rd,
Register  rs 
)
inline

Definition at line 174 of file assembler_riscv.h.

174{ xori(rd, rs, -1); }
void xori(Register rd, Register rs1, intptr_t imm)

◆ or_()

void dart::compiler::MicroAssembler::or_ ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ orcb()

void dart::compiler::MicroAssembler::orcb ( Register  rd,
Register  rs 
)

◆ ori()

void dart::compiler::MicroAssembler::ori ( Register  rd,
Register  rs1,
intptr_t  imm 
)

◆ orn()

void dart::compiler::MicroAssembler::orn ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ Position()

intptr_t dart::compiler::MicroAssembler::Position ( )
inlineprotected

Definition at line 697 of file assembler_riscv.h.

697{ return buffer_.Size(); }

◆ Read16()

uint16_t dart::compiler::MicroAssembler::Read16 ( intptr_t  position)
inlineprotected

Definition at line 803 of file assembler_riscv.h.

803 {
804 return buffer_.Load<uint16_t>(position);
805 }

◆ Read32()

uint32_t dart::compiler::MicroAssembler::Read32 ( intptr_t  position)
inlineprotected

Definition at line 813 of file assembler_riscv.h.

813 {
814 return buffer_.Load<uint32_t>(position);
815 }

◆ rem()

void dart::compiler::MicroAssembler::rem ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ remu()

void dart::compiler::MicroAssembler::remu ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ ret()

void dart::compiler::MicroAssembler::ret ( )
inline

Definition at line 96 of file assembler_riscv.h.

96{ jalr(ZR, RA, 0); }

◆ rev8()

void dart::compiler::MicroAssembler::rev8 ( Register  rd,
Register  rs 
)

◆ rol()

void dart::compiler::MicroAssembler::rol ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ rolw()

void dart::compiler::MicroAssembler::rolw ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ ror()

void dart::compiler::MicroAssembler::ror ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ rori()

void dart::compiler::MicroAssembler::rori ( Register  rd,
Register  rs1,
intx_t  imm 
)

◆ roriw()

void dart::compiler::MicroAssembler::roriw ( Register  rd,
Register  rs1,
intx_t  imm 
)

◆ rorw()

void dart::compiler::MicroAssembler::rorw ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ sb() [1/2]

void dart::compiler::MicroAssembler::sb ( Register  rs2,
Address  addr 
)

◆ sb() [2/2]

void dart::compiler::MicroAssembler::sb ( Register  rs2,
Address  addr,
std::memory_order  order 
)

◆ scw()

void dart::compiler::MicroAssembler::scw ( Register  rd,
Register  rs2,
Address  addr,
std::memory_order  order = std::memory_order_relaxed 
)

◆ seqz()

void dart::compiler::MicroAssembler::seqz ( Register  rd,
Register  rs 
)
inline

Definition at line 178 of file assembler_riscv.h.

178{ sltiu(rd, rs, 1); }
void sltiu(Register rd, Register rs1, intptr_t imm)

◆ set_far_branch_level()

void dart::compiler::MicroAssembler::set_far_branch_level ( intptr_t  level)
inline

Definition at line 80 of file assembler_riscv.h.

◆ sextb()

void dart::compiler::MicroAssembler::sextb ( Register  rd,
Register  rs 
)

◆ sexth()

void dart::compiler::MicroAssembler::sexth ( Register  rd,
Register  rs 
)

◆ sgtz()

void dart::compiler::MicroAssembler::sgtz ( Register  rd,
Register  rs 
)
inline

Definition at line 180 of file assembler_riscv.h.

180{ slt(rd, ZR, rs); }
void slt(Register rd, Register rs1, Register rs2)

◆ sh() [1/2]

void dart::compiler::MicroAssembler::sh ( Register  rs2,
Address  addr 
)

◆ sh() [2/2]

void dart::compiler::MicroAssembler::sh ( Register  rs2,
Address  addr,
std::memory_order  order 
)

◆ sh1add()

void dart::compiler::MicroAssembler::sh1add ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ sh1adduw()

void dart::compiler::MicroAssembler::sh1adduw ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ sh2add()

void dart::compiler::MicroAssembler::sh2add ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ sh2adduw()

void dart::compiler::MicroAssembler::sh2adduw ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ sh3add()

void dart::compiler::MicroAssembler::sh3add ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ sh3adduw()

void dart::compiler::MicroAssembler::sh3adduw ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ SimulatorPrintObject()

void dart::compiler::MicroAssembler::SimulatorPrintObject ( Register  rs1)

◆ sll()

void dart::compiler::MicroAssembler::sll ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ slli()

void dart::compiler::MicroAssembler::slli ( Register  rd,
Register  rs1,
intptr_t  shamt 
)

◆ slliuw()

void dart::compiler::MicroAssembler::slliuw ( Register  rd,
Register  rs1,
intx_t  imm 
)

◆ slt()

void dart::compiler::MicroAssembler::slt ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ slti()

void dart::compiler::MicroAssembler::slti ( Register  rd,
Register  rs1,
intptr_t  imm 
)

◆ sltiu()

void dart::compiler::MicroAssembler::sltiu ( Register  rd,
Register  rs1,
intptr_t  imm 
)

◆ sltu()

void dart::compiler::MicroAssembler::sltu ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ sltz()

void dart::compiler::MicroAssembler::sltz ( Register  rd,
Register  rs 
)
inline

Definition at line 179 of file assembler_riscv.h.

179{ slt(rd, rs, ZR); }

◆ snez()

void dart::compiler::MicroAssembler::snez ( Register  rd,
Register  rs 
)
inline

Definition at line 177 of file assembler_riscv.h.

177{ sltu(rd, ZR, rs); }
void sltu(Register rd, Register rs1, Register rs2)

◆ sra()

void dart::compiler::MicroAssembler::sra ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ srai()

void dart::compiler::MicroAssembler::srai ( Register  rd,
Register  rs1,
intptr_t  shamt 
)

◆ srl()

void dart::compiler::MicroAssembler::srl ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ srli()

void dart::compiler::MicroAssembler::srli ( Register  rd,
Register  rs1,
intptr_t  shamt 
)

◆ sub()

void dart::compiler::MicroAssembler::sub ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ subi()

void dart::compiler::MicroAssembler::subi ( Register  rd,
Register  rs1,
intptr_t  imm 
)
inline

Definition at line 128 of file assembler_riscv.h.

128{ addi(rd, rs1, -imm); }

◆ Supports() [1/2]

bool dart::compiler::MicroAssembler::Supports ( Extension  extension) const
inline

Definition at line 72 of file assembler_riscv.h.

72 {
73 return extensions_.Includes(extension);
74 }

◆ Supports() [2/2]

bool dart::compiler::MicroAssembler::Supports ( ExtensionSet  extensions) const
inline

Definition at line 75 of file assembler_riscv.h.

75 {
76 return extensions_.IncludesAll(extensions);
77 }

◆ sw() [1/2]

void dart::compiler::MicroAssembler::sw ( Register  rs2,
Address  addr 
)

◆ sw() [2/2]

void dart::compiler::MicroAssembler::sw ( Register  rs2,
Address  addr,
std::memory_order  order 
)

◆ trap()

void dart::compiler::MicroAssembler::trap ( )

◆ UpdateBOffset()

intptr_t dart::compiler::MicroAssembler::UpdateBOffset ( intptr_t  branch_position,
intptr_t  new_offset 
)
protected

◆ UpdateCBOffset()

intptr_t dart::compiler::MicroAssembler::UpdateCBOffset ( intptr_t  branch_position,
intptr_t  new_offset 
)
protected

◆ UpdateCJOffset()

intptr_t dart::compiler::MicroAssembler::UpdateCJOffset ( intptr_t  branch_position,
intptr_t  new_offset 
)
protected

◆ UpdateFarOffset()

intptr_t dart::compiler::MicroAssembler::UpdateFarOffset ( intptr_t  branch_position,
intptr_t  new_offset 
)
protected

◆ UpdateJOffset()

intptr_t dart::compiler::MicroAssembler::UpdateJOffset ( intptr_t  branch_position,
intptr_t  new_offset 
)
protected

◆ Write16()

void dart::compiler::MicroAssembler::Write16 ( intptr_t  position,
uint16_t  instruction 
)
inlineprotected

Definition at line 806 of file assembler_riscv.h.

806 {
807 return buffer_.Store<uint16_t>(position, instruction);
808 }
void Store(intptr_t position, T value)

◆ Write32()

void dart::compiler::MicroAssembler::Write32 ( intptr_t  position,
uint32_t  instruction 
)
inlineprotected

Definition at line 816 of file assembler_riscv.h.

816 {
817 return buffer_.Store<uint32_t>(position, instruction);
818 }

◆ xnor()

void dart::compiler::MicroAssembler::xnor ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ xor_()

void dart::compiler::MicroAssembler::xor_ ( Register  rd,
Register  rs1,
Register  rs2 
)

◆ xori()

void dart::compiler::MicroAssembler::xori ( Register  rd,
Register  rs1,
intptr_t  imm 
)

◆ zexth()

void dart::compiler::MicroAssembler::zexth ( Register  rd,
Register  rs 
)

Member Data Documentation

◆ extensions_

ExtensionSet dart::compiler::MicroAssembler::extensions_
protected

Definition at line 831 of file assembler_riscv.h.

◆ far_branch_level_

intptr_t dart::compiler::MicroAssembler::far_branch_level_
protected

Definition at line 832 of file assembler_riscv.h.


The documentation for this class was generated from the following file: