|
| 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) |
|
| AssemblerBase (ObjectPoolBuilder *object_pool_builder) |
|
virtual | ~AssemblerBase () |
|
intptr_t | CodeSize () const |
|
uword | CodeAddress (intptr_t offset) |
|
bool | HasObjectPoolBuilder () const |
|
ObjectPoolBuilder & | object_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 ®ion) |
|
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) |
|
| StackResource (ThreadState *thread) |
|
virtual | ~StackResource () |
|
ThreadState * | thread () const |
|