|
| Assembler (ObjectPoolBuilder *object_pool_builder, intptr_t far_branch_level=0) |
|
| ~Assembler () |
|
void | PushRegister (Register r) |
|
void | PopRegister (Register r) |
|
void | PushRegisterPair (Register r0, Register r1) |
|
void | PopRegisterPair (Register r0, Register r1) |
|
void | PushValueAtOffset (Register base, int32_t offset) |
|
void | Bind (Label *label) override |
|
void | Jump (Label *label, JumpDistance distance=kFarJump) |
|
void | Jump (Register target) |
|
void | Jump (const Address &address) |
|
void | LoadMemoryValue (Register dst, Register base, int32_t offset) |
|
void | StoreMemoryValue (Register src, Register base, int32_t offset) |
|
void | LoadAcquire (Register dst, const Address &address, OperandSize size=kFourBytes) override |
|
void | StoreRelease (Register src, const Address &address, OperandSize size=kFourBytes) override |
|
void | CompareWithMemoryValue (Register value, Address address, OperandSize size=kFourBytes) override |
|
bool | use_far_branches () const |
|
void | Breakpoint () override |
|
void | and_ (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | ands (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | eor (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | sub (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | subs (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | rsb (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | rsbs (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | add (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | adds (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | adc (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | adcs (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | sbc (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | sbcs (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | rsc (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | tst (Register rn, Operand o, Condition cond=AL) |
|
void | teq (Register rn, Operand o, Condition cond=AL) |
|
void | cmp (Register rn, Operand o, Condition cond=AL) |
|
void | cmn (Register rn, Operand o, Condition cond=AL) |
|
void | orr (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | orrs (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | mov (Register rd, Operand o, Condition cond=AL) |
|
void | movs (Register rd, Operand o, Condition cond=AL) |
|
void | bic (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | bics (Register rd, Register rn, Operand o, Condition cond=AL) |
|
void | mvn_ (Register rd, Operand o, Condition cond=AL) |
|
void | mvns (Register rd, Operand o, Condition cond=AL) |
|
void | clz (Register rd, Register rm, Condition cond=AL) |
|
void | rbit (Register rd, Register rm, Condition cond=AL) |
|
void | mul (Register rd, Register rn, Register rm, Condition cond=AL) |
|
void | muls (Register rd, Register rn, Register rm, Condition cond=AL) |
|
void | mla (Register rd, Register rn, Register rm, Register ra, Condition cond=AL) |
|
void | mls (Register rd, Register rn, Register rm, Register ra, Condition cond=AL) |
|
void | smull (Register rd_lo, Register rd_hi, Register rn, Register rm, Condition cond=AL) |
|
void | umull (Register rd_lo, Register rd_hi, Register rn, Register rm, Condition cond=AL) |
|
void | smlal (Register rd_lo, Register rd_hi, Register rn, Register rm, Condition cond=AL) |
|
void | umlal (Register rd_lo, Register rd_hi, Register rn, Register rm, Condition cond=AL) |
|
void | umaal (Register rd_lo, Register rd_hi, Register rn, Register rm) |
|
void | sdiv (Register rd, Register rn, Register rm, Condition cond=AL) |
|
void | udiv (Register rd, Register rn, Register rm, Condition cond=AL) |
|
void | ldr (Register rd, Address ad, Condition cond=AL) |
|
void | str (Register rd, Address ad, Condition cond=AL) |
|
void | ldrb (Register rd, Address ad, Condition cond=AL) |
|
void | strb (Register rd, Address ad, Condition cond=AL) |
|
void | ldrh (Register rd, Address ad, Condition cond=AL) |
|
void | strh (Register rd, Address ad, Condition cond=AL) |
|
void | ldrsb (Register rd, Address ad, Condition cond=AL) |
|
void | ldrsh (Register rd, Address ad, Condition cond=AL) |
|
void | ldrd (Register rd, Register rd2, Register rn, int32_t offset, Condition cond=AL) |
|
void | strd (Register rd, Register rd2, Register rn, int32_t offset, Condition cond=AL) |
|
void | ldm (BlockAddressMode am, Register base, RegList regs, Condition cond=AL) |
|
void | stm (BlockAddressMode am, Register base, RegList regs, Condition cond=AL) |
|
void | ldrex (Register rd, Register rn, Condition cond=AL) |
|
void | strex (Register rd, Register rt, Register rn, Condition cond=AL) |
|
void | dmb () |
|
void | sbfx (Register rd, Register rn, int32_t lsb, int32_t width, Condition cond=AL) |
|
void | ubfx (Register rd, Register rn, int32_t lsb, int32_t width, Condition cond=AL) |
|
void | TransitionGeneratedToNative (Register destination_address, Register exit_frame_fp, Register exit_through_ffi, Register scratch0, bool enter_safepoint) |
|
void | TransitionNativeToGenerated (Register scratch0, Register scratch1, bool exit_safepoint, bool ignore_unwind_in_progress=false, bool set_tag=true) |
|
void | EnterFullSafepoint (Register scratch0, Register scratch1) |
|
void | ExitFullSafepoint (Register scratch0, Register scratch1, bool ignore_unwind_in_progress) |
|
void | clrex () |
|
void | nop (Condition cond=AL) |
|
void | bkpt (uint16_t imm16) |
|
void | vmovsr (SRegister sn, Register rt, Condition cond=AL) |
|
void | vmovrs (Register rt, SRegister sn, Condition cond=AL) |
|
void | vmovsrr (SRegister sm, Register rt, Register rt2, Condition cond=AL) |
|
void | vmovrrs (Register rt, Register rt2, SRegister sm, Condition cond=AL) |
|
void | vmovdrr (DRegister dm, Register rt, Register rt2, Condition cond=AL) |
|
void | vmovrrd (Register rt, Register rt2, DRegister dm, Condition cond=AL) |
|
void | vmovdr (DRegister dd, int i, Register rt, Condition cond=AL) |
|
void | vmovs (SRegister sd, SRegister sm, Condition cond=AL) |
|
void | vmovd (DRegister dd, DRegister dm, Condition cond=AL) |
|
void | vmovq (QRegister qd, QRegister qm) |
|
bool | vmovs (SRegister sd, float s_imm, Condition cond=AL) |
|
bool | vmovd (DRegister dd, double d_imm, Condition cond=AL) |
|
void | vldrs (SRegister sd, Address ad, Condition cond=AL) |
|
void | vstrs (SRegister sd, Address ad, Condition cond=AL) |
|
void | vldrd (DRegister dd, Address ad, Condition cond=AL) |
|
void | vstrd (DRegister dd, Address ad, Condition cond=AL) |
|
void | vldms (BlockAddressMode am, Register base, SRegister first, SRegister last, Condition cond=AL) |
|
void | vstms (BlockAddressMode am, Register base, SRegister first, SRegister last, Condition cond=AL) |
|
void | vldmd (BlockAddressMode am, Register base, DRegister first, intptr_t count, Condition cond=AL) |
|
void | vstmd (BlockAddressMode am, Register base, DRegister first, intptr_t count, Condition cond=AL) |
|
void | vadds (SRegister sd, SRegister sn, SRegister sm, Condition cond=AL) |
|
void | vaddd (DRegister dd, DRegister dn, DRegister dm, Condition cond=AL) |
|
void | vaddqi (OperandSize sz, QRegister qd, QRegister qn, QRegister qm) |
|
void | vaddqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | vsubs (SRegister sd, SRegister sn, SRegister sm, Condition cond=AL) |
|
void | vsubd (DRegister dd, DRegister dn, DRegister dm, Condition cond=AL) |
|
void | vsubqi (OperandSize sz, QRegister qd, QRegister qn, QRegister qm) |
|
void | vsubqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | vmuls (SRegister sd, SRegister sn, SRegister sm, Condition cond=AL) |
|
void | vmuld (DRegister dd, DRegister dn, DRegister dm, Condition cond=AL) |
|
void | vmulqi (OperandSize sz, QRegister qd, QRegister qn, QRegister qm) |
|
void | vmulqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | vshlqi (OperandSize sz, QRegister qd, QRegister qm, QRegister qn) |
|
void | vshlqu (OperandSize sz, QRegister qd, QRegister qm, QRegister qn) |
|
void | vmlas (SRegister sd, SRegister sn, SRegister sm, Condition cond=AL) |
|
void | vmlad (DRegister dd, DRegister dn, DRegister dm, Condition cond=AL) |
|
void | vmlss (SRegister sd, SRegister sn, SRegister sm, Condition cond=AL) |
|
void | vmlsd (DRegister dd, DRegister dn, DRegister dm, Condition cond=AL) |
|
void | vdivs (SRegister sd, SRegister sn, SRegister sm, Condition cond=AL) |
|
void | vdivd (DRegister dd, DRegister dn, DRegister dm, Condition cond=AL) |
|
void | vminqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | vmaxqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | vrecpeqs (QRegister qd, QRegister qm) |
|
void | vrecpsqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | vrsqrteqs (QRegister qd, QRegister qm) |
|
void | vrsqrtsqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | veorq (QRegister qd, QRegister qn, QRegister qm) |
|
void | vorrq (QRegister qd, QRegister qn, QRegister qm) |
|
void | vornq (QRegister qd, QRegister qn, QRegister qm) |
|
void | vandq (QRegister qd, QRegister qn, QRegister qm) |
|
void | vmvnq (QRegister qd, QRegister qm) |
|
void | vceqqi (OperandSize sz, QRegister qd, QRegister qn, QRegister qm) |
|
void | vceqqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | vcgeqi (OperandSize sz, QRegister qd, QRegister qn, QRegister qm) |
|
void | vcugeqi (OperandSize sz, QRegister qd, QRegister qn, QRegister qm) |
|
void | vcgeqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | vcgtqi (OperandSize sz, QRegister qd, QRegister qn, QRegister qm) |
|
void | vcugtqi (OperandSize sz, QRegister qd, QRegister qn, QRegister qm) |
|
void | vcgtqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | vabss (SRegister sd, SRegister sm, Condition cond=AL) |
|
void | vabsd (DRegister dd, DRegister dm, Condition cond=AL) |
|
void | vabsqs (QRegister qd, QRegister qm) |
|
void | vnegs (SRegister sd, SRegister sm, Condition cond=AL) |
|
void | vnegd (DRegister dd, DRegister dm, Condition cond=AL) |
|
void | vnegqs (QRegister qd, QRegister qm) |
|
void | vsqrts (SRegister sd, SRegister sm, Condition cond=AL) |
|
void | vsqrtd (DRegister dd, DRegister dm, Condition cond=AL) |
|
void | vcvtsd (SRegister sd, DRegister dm, Condition cond=AL) |
|
void | vcvtds (DRegister dd, SRegister sm, Condition cond=AL) |
|
void | vcvtis (SRegister sd, SRegister sm, Condition cond=AL) |
|
void | vcvtid (SRegister sd, DRegister dm, Condition cond=AL) |
|
void | vcvtsi (SRegister sd, SRegister sm, Condition cond=AL) |
|
void | vcvtdi (DRegister dd, SRegister sm, Condition cond=AL) |
|
void | vcvtus (SRegister sd, SRegister sm, Condition cond=AL) |
|
void | vcvtud (SRegister sd, DRegister dm, Condition cond=AL) |
|
void | vcvtsu (SRegister sd, SRegister sm, Condition cond=AL) |
|
void | vcvtdu (DRegister dd, SRegister sm, Condition cond=AL) |
|
void | vcmps (SRegister sd, SRegister sm, Condition cond=AL) |
|
void | vcmpd (DRegister dd, DRegister dm, Condition cond=AL) |
|
void | vcmpsz (SRegister sd, Condition cond=AL) |
|
void | vcmpdz (DRegister dd, Condition cond=AL) |
|
void | vmrs (Register rd, Condition cond=AL) |
|
void | vmstat (Condition cond=AL) |
|
void | vdup (OperandSize sz, QRegister qd, DRegister dm, int idx) |
|
void | vtbl (DRegister dd, DRegister dn, int length, DRegister dm) |
|
void | vzipqw (QRegister qd, QRegister qm) |
|
void | b (Label *label, Condition cond=AL) |
|
void | bl (Label *label, Condition cond=AL) |
|
void | bx (Register rm, Condition cond=AL) |
|
void | blx (Register rm, Condition cond=AL) |
|
void | Branch (const Address &address, Condition cond=AL) |
|
void | BranchLink (const Code &code, ObjectPoolBuilderEntry::Patchability patchable=ObjectPoolBuilderEntry::kNotPatchable, CodeEntryKind entry_kind=CodeEntryKind::kNormal, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | BranchLinkPatchable (const Code &code, CodeEntryKind entry_kind=CodeEntryKind::kNormal, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | BranchLinkWithEquivalence (const Code &code, const Object &equivalence, CodeEntryKind entry_kind=CodeEntryKind::kNormal) |
|
void | BranchLinkOffset (Register base, int32_t offset) |
|
void | Call (Address target, Condition cond=AL) |
|
void | Call (const Code &code) |
|
void | CallCFunction (Address target) |
|
void | CallCFunction (Register target, Condition cond=AL) |
|
void | AddImmediate (Register rd, int32_t value, Condition cond=AL) |
|
void | AddImmediate (Register rd, Register rn, int32_t value, Condition cond=AL) |
|
void | AddImmediateSetFlags (Register rd, Register rn, int32_t value, Condition cond=AL) |
|
void | AddRegisters (Register dest, Register src) |
|
void | AddScaled (Register dest, Register base, Register index, ScaleFactor scale, int32_t disp) override |
|
void | SubImmediate (Register rd, Register rn, int32_t value, Condition cond=AL) |
|
void | SubImmediateSetFlags (Register rd, Register rn, int32_t value, Condition cond=AL) |
|
void | SubRegisters (Register dest, Register src) |
|
void | MulImmediate (Register reg, int32_t imm, OperandSize width=kFourBytes) override |
|
void | AndImmediate (Register rd, Register rs, int32_t imm, Condition cond=AL) |
|
void | AndImmediate (Register rd, int32_t imm, Condition cond) |
|
void | AndImmediate (Register rd, int32_t imm) override |
|
void | AndImmediateSetFlags (Register rd, Register rn, int32_t value, Condition cond=AL) |
|
void | AndRegisters (Register dst, Register src1, Register src2=kNoRegister) override |
|
void | OrImmediate (Register rd, Register rs, int32_t imm, Condition cond=AL) |
|
void | OrImmediate (Register rd, int32_t imm, Condition cond=AL) |
|
void | LslImmediate (Register rd, Register rn, int32_t shift) |
|
void | LslImmediate (Register rd, int32_t shift) |
|
void | LslRegister (Register dst, Register shift) override |
|
void | LsrImmediate (Register rd, Register rn, int32_t shift) |
|
void | LsrImmediate (Register rd, int32_t shift) override |
|
void | TestImmediate (Register rn, int32_t imm, Condition cond=AL) |
|
void | CompareImmediate (Register rn, int32_t value, Condition cond) |
|
void | CompareImmediate (Register rn, int32_t value, OperandSize width=kFourBytes) override |
|
void | IntegerDivide (Register result, Register left, Register right, DRegister tmpl, DRegister tmpr) |
|
void | LoadPatchableImmediate (Register rd, int32_t value, Condition cond=AL) |
|
void | LoadDecodableImmediate (Register rd, int32_t value, Condition cond=AL) |
|
void | LoadImmediate (Register rd, Immediate value, Condition cond=AL) |
|
void | LoadImmediate (Register rd, int32_t value, Condition cond) |
|
void | LoadImmediate (Register rd, int32_t value) override |
|
void | LoadSImmediate (SRegister sd, float value, Condition cond=AL) |
|
void | LoadDImmediate (DRegister dd, double value, Register scratch, Condition cond=AL) |
|
void | LoadQImmediate (QRegister dd, simd128_value_t value) |
|
void | MarkExceptionHandler (Label *label) |
|
void | Drop (intptr_t stack_elements) |
|
void | RestoreCodePointer () |
|
void | LoadPoolPointer (Register reg=PP) |
|
void | SetupGlobalPoolAndDispatchTable () |
|
void | LoadIsolate (Register rd) |
|
void | LoadIsolateGroup (Register dst) |
|
void | LoadWordFromPoolIndex (Register rd, intptr_t index, Register pp=PP, Condition cond=AL) |
|
void | StoreWordToPoolIndex (Register value, intptr_t index, Register pp=PP, Condition cond=AL) |
|
void | LoadObject (Register rd, const Object &object, Condition cond=AL) |
|
void | LoadUniqueObject (Register rd, const Object &object, Condition cond=AL, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | LoadNativeEntry (Register dst, const ExternalLabel *label, ObjectPoolBuilderEntry::Patchability patchable, Condition cond=AL) |
|
void | PushObject (const Object &object) |
|
void | PushImmediate (int32_t immediate) |
|
void | CompareObject (Register rn, const Object &object) |
|
void | StoreObjectIntoObjectNoBarrier (Register object, const Address &dest, const Object &value, MemoryOrder memory_order=kRelaxedNonAtomic, OperandSize size=kWordBytes) override |
|
void | StoreBarrier (Register object, Register value, CanBeSmi can_be_smi, Register scratch) override |
|
void | ArrayStoreBarrier (Register object, Register slot, Register value, CanBeSmi can_be_smi, Register scratch) override |
|
void | VerifyStoreNeedsNoWriteBarrier (Register object, Register value) override |
|
void | StoreInternalPointer (Register object, const Address &dest, Register value) |
|
void | InitializeFieldsNoBarrier (Register object, Register begin, Register end, Register value_even, Register value_odd) |
|
void | InitializeFieldsNoBarrierUnrolled (Register object, Register base, intptr_t begin_offset, intptr_t end_offset, Register value_even, Register value_odd) |
|
void | StoreIntoSmiField (const Address &dest, Register value) |
|
void | ExtractClassIdFromTags (Register result, Register tags, Condition cond=AL) |
|
void | ExtractInstanceSizeFromTags (Register result, Register tags) |
|
void | RangeCheck (Register value, Register temp, intptr_t low, intptr_t high, RangeCheckCondition condition, Label *target) override |
|
void | LoadClassId (Register result, Register object, Condition cond=AL) |
|
void | LoadClassById (Register result, Register class_id) |
|
void | CompareClassId (Register object, intptr_t class_id, Register scratch) |
|
void | LoadClassIdMayBeSmi (Register result, Register object) |
|
void | LoadTaggedClassIdMayBeSmi (Register result, Register object) |
|
void | EnsureHasClassIdInDEBUG (intptr_t cid, Register src, Register scratch, bool can_be_null=false) override |
|
bool | CanLoadFromObjectPool (const Object &object) const |
|
Address | PrepareLargeLoadOffset (const Address &addr, OperandSize sz, Condition cond) |
|
Address | PrepareLargeStoreOffset (const Address &addr, OperandSize sz, Condition cond) |
|
void | Load (Register reg, const Address &address, OperandSize type, Condition cond) |
|
void | Load (Register reg, const Address &address, OperandSize type=kFourBytes) override |
|
void | LoadFromOffset (Register reg, Register base, int32_t offset, OperandSize type=kFourBytes) override |
|
void | LoadFromOffset (Register reg, Register base, int32_t offset, OperandSize type, Condition cond) |
|
void | LoadFieldFromOffset (Register reg, Register base, int32_t offset, OperandSize type=kFourBytes) override |
|
void | LoadFieldFromOffset (Register reg, Register base, int32_t offset, OperandSize type, Condition cond) |
|
void | LoadIndexedPayload (Register dst, Register base, int32_t payload_start, Register index, ScaleFactor scale, OperandSize type=kFourBytes) override |
|
void | LoadFromStack (Register dst, intptr_t depth) |
|
void | StoreToStack (Register src, intptr_t depth) |
|
void | CompareToStack (Register src, intptr_t depth) |
|
void | Store (Register reg, const Address &address, OperandSize type, Condition cond) |
|
void | Store (Register reg, const Address &address, OperandSize type=kFourBytes) override |
|
void | StoreToOffset (Register reg, Register base, int32_t offset, OperandSize type=kFourBytes) override |
|
void | StoreToOffset (Register reg, Register base, int32_t offset, OperandSize type, Condition cond) |
|
void | StoreFieldToOffset (Register reg, Register base, int32_t offset, OperandSize type=kFourBytes) override |
|
void | StoreFieldToOffset (Register reg, Register base, int32_t offset, OperandSize type, Condition cond) |
|
void | StoreZero (const Address &address, Register temp) |
|
void | LoadSFromOffset (SRegister reg, Register base, int32_t offset, Condition cond=AL) |
|
void | StoreSToOffset (SRegister reg, Register base, int32_t offset, Condition cond=AL) |
|
void | LoadDFromOffset (DRegister reg, Register base, int32_t offset, Condition cond=AL) |
|
void | StoreDToOffset (DRegister reg, Register base, int32_t offset, Condition cond=AL) |
|
void | LoadUnboxedDouble (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedDouble (FpuRegister src, Register base, int32_t offset) |
|
void | MoveUnboxedDouble (FpuRegister dst, FpuRegister src) |
|
void | LoadMultipleDFromOffset (DRegister first, intptr_t count, Register base, int32_t offset) |
|
void | StoreMultipleDToOffset (DRegister first, intptr_t count, Register base, int32_t offset) |
|
void | LoadUnboxedSimd128 (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedSimd128 (FpuRegister src, Register base, int32_t offset) |
|
void | MoveUnboxedSimd128 (FpuRegister dst, FpuRegister src) |
|
void | Push (Register rd, Condition cond=AL) |
|
void | Pop (Register rd, Condition cond=AL) |
|
void | PushList (RegList regs, Condition cond=AL) |
|
void | PopList (RegList regs, Condition cond=AL) |
|
void | PushQuad (FpuRegister rd, Condition cond=AL) |
|
void | PopQuad (FpuRegister rd, Condition cond=AL) |
|
void | PushRegisters (const RegisterSet ®s) |
|
void | PopRegisters (const RegisterSet ®s) |
|
void | PushRegistersInOrder (std::initializer_list< Register > regs) |
|
void | PushNativeCalleeSavedRegisters () |
|
void | PopNativeCalleeSavedRegisters () |
|
void | CompareRegisters (Register rn, Register rm) |
|
void | CompareObjectRegisters (Register rn, Register rm) |
|
void | BranchIf (Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfZero (Register rn, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfBit (Register rn, intptr_t bit_number, Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | MoveRegister (Register rd, Register rm, Condition cond) |
|
void | MoveRegister (Register rd, Register rm) override |
|
void | MoveAndSmiTagRegister (Register rd, Register rm, Condition cond) |
|
void | MoveAndSmiTagRegister (Register rd, Register rm) override |
|
void | ExtendValue (Register rd, Register rm, OperandSize sz, Condition cond) |
|
void | ExtendValue (Register rd, Register rm, OperandSize sz) override |
|
void | ExtendAndSmiTagValue (Register rd, Register rm, OperandSize sz, Condition cond) |
|
void | ExtendAndSmiTagValue (Register rd, Register rm, OperandSize sz=kFourBytes) override |
|
void | Lsl (Register rd, Register rm, const Operand &shift_imm, Condition cond=AL) |
|
void | Lsl (Register rd, Register rm, Register rs, Condition cond=AL) |
|
void | Lsr (Register rd, Register rm, const Operand &shift_imm, Condition cond=AL) |
|
void | Lsr (Register rd, Register rm, Register rs, Condition cond=AL) |
|
void | Asr (Register rd, Register rm, const Operand &shift_imm, Condition cond=AL) |
|
void | Asr (Register rd, Register rm, Register rs, Condition cond=AL) |
|
void | Asrs (Register rd, Register rm, const Operand &shift_imm, Condition cond=AL) |
|
void | Ror (Register rd, Register rm, const Operand &shift_imm, Condition cond=AL) |
|
void | Ror (Register rd, Register rm, Register rs, Condition cond=AL) |
|
void | Rrx (Register rd, Register rm, Condition cond=AL) |
|
void | SignFill (Register rd, Register rm, Condition cond=AL) |
|
void | Vreciprocalqs (QRegister qd, QRegister qm) |
|
void | VreciprocalSqrtqs (QRegister qd, QRegister qm) |
|
void | Vsqrtqs (QRegister qd, QRegister qm, QRegister temp) |
|
void | Vdivqs (QRegister qd, QRegister qn, QRegister qm) |
|
void | SmiTag (Register reg, Condition cond) |
|
void | SmiTag (Register reg) override |
|
void | SmiTag (Register dst, Register src, Condition cond=AL) |
|
void | SmiUntag (Register reg, Condition cond=AL) |
|
void | SmiUntag (Register dst, Register src, Condition cond=AL) |
|
void | SmiUntag (Register dst, Register src, Label *is_smi) |
|
void | BranchIfNotSmi (Register reg, Label *label, JumpDistance distance=kFarJump) |
|
void | LoadInt32FromBoxOrSmi (Register result, Register value) override |
|
void | BranchIfSmi (Register reg, Label *label, JumpDistance distance=kFarJump) override |
|
void | CheckCodePointer () |
|
void | ArithmeticShiftRightImmediate (Register reg, intptr_t shift) override |
|
void | CompareWords (Register reg1, Register reg2, intptr_t offset, Register count, Register temp, Label *equals) override |
|
void | EnterFrame (RegList regs, intptr_t frame_space) |
|
void | LeaveFrame (RegList regs, bool allow_pop_pc=false) |
|
void | Ret (Condition cond=AL) |
|
void | SetReturnAddress (Register value) |
|
void | ReserveAlignedFrameSpace (intptr_t frame_space) |
|
void | EmitEntryFrameVerification (Register scratch) |
|
void | CallRuntime (const RuntimeEntry &entry, intptr_t argument_count) |
|
void | EnterDartFrame (intptr_t frame_size, bool load_pool_pointer=true) |
|
void | LeaveDartFrame () |
|
void | LeaveDartFrameAndReturn () |
|
void | EnterOsrFrame (intptr_t extra_size) |
|
void | EnterStubFrame () |
|
void | LeaveStubFrame () |
|
void | EnterCFrame (intptr_t frame_space) |
|
void | LeaveCFrame () |
|
void | MonomorphicCheckedEntryJIT () |
|
void | MonomorphicCheckedEntryAOT () |
|
void | BranchOnMonomorphicCheckedEntryJIT (Label *label) |
|
void | CombineHashes (Register dst, Register other) override |
|
void | FinalizeHashForSize (intptr_t bit_size, Register dst, Register scratch=TMP) override |
|
void | LoadAllocationTracingStateAddress (Register dest, intptr_t cid) |
|
void | LoadAllocationTracingStateAddress (Register dest, Register cid) |
|
Address | ElementAddressForIntIndex (bool is_load, bool is_external, intptr_t cid, intptr_t index_scale, Register array, intptr_t index, Register temp) |
|
void | LoadElementAddressForIntIndex (Register address, bool is_load, bool is_external, intptr_t cid, intptr_t index_scale, Register array, intptr_t index) |
|
Address | ElementAddressForRegIndex (bool is_load, bool is_external, intptr_t cid, intptr_t index_scale, bool index_unboxed, Register array, Register index) |
|
void | LoadElementAddressForRegIndex (Register address, bool is_load, bool is_external, intptr_t cid, intptr_t index_scale, bool index_unboxed, Register array, Register index) |
|
void | LoadStaticFieldAddress (Register address, Register field, Register scratch, bool is_shared) |
|
void | LoadFieldAddressForRegOffset (Register address, Register instance, Register offset_in_words_as_smi) override |
|
void | LoadFieldAddressForOffset (Register address, Register instance, int32_t offset) override |
|
void | LoadHalfWordUnaligned (Register dst, Register addr, Register tmp) |
|
void | LoadHalfWordUnsignedUnaligned (Register dst, Register addr, Register tmp) |
|
void | StoreHalfWordUnaligned (Register src, Register addr, Register tmp) |
|
void | LoadWordUnaligned (Register dst, Register addr, Register tmp) |
|
void | StoreWordUnaligned (Register src, Register addr, Register tmp) |
|
void | MaybeTraceAllocation (Register stats_addr_reg, Label *trace) |
|
void | MaybeTraceAllocation (intptr_t cid, Label *trace, Register temp_reg, JumpDistance distance=JumpDistance::kFarJump) |
|
void | MaybeTraceAllocation (Register cid, Label *trace, Register temp_reg, JumpDistance distance=JumpDistance::kFarJump) |
|
void | TryAllocateObject (intptr_t cid, intptr_t instance_size, Label *failure, JumpDistance distance, Register instance_reg, Register temp_reg) override |
|
void | TryAllocateArray (intptr_t cid, intptr_t instance_size, Label *failure, Register instance, Register end_address, Register temp1, Register temp2) |
|
void | CheckAllocationCanary (Register top, Register tmp=TMP) |
|
void | WriteAllocationCanary (Register top) |
|
void | CopyMemoryWords (Register src, Register dst, Register size, Register temp) |
|
void | GenerateUnRelocatedPcRelativeCall (Condition cond=AL, intptr_t offset_into_target=0) |
|
void | GenerateUnRelocatedPcRelativeTailCall (Condition cond=AL, intptr_t offset_into_target=0) |
|
void | Emit (int32_t value) |
|
bool | constant_pool_allowed () const |
|
void | set_constant_pool_allowed (bool b) |
|
compiler::LRState | lr_state () const |
|
void | set_lr_state (compiler::LRState b) |
|
| Assembler (ObjectPoolBuilder *object_pool_builder, intptr_t far_branch_level=0) |
|
| ~Assembler () |
|
void | PushRegister (Register r) |
|
void | PopRegister (Register r) |
|
void | PushValueAtOffset (Register base, int32_t offset) |
|
void | PushRegisterPair (Register r0, Register r1) |
|
void | PopRegisterPair (Register r0, Register r1) |
|
void | PushRegisters (const RegisterSet ®isters) |
|
void | PopRegisters (const RegisterSet ®isters) |
|
void | PushRegistersInOrder (std::initializer_list< Register > regs) |
|
void | PushNativeCalleeSavedRegisters () |
|
void | PopNativeCalleeSavedRegisters () |
|
void | ExtendValue (Register rd, Register rn, OperandSize sz) override |
|
void | ExtendAndSmiTagValue (Register rd, Register rn, OperandSize sz=kEightBytes) override |
|
void | Drop (intptr_t stack_elements) |
|
void | nop () |
|
void | Align (intptr_t alignment, intptr_t offset) |
|
void | Bind (Label *label) override |
|
void | Jump (Label *label, JumpDistance distance=kFarJump) |
|
void | Jump (Register target) |
|
void | Jump (const Address &address) |
|
void | LoadMemoryValue (Register dst, Register base, int32_t offset) |
|
void | StoreMemoryValue (Register src, Register base, int32_t offset) |
|
void | TsanLoadAcquire (Register addr) |
|
void | TsanStoreRelease (Register addr) |
|
void | LoadAcquire (Register dst, const Address &address, OperandSize size=kEightBytes) override |
|
void | StoreRelease (Register src, const Address &address, OperandSize size=kEightBytes) override |
|
void | CompareWithMemoryValue (Register value, Address address, OperandSize sz=kEightBytes) override |
|
bool | use_far_branches () const |
|
void | set_use_far_branches (bool b) |
|
void | Breakpoint () override |
|
void | SetPrologueOffset () |
|
void | ReserveAlignedFrameSpace (intptr_t frame_space) |
|
void | EmitEntryFrameVerification () |
|
void | Emit (int32_t value) |
|
void | Emit64 (int64_t value) |
|
void | add (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | adds (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | sub (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | subs (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | addw (Register rd, Register rn, Operand o) |
|
void | addsw (Register rd, Register rn, Operand o) |
|
void | subw (Register rd, Register rn, Operand o) |
|
void | subsw (Register rd, Register rn, Operand o) |
|
void | adc (Register rd, Register rn, Register rm) |
|
void | adcs (Register rd, Register rn, Register rm) |
|
void | adcw (Register rd, Register rn, Register rm) |
|
void | adcsw (Register rd, Register rn, Register rm) |
|
void | sbc (Register rd, Register rn, Register rm) |
|
void | sbcs (Register rd, Register rn, Register rm) |
|
void | sbcw (Register rd, Register rn, Register rm) |
|
void | sbcsw (Register rd, Register rn, Register rm) |
|
void | adr (Register rd, const Immediate &imm) |
|
void | bfm (Register rd, Register rn, int r_imm, int s_imm, OperandSize size=kEightBytes) |
|
void | sbfm (Register rd, Register rn, int r_imm, int s_imm, OperandSize size=kEightBytes) |
|
void | ubfm (Register rd, Register rn, int r_imm, int s_imm, OperandSize size=kEightBytes) |
|
void | bfi (Register rd, Register rn, int low_bit, int width, OperandSize size=kEightBytes) |
|
void | bfxil (Register rd, Register rn, int low_bit, int width, OperandSize size=kEightBytes) |
|
void | sbfiz (Register rd, Register rn, int low_bit, int width, OperandSize size=kEightBytes) |
|
void | sbfx (Register rd, Register rn, int low_bit, int width, OperandSize size=kEightBytes) |
|
void | ubfiz (Register rd, Register rn, int low_bit, int width, OperandSize size=kEightBytes) |
|
void | ubfx (Register rd, Register rn, int low_bit, int width, OperandSize size=kEightBytes) |
|
void | sxtb (Register rd, Register rn) |
|
void | sxth (Register rd, Register rn) |
|
void | sxtw (Register rd, Register rn) |
|
void | uxtb (Register rd, Register rn) |
|
void | uxth (Register rd, Register rn) |
|
void | uxtw (Register rd, Register rn) |
|
void | andi (Register rd, Register rn, const Immediate &imm, OperandSize sz=kEightBytes) |
|
void | orri (Register rd, Register rn, const Immediate &imm, OperandSize sz=kEightBytes) |
|
void | eori (Register rd, Register rn, const Immediate &imm, OperandSize sz=kEightBytes) |
|
void | andis (Register rd, Register rn, const Immediate &imm, OperandSize sz=kEightBytes) |
|
void | and_ (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | bic (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | orr (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | orn (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | eor (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | eon (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | ands (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | bics (Register rd, Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | andw_ (Register rd, Register rn, Operand o) |
|
void | orrw (Register rd, Register rn, Operand o) |
|
void | ornw (Register rd, Register rn, Operand o) |
|
void | eorw (Register rd, Register rn, Operand o) |
|
void | clz (Register rd, Register rn) |
|
void | clzw (Register rd, Register rn) |
|
void | rbit (Register rd, Register rn) |
|
void | udiv (Register rd, Register rn, Register rm, OperandSize sz=kEightBytes) |
|
void | sdiv (Register rd, Register rn, Register rm, OperandSize sz=kEightBytes) |
|
void | lslv (Register rd, Register rn, Register rm, OperandSize sz=kEightBytes) |
|
void | lsrv (Register rd, Register rn, Register rm, OperandSize sz=kEightBytes) |
|
void | asrv (Register rd, Register rn, Register rm, OperandSize sz=kEightBytes) |
|
void | sdivw (Register rd, Register rn, Register rm) |
|
void | lslvw (Register rd, Register rn, Register rm) |
|
void | lsrvw (Register rd, Register rn, Register rm) |
|
void | asrvw (Register rd, Register rn, Register rm) |
|
void | madd (Register rd, Register rn, Register rm, Register ra, OperandSize sz=kEightBytes) |
|
void | msub (Register rd, Register rn, Register rm, Register ra, OperandSize sz=kEightBytes) |
|
void | smulh (Register rd, Register rn, Register rm, OperandSize sz=kEightBytes) |
|
void | umulh (Register rd, Register rn, Register rm, OperandSize sz=kEightBytes) |
|
void | umaddl (Register rd, Register rn, Register rm, Register ra, OperandSize sz=kEightBytes) |
|
void | umull (Register rd, Register rn, Register rm, OperandSize sz=kEightBytes) |
|
void | smaddl (Register rd, Register rn, Register rm, Register ra, OperandSize sz=kEightBytes) |
|
void | smull (Register rd, Register rn, Register rm, OperandSize sz=kEightBytes) |
|
void | movk (Register rd, const Immediate &imm, int hw_idx) |
|
void | movn (Register rd, const Immediate &imm, int hw_idx) |
|
void | movz (Register rd, const Immediate &imm, int hw_idx) |
|
void | ldr (Register rt, Address a, OperandSize sz=kEightBytes) |
|
void | str (Register rt, Address a, OperandSize sz=kEightBytes) |
|
void | ldp (Register rt, Register rt2, Address a, OperandSize sz=kEightBytes) |
|
void | stp (Register rt, Register rt2, Address a, OperandSize sz=kEightBytes) |
|
void | fldp (VRegister rt, VRegister rt2, Address a, OperandSize sz) |
|
void | fstp (VRegister rt, VRegister rt2, Address a, OperandSize sz) |
|
void | ldxr (Register rt, Register rn, OperandSize size=kEightBytes) |
|
void | stxr (Register rs, Register rt, Register rn, OperandSize size=kEightBytes) |
|
void | clrex () |
|
void | ldar (Register rt, Register rn, OperandSize sz=kEightBytes) |
|
void | stlr (Register rt, Register rn, OperandSize sz=kEightBytes) |
|
void | ldclr (Register rs, Register rt, Register rn, OperandSize sz=kEightBytes) |
|
void | ldset (Register rs, Register rt, Register rn, OperandSize sz=kEightBytes) |
|
void | csel (Register rd, Register rn, Register rm, Condition cond) |
|
void | csinc (Register rd, Register rn, Register rm, Condition cond, OperandSize sz=kEightBytes) |
|
void | cinc (Register rd, Register rn, Condition cond) |
|
void | cset (Register rd, Condition cond) |
|
void | csinv (Register rd, Register rn, Register rm, Condition cond) |
|
void | cinv (Register rd, Register rn, Condition cond) |
|
void | csetm (Register rd, Condition cond) |
|
void | csneg (Register rd, Register rn, Register rm, Condition cond) |
|
void | cneg (Register rd, Register rn, Condition cond) |
|
void | cmp (Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | cmpw (Register rn, Operand o) |
|
void | cmn (Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | CompareRegisters (Register rn, Register rm) |
|
void | CompareObjectRegisters (Register rn, Register rm) |
|
void | b (Label *label, Condition cond=AL) |
|
void | b (int32_t offset) |
|
void | bl (int32_t offset) |
|
void | BranchIf (Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfZero (Register rn, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfBit (Register rn, intptr_t bit_number, Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | cbz (Label *label, Register rt, OperandSize sz=kEightBytes) |
|
void | cbnz (Label *label, Register rt, OperandSize sz=kEightBytes) |
|
bool | CanGenerateCbzTbz (Register rn, Condition cond) |
|
void | GenerateCbzTbz (Register rn, Condition cond, Label *label, OperandSize sz=kEightBytes) |
|
void | tbz (Label *label, Register rt, intptr_t bit_number) |
|
void | tbnz (Label *label, Register rt, intptr_t bit_number) |
|
void | br (Register rn) |
|
void | blr (Register rn) |
|
void | ret (Register rn=kNoRegister2) |
|
void | brk (uint16_t imm) |
|
bool | fmovdi (VRegister vd, double immd) |
|
void | fmovsr (VRegister vd, Register rn) |
|
void | fmovrs (Register rd, VRegister vn) |
|
void | fmovdr (VRegister vd, Register rn) |
|
void | fmovrd (Register rd, VRegister vn) |
|
void | scvtfdx (VRegister vd, Register rn) |
|
void | scvtfdw (VRegister vd, Register rn) |
|
void | fcvtzsxd (Register rd, VRegister vn) |
|
void | fcvtzswd (Register rd, VRegister vn) |
|
void | fcvtmsxd (Register rd, VRegister vn) |
|
void | fcvtmswd (Register rd, VRegister vn) |
|
void | fcvtpsxd (Register rd, VRegister vn) |
|
void | fcvtpswd (Register rd, VRegister vn) |
|
void | fmovdd (VRegister vd, VRegister vn) |
|
void | fabsd (VRegister vd, VRegister vn) |
|
void | fnegd (VRegister vd, VRegister vn) |
|
void | fsqrtd (VRegister vd, VRegister vn) |
|
void | fcvtsd (VRegister vd, VRegister vn) |
|
void | fcvtds (VRegister vd, VRegister vn) |
|
void | fldrq (VRegister vt, Address a) |
|
void | fstrq (VRegister vt, Address a) |
|
void | fldrd (VRegister vt, Address a) |
|
void | fstrd (VRegister vt, Address a) |
|
void | fldrs (VRegister vt, Address a) |
|
void | fstrs (VRegister vt, Address a) |
|
void | fcmpd (VRegister vn, VRegister vm) |
|
void | fcmpdz (VRegister vn) |
|
void | fmuld (VRegister vd, VRegister vn, VRegister vm) |
|
void | fdivd (VRegister vd, VRegister vn, VRegister vm) |
|
void | faddd (VRegister vd, VRegister vn, VRegister vm) |
|
void | fsubd (VRegister vd, VRegister vn, VRegister vm) |
|
void | vand (VRegister vd, VRegister vn, VRegister vm) |
|
void | vorr (VRegister vd, VRegister vn, VRegister vm) |
|
void | veor (VRegister vd, VRegister vn, VRegister vm) |
|
void | vaddw (VRegister vd, VRegister vn, VRegister vm) |
|
void | vaddx (VRegister vd, VRegister vn, VRegister vm) |
|
void | vsubw (VRegister vd, VRegister vn, VRegister vm) |
|
void | vsubx (VRegister vd, VRegister vn, VRegister vm) |
|
void | vadds (VRegister vd, VRegister vn, VRegister vm) |
|
void | vaddd (VRegister vd, VRegister vn, VRegister vm) |
|
void | vsubs (VRegister vd, VRegister vn, VRegister vm) |
|
void | vsubd (VRegister vd, VRegister vn, VRegister vm) |
|
void | vmuls (VRegister vd, VRegister vn, VRegister vm) |
|
void | vmuld (VRegister vd, VRegister vn, VRegister vm) |
|
void | vdivs (VRegister vd, VRegister vn, VRegister vm) |
|
void | vdivd (VRegister vd, VRegister vn, VRegister vm) |
|
void | vceqs (VRegister vd, VRegister vn, VRegister vm) |
|
void | vceqd (VRegister vd, VRegister vn, VRegister vm) |
|
void | vcgts (VRegister vd, VRegister vn, VRegister vm) |
|
void | vcgtd (VRegister vd, VRegister vn, VRegister vm) |
|
void | vcges (VRegister vd, VRegister vn, VRegister vm) |
|
void | vcged (VRegister vd, VRegister vn, VRegister vm) |
|
void | vmins (VRegister vd, VRegister vn, VRegister vm) |
|
void | vmind (VRegister vd, VRegister vn, VRegister vm) |
|
void | vmaxs (VRegister vd, VRegister vn, VRegister vm) |
|
void | vmaxd (VRegister vd, VRegister vn, VRegister vm) |
|
void | vrecpss (VRegister vd, VRegister vn, VRegister vm) |
|
void | vrsqrtss (VRegister vd, VRegister vn, VRegister vm) |
|
void | vnot (VRegister vd, VRegister vn) |
|
void | vabss (VRegister vd, VRegister vn) |
|
void | vabsd (VRegister vd, VRegister vn) |
|
void | vnegs (VRegister vd, VRegister vn) |
|
void | vnegd (VRegister vd, VRegister vn) |
|
void | vsqrts (VRegister vd, VRegister vn) |
|
void | vsqrtd (VRegister vd, VRegister vn) |
|
void | vrecpes (VRegister vd, VRegister vn) |
|
void | vrsqrtes (VRegister vd, VRegister vn) |
|
void | vdupw (VRegister vd, Register rn) |
|
void | vdupx (VRegister vd, Register rn) |
|
void | vdups (VRegister vd, VRegister vn, int32_t idx) |
|
void | vdupd (VRegister vd, VRegister vn, int32_t idx) |
|
void | vinsw (VRegister vd, int32_t didx, Register rn) |
|
void | vinsx (VRegister vd, int32_t didx, Register rn) |
|
void | vinss (VRegister vd, int32_t didx, VRegister vn, int32_t sidx) |
|
void | vinsd (VRegister vd, int32_t didx, VRegister vn, int32_t sidx) |
|
void | vmovrs (Register rd, VRegister vn, int32_t sidx) |
|
void | vmovrd (Register rd, VRegister vn, int32_t sidx) |
|
void | mov (Register rd, Register rn) |
|
void | movw (Register rd, Register rn) |
|
void | vmov (VRegister vd, VRegister vn) |
|
void | mvn_ (Register rd, Register rm) |
|
void | mvnw (Register rd, Register rm) |
|
void | neg (Register rd, Register rm) |
|
void | negs (Register rd, Register rm, OperandSize sz=kEightBytes) |
|
void | negsw (Register rd, Register rm) |
|
void | mul (Register rd, Register rn, Register rm) |
|
void | mulw (Register rd, Register rn, Register rm) |
|
void | Push (Register reg) |
|
void | Pop (Register reg) |
|
void | PushPair (Register low, Register high) |
|
void | PopPair (Register low, Register high) |
|
void | PushFloat (VRegister reg) |
|
void | PushDouble (VRegister reg) |
|
void | PushQuad (VRegister reg) |
|
void | PopFloat (VRegister reg) |
|
void | PopDouble (VRegister reg) |
|
void | PopQuad (VRegister reg) |
|
void | PushDoublePair (VRegister low, VRegister high) |
|
void | PopDoublePair (VRegister low, VRegister high) |
|
void | PushQuadPair (VRegister low, VRegister high) |
|
void | PopQuadPair (VRegister low, VRegister high) |
|
void | TagAndPushPP () |
|
void | TagAndPushPPAndPcMarker () |
|
void | PopAndUntagPP () |
|
void | tst (Register rn, Operand o, OperandSize sz=kEightBytes) |
|
void | tsti (Register rn, const Immediate &imm, OperandSize sz=kEightBytes) |
|
void | LslImmediate (Register rd, Register rn, int32_t shift, OperandSize sz=kEightBytes) |
|
void | LslImmediate (Register rd, int32_t shift, OperandSize sz=kEightBytes) |
|
void | LslRegister (Register dst, Register shift) override |
|
void | LsrImmediate (Register rd, Register rn, int shift, OperandSize sz=kEightBytes) |
|
void | LsrImmediate (Register rd, int32_t shift) override |
|
void | AsrImmediate (Register rd, Register rn, int shift, OperandSize sz=kEightBytes) |
|
void | VRecps (VRegister vd, VRegister vn) |
|
void | VRSqrts (VRegister vd, VRegister vn) |
|
void | SmiUntag (Register reg) |
|
void | SmiUntag (Register dst, Register src) |
|
void | SmiTag (Register reg) override |
|
void | SmiTag (Register dst, Register src) |
|
void | SmiTagAndBranchIfOverflow (Register reg, Label *label) |
|
void | LoadInt32FromBoxOrSmi (Register result, Register value) override |
|
void | LoadInt64FromBoxOrSmi (Register result, Register value) override |
|
void | BranchIfNotSmi (Register reg, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfSmi (Register reg, Label *label, JumpDistance distance=kFarJump) override |
|
void | BranchLink (const Code &code, ObjectPoolBuilderEntry::Patchability patchable=ObjectPoolBuilderEntry::kNotPatchable, CodeEntryKind entry_kind=CodeEntryKind::kNormal, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | BranchLinkPatchable (const Code &code, CodeEntryKind entry_kind=CodeEntryKind::kNormal, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | BranchLinkWithEquivalence (const Code &code, const Object &equivalence, CodeEntryKind entry_kind=CodeEntryKind::kNormal) |
|
void | Call (Address target) |
|
void | Call (const Code &code) |
|
void | CallCFunction (Address target) |
|
void | CallCFunction (Register target) |
|
void | AddImmediate (Register dest, int64_t imm) |
|
void | AddImmediate (Register dest, Register rn, int64_t imm, OperandSize sz=kEightBytes) |
|
void | AddImmediateSetFlags (Register dest, Register rn, int64_t imm, OperandSize sz=kEightBytes) |
|
void | AddRegisters (Register dest, Register src) |
|
void | AddScaled (Register dest, Register base, Register index, ScaleFactor scale, int32_t disp) override |
|
void | SubImmediateSetFlags (Register dest, Register rn, int64_t imm, OperandSize sz=kEightBytes) |
|
void | SubRegisters (Register dest, Register src) |
|
void | MulImmediate (Register reg, int64_t imm, OperandSize width=kEightBytes) override |
|
void | AndImmediate (Register rd, Register rn, int64_t imm, OperandSize sz=kEightBytes) |
|
void | AndImmediate (Register rd, int64_t imm) override |
|
void | AndRegisters (Register dst, Register src1, Register src2=kNoRegister) override |
|
void | OrImmediate (Register rd, Register rn, int64_t imm, OperandSize sz=kEightBytes) |
|
void | OrImmediate (Register rd, int64_t imm) |
|
void | XorImmediate (Register rd, Register rn, int64_t imm, OperandSize sz=kEightBytes) |
|
void | TestImmediate (Register rn, int64_t imm, OperandSize sz=kEightBytes) |
|
void | CompareImmediate (Register rn, int64_t imm, OperandSize sz=kEightBytes) override |
|
Address | PrepareLargeOffset (Register base, int32_t offset, OperandSize sz, Address::AddressType addr_type) |
|
void | Load (Register dest, const Address &address, OperandSize sz=kEightBytes) override |
|
void | LoadIndexedPayload (Register dest, Register base, int32_t payload_offset, Register index, ScaleFactor scale, OperandSize sz=kEightBytes) override |
|
void | LoadSFromOffset (VRegister dest, Register base, int32_t offset) |
|
void | LoadDFromOffset (VRegister dest, Register base, int32_t offset) |
|
void | LoadDFieldFromOffset (VRegister dest, Register base, int32_t offset) |
|
void | LoadQFromOffset (VRegister dest, Register base, int32_t offset) |
|
void | LoadQFieldFromOffset (VRegister dest, Register base, int32_t offset) |
|
void | LoadFromStack (Register dst, intptr_t depth) |
|
void | StoreToStack (Register src, intptr_t depth) |
|
void | CompareToStack (Register src, intptr_t depth) |
|
void | Store (Register src, const Address &address, OperandSize sz=kEightBytes) override |
|
void | StoreZero (const Address &address, Register temp=kNoRegister) |
|
void | StorePairToOffset (Register low, Register high, Register base, int32_t offset, OperandSize sz=kEightBytes) |
|
void | StoreSToOffset (VRegister src, Register base, int32_t offset) |
|
void | StoreDToOffset (VRegister src, Register base, int32_t offset) |
|
void | StoreDFieldToOffset (VRegister src, Register base, int32_t offset) |
|
void | StoreQToOffset (VRegister src, Register base, int32_t offset) |
|
void | StoreQFieldToOffset (VRegister src, Register base, int32_t offset) |
|
void | LoadUnboxedDouble (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedDouble (FpuRegister src, Register base, int32_t offset) |
|
void | MoveUnboxedDouble (FpuRegister dst, FpuRegister src) |
|
void | LoadUnboxedSimd128 (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedSimd128 (FpuRegister src, Register base, int32_t offset) |
|
void | MoveUnboxedSimd128 (FpuRegister dst, FpuRegister src) |
|
void | StoreBarrier (Register object, Register value, CanBeSmi can_value_be_smi, Register scratch) override |
|
void | ArrayStoreBarrier (Register object, Register slot, Register value, CanBeSmi can_value_be_smi, Register scratch) override |
|
void | VerifyStoreNeedsNoWriteBarrier (Register object, Register value) override |
|
void | StoreObjectIntoObjectNoBarrier (Register object, const Address &address, const Object &value, MemoryOrder memory_order=kRelaxedNonAtomic, OperandSize size=kWordBytes) override |
|
void | StoreInternalPointer (Register object, const Address &dest, Register value) |
|
void | LoadPoolPointer (Register pp=PP) |
|
bool | constant_pool_allowed () const |
|
void | set_constant_pool_allowed (bool b) |
|
compiler::LRState | lr_state () const |
|
void | set_lr_state (compiler::LRState state) |
|
bool | CanLoadFromObjectPool (const Object &object) const |
|
void | LoadNativeEntry (Register dst, const ExternalLabel *label, ObjectPoolBuilderEntry::Patchability patchable) |
|
void | LoadIsolate (Register dst) |
|
void | LoadIsolateGroup (Register dst) |
|
void | LoadObject (Register dst, const Object &obj) |
|
void | LoadUniqueObject (Register dst, const Object &obj) |
|
void | LoadImmediate (Register reg, int64_t imm) override |
|
void | LoadImmediate (Register reg, Immediate imm) |
|
void | LoadSImmediate (VRegister reg, float immd) |
|
void | LoadDImmediate (VRegister reg, double immd) |
|
void | LoadQImmediate (VRegister reg, simd128_value_t immq) |
|
void | LoadWordFromPoolIndex (Register dst, intptr_t index, Register pp=PP) |
|
void | StoreWordToPoolIndex (Register src, intptr_t index, Register pp=PP) |
|
void | LoadDoubleWordFromPoolIndex (Register lower, Register upper, intptr_t index) |
|
void | PushObject (const Object &object) |
|
void | PushImmediate (int64_t immediate) |
|
void | PushImmediate (Immediate immediate) |
|
void | CompareObject (Register reg, const Object &object) |
|
void | ExtractClassIdFromTags (Register result, Register tags) |
|
void | ExtractInstanceSizeFromTags (Register result, Register tags) |
|
void | RangeCheck (Register value, Register temp, intptr_t low, intptr_t high, RangeCheckCondition condition, Label *target) override |
|
void | LoadClassId (Register result, Register object) |
|
void | LoadClassById (Register result, Register class_id) |
|
void | CompareClassId (Register object, intptr_t class_id, Register scratch=kNoRegister) |
|
void | LoadClassIdMayBeSmi (Register result, Register object) |
|
void | LoadTaggedClassIdMayBeSmi (Register result, Register object) |
|
void | EnsureHasClassIdInDEBUG (intptr_t cid, Register src, Register scratch, bool can_be_null=false) override |
|
void | SetupDartSP (intptr_t reserve=4096) |
|
void | SetupCSPFromThread (Register thr) |
|
void | RestoreCSP () |
|
void | ArithmeticShiftRightImmediate (Register reg, intptr_t shift) override |
|
void | CompareWords (Register reg1, Register reg2, intptr_t offset, Register count, Register temp, Label *equals) override |
|
void | EnterFrame (intptr_t frame_size) |
|
void | LeaveFrame () |
|
void | Ret () |
|
void | SetReturnAddress (Register value) |
|
void | TransitionGeneratedToNative (Register destination_address, Register new_exit_frame, Register new_exit_through_ffi, bool enter_safepoint) |
|
void | TransitionNativeToGenerated (Register scratch, bool exit_safepoint, bool ignore_unwind_in_progress=false, bool set_tag=true) |
|
void | EnterFullSafepoint (Register scratch) |
|
void | ExitFullSafepoint (Register scratch, bool ignore_unwind_in_progress) |
|
void | CheckCodePointer () |
|
void | RestoreCodePointer () |
|
void | RestorePinnedRegisters () |
|
void | SetupGlobalPoolAndDispatchTable () |
|
void | EnterDartFrame (intptr_t frame_size, Register new_pp=kNoRegister) |
|
void | EnterOsrFrame (intptr_t extra_size, Register new_pp=kNoRegister) |
|
void | LeaveDartFrame () |
|
void | CallRuntime (const RuntimeEntry &entry, intptr_t argument_count) |
|
void | EnterStubFrame () |
|
void | LeaveStubFrame () |
|
void | EnterCFrame (intptr_t frame_space) |
|
void | LeaveCFrame () |
|
void | MonomorphicCheckedEntryJIT () |
|
void | MonomorphicCheckedEntryAOT () |
|
void | BranchOnMonomorphicCheckedEntryJIT (Label *label) |
|
void | CombineHashes (Register hash, Register other) override |
|
void | FinalizeHashForSize (intptr_t bit_size, Register hash, Register scratch=TMP) override |
|
void | MaybeTraceAllocation (intptr_t cid, Label *trace, Register temp_reg, JumpDistance distance=JumpDistance::kFarJump) |
|
void | MaybeTraceAllocation (Register cid, Label *trace, Register temp_reg, JumpDistance distance=JumpDistance::kFarJump) |
|
void | TryAllocateObject (intptr_t cid, intptr_t instance_size, Label *failure, JumpDistance distance, Register instance_reg, Register top_reg) override |
|
void | TryAllocateArray (intptr_t cid, intptr_t instance_size, Label *failure, Register instance, Register end_address, Register temp1, Register temp2) |
|
void | CheckAllocationCanary (Register top, Register tmp=TMP) |
|
void | WriteAllocationCanary (Register top) |
|
void | CopyMemoryWords (Register src, Register dst, Register size, Register temp) |
|
void | GenerateUnRelocatedPcRelativeCall (intptr_t offset_into_target=0) |
|
void | GenerateUnRelocatedPcRelativeTailCall (intptr_t offset_into_target=0) |
|
Address | ElementAddressForIntIndex (bool is_external, intptr_t cid, intptr_t index_scale, Register array, intptr_t index) const |
|
void | ComputeElementAddressForIntIndex (Register address, bool is_external, intptr_t cid, intptr_t index_scale, Register array, intptr_t index) |
|
Address | ElementAddressForRegIndex (bool is_external, intptr_t cid, intptr_t index_scale, bool index_unboxed, Register array, Register index, Register temp) |
|
Address | ElementAddressForRegIndexWithSize (bool is_external, intptr_t cid, OperandSize size, intptr_t index_scale, bool index_unboxed, Register array, Register index, Register temp) |
|
void | ComputeElementAddressForRegIndex (Register address, bool is_external, intptr_t cid, intptr_t index_scale, bool index_unboxed, Register array, Register index) |
|
void | LoadStaticFieldAddress (Register address, Register field, Register scratch, bool is_shared) |
|
void | LoadFieldAddressForRegOffset (Register address, Register instance, Register offset_in_words_as_smi) override |
|
void | LoadFieldAddressForOffset (Register address, Register instance, int32_t offset) override |
|
| Assembler (ObjectPoolBuilder *object_pool_builder, intptr_t far_branch_level=0) |
|
| ~Assembler () |
|
void | call (Register reg) |
|
void | call (const Address &address) |
|
void | call (Label *label) |
|
void | call (const ExternalLabel *label) |
|
void | pushl (Register reg) |
|
void | pushl (const Address &address) |
|
void | pushl (const Immediate &imm) |
|
void | PushImmediate (int32_t value) |
|
void | popl (Register reg) |
|
void | popl (const Address &address) |
|
void | pushal () |
|
void | popal () |
|
void | setcc (Condition condition, ByteRegister dst) |
|
void | movl (Register dst, const Immediate &src) |
|
void | movl (Register dst, Register src) |
|
void | movl (Register dst, const Address &src) |
|
void | movl (const Address &dst, Register src) |
|
void | movl (const Address &dst, const Immediate &imm) |
|
void | movzxb (Register dst, ByteRegister src) |
|
void | movzxb (Register dst, const Address &src) |
|
void | movsxb (Register dst, ByteRegister src) |
|
void | movsxb (Register dst, const Address &src) |
|
void | movb (Register dst, const Address &src) |
|
void | movb (const Address &dst, Register src) |
|
void | movb (const Address &dst, ByteRegister src) |
|
void | movb (const Address &dst, const Immediate &imm) |
|
void | movzxw (Register dst, Register src) |
|
void | movzxw (Register dst, const Address &src) |
|
void | movsxw (Register dst, Register src) |
|
void | movsxw (Register dst, const Address &src) |
|
void | movw (Register dst, const Address &src) |
|
void | movw (const Address &dst, Register src) |
|
void | movw (const Address &dst, const Immediate &imm) |
|
void | leal (Register dst, const Address &src) |
|
void | cmovno (Register dst, Register src) |
|
void | cmove (Register dst, Register src) |
|
void | cmovne (Register dst, Register src) |
|
void | cmovs (Register dst, Register src) |
|
void | cmovns (Register dst, Register src) |
|
void | cmovgel (Register dst, Register src) |
|
void | cmovlessl (Register dst, Register src) |
|
void | rep_movsb () |
|
void | rep_movsw () |
|
void | rep_movsd () |
|
void | movss (XmmRegister dst, const Address &src) |
|
void | movss (const Address &dst, XmmRegister src) |
|
void | movss (XmmRegister dst, XmmRegister src) |
|
void | movd (XmmRegister dst, Register src) |
|
void | movd (Register dst, XmmRegister src) |
|
void | movq (const Address &dst, XmmRegister src) |
|
void | movq (XmmRegister dst, const Address &src) |
|
void | addss (XmmRegister dst, XmmRegister src) |
|
void | addss (XmmRegister dst, const Address &src) |
|
void | subss (XmmRegister dst, XmmRegister src) |
|
void | subss (XmmRegister dst, const Address &src) |
|
void | mulss (XmmRegister dst, XmmRegister src) |
|
void | mulss (XmmRegister dst, const Address &src) |
|
void | divss (XmmRegister dst, XmmRegister src) |
|
void | divss (XmmRegister dst, const Address &src) |
|
void | movsd (XmmRegister dst, const Address &src) |
|
void | movsd (const Address &dst, XmmRegister src) |
|
void | movsd (XmmRegister dst, XmmRegister src) |
|
void | movaps (XmmRegister dst, XmmRegister src) |
|
void | movups (XmmRegister dst, const Address &src) |
|
void | movups (const Address &dst, XmmRegister src) |
|
void | addsd (XmmRegister dst, XmmRegister src) |
|
void | addsd (XmmRegister dst, const Address &src) |
|
void | subsd (XmmRegister dst, XmmRegister src) |
|
void | subsd (XmmRegister dst, const Address &src) |
|
void | mulsd (XmmRegister dst, XmmRegister src) |
|
void | mulsd (XmmRegister dst, const Address &src) |
|
void | divsd (XmmRegister dst, XmmRegister src) |
|
void | divsd (XmmRegister dst, const Address &src) |
|
void | addpl (XmmRegister dst, XmmRegister src) |
|
void | subpl (XmmRegister dst, XmmRegister src) |
|
void | addps (XmmRegister dst, XmmRegister src) |
|
void | subps (XmmRegister dst, XmmRegister src) |
|
void | divps (XmmRegister dst, XmmRegister src) |
|
void | mulps (XmmRegister dst, XmmRegister src) |
|
void | minps (XmmRegister dst, XmmRegister src) |
|
void | maxps (XmmRegister dst, XmmRegister src) |
|
void | andps (XmmRegister dst, XmmRegister src) |
|
void | andps (XmmRegister dst, const Address &src) |
|
void | orps (XmmRegister dst, XmmRegister src) |
|
void | notps (XmmRegister dst) |
|
void | negateps (XmmRegister dst) |
|
void | absps (XmmRegister dst) |
|
void | zerowps (XmmRegister dst) |
|
void | cmppseq (XmmRegister dst, XmmRegister src) |
|
void | cmppsneq (XmmRegister dst, XmmRegister src) |
|
void | cmppslt (XmmRegister dst, XmmRegister src) |
|
void | cmppsle (XmmRegister dst, XmmRegister src) |
|
void | cmppsnlt (XmmRegister dst, XmmRegister src) |
|
void | cmppsnle (XmmRegister dst, XmmRegister src) |
|
void | sqrtps (XmmRegister dst) |
|
void | rsqrtps (XmmRegister dst) |
|
void | reciprocalps (XmmRegister dst) |
|
void | movhlps (XmmRegister dst, XmmRegister src) |
|
void | movlhps (XmmRegister dst, XmmRegister src) |
|
void | unpcklps (XmmRegister dst, XmmRegister src) |
|
void | unpckhps (XmmRegister dst, XmmRegister src) |
|
void | unpcklpd (XmmRegister dst, XmmRegister src) |
|
void | unpckhpd (XmmRegister dst, XmmRegister src) |
|
void | set1ps (XmmRegister dst, Register tmp, const Immediate &imm) |
|
void | shufps (XmmRegister dst, XmmRegister src, const Immediate &mask) |
|
void | addpd (XmmRegister dst, XmmRegister src) |
|
void | negatepd (XmmRegister dst) |
|
void | subpd (XmmRegister dst, XmmRegister src) |
|
void | mulpd (XmmRegister dst, XmmRegister src) |
|
void | divpd (XmmRegister dst, XmmRegister src) |
|
void | abspd (XmmRegister dst) |
|
void | minpd (XmmRegister dst, XmmRegister src) |
|
void | maxpd (XmmRegister dst, XmmRegister src) |
|
void | sqrtpd (XmmRegister dst) |
|
void | cvtps2pd (XmmRegister dst, XmmRegister src) |
|
void | cvtpd2ps (XmmRegister dst, XmmRegister src) |
|
void | shufpd (XmmRegister dst, XmmRegister src, const Immediate &mask) |
|
void | cvtsi2ss (XmmRegister dst, Register src) |
|
void | cvtsi2sd (XmmRegister dst, Register src) |
|
void | cvtss2si (Register dst, XmmRegister src) |
|
void | cvtss2sd (XmmRegister dst, XmmRegister src) |
|
void | cvtsd2si (Register dst, XmmRegister src) |
|
void | cvtsd2ss (XmmRegister dst, XmmRegister src) |
|
void | cvttss2si (Register dst, XmmRegister src) |
|
void | cvttsd2si (Register dst, XmmRegister src) |
|
void | cvtdq2pd (XmmRegister dst, XmmRegister src) |
|
void | comiss (XmmRegister a, XmmRegister b) |
|
void | comisd (XmmRegister a, XmmRegister b) |
|
void | movmskpd (Register dst, XmmRegister src) |
|
void | movmskps (Register dst, XmmRegister src) |
|
void | pmovmskb (Register dst, XmmRegister src) |
|
void | sqrtsd (XmmRegister dst, XmmRegister src) |
|
void | sqrtss (XmmRegister dst, XmmRegister src) |
|
void | xorpd (XmmRegister dst, const Address &src) |
|
void | xorpd (XmmRegister dst, XmmRegister src) |
|
void | xorps (XmmRegister dst, const Address &src) |
|
void | xorps (XmmRegister dst, XmmRegister src) |
|
void | andpd (XmmRegister dst, const Address &src) |
|
void | andpd (XmmRegister dst, XmmRegister src) |
|
void | orpd (XmmRegister dst, XmmRegister src) |
|
void | pextrd (Register dst, XmmRegister src, const Immediate &imm) |
|
void | pmovsxdq (XmmRegister dst, XmmRegister src) |
|
void | pcmpeqq (XmmRegister dst, XmmRegister src) |
|
void | pxor (XmmRegister dst, XmmRegister src) |
|
void | roundsd (XmmRegister dst, XmmRegister src, RoundingMode mode) |
|
void | flds (const Address &src) |
|
void | fstps (const Address &dst) |
|
void | fldl (const Address &src) |
|
void | fstpl (const Address &dst) |
|
void | fnstcw (const Address &dst) |
|
void | fldcw (const Address &src) |
|
void | fistpl (const Address &dst) |
|
void | fistps (const Address &dst) |
|
void | fildl (const Address &src) |
|
void | filds (const Address &src) |
|
void | fincstp () |
|
void | ffree (intptr_t value) |
|
void | fsin () |
|
void | fcos () |
|
void | fsincos () |
|
void | fptan () |
|
void | xchgl (Register dst, Register src) |
|
void | cmpw (const Address &address, const Immediate &imm) |
|
void | cmpb (const Address &address, const Immediate &imm) |
|
void | testl (Register reg1, Register reg2) |
|
void | testl (Register reg, const Immediate &imm) |
|
void | testl (const Address &address, const Immediate &imm) |
|
void | testl (const Address &address, Register reg) |
|
void | testb (const Address &address, const Immediate &imm) |
|
void | testb (const Address &address, ByteRegister reg) |
|
| ALU_OPS (DECLARE_ALU) |
|
void | cdq () |
|
void | idivl (Register reg) |
|
void | divl (Register reg) |
|
void | imull (Register dst, Register src) |
|
void | imull (Register reg, const Immediate &imm) |
|
void | imull (Register reg, const Address &address) |
|
void | imull (Register reg) |
|
void | imull (const Address &address) |
|
void | mull (Register reg) |
|
void | mull (const Address &address) |
|
void | incl (Register reg) |
|
void | incl (const Address &address) |
|
void | decl (Register reg) |
|
void | decl (const Address &address) |
|
void | shll (Register reg, const Immediate &imm) |
|
void | shll (Register operand, Register shifter) |
|
void | shll (const Address &operand, Register shifter) |
|
void | shrl (Register reg, const Immediate &imm) |
|
void | shrl (Register operand, Register shifter) |
|
void | sarl (Register reg, const Immediate &imm) |
|
void | sarl (Register operand, Register shifter) |
|
void | sarl (const Address &address, Register shifter) |
|
void | shldl (Register dst, Register src, Register shifter) |
|
void | shldl (Register dst, Register src, const Immediate &imm) |
|
void | shldl (const Address &operand, Register src, Register shifter) |
|
void | shrdl (Register dst, Register src, Register shifter) |
|
void | shrdl (Register dst, Register src, const Immediate &imm) |
|
void | shrdl (const Address &dst, Register src, Register shifter) |
|
void | negl (Register reg) |
|
void | notl (Register reg) |
|
void | bsfl (Register dst, Register src) |
|
void | bsrl (Register dst, Register src) |
|
void | popcntl (Register dst, Register src) |
|
void | lzcntl (Register dst, Register src) |
|
void | bt (Register base, Register offset) |
|
void | bt (Register base, int bit) |
|
void | enter (const Immediate &imm) |
|
void | leave () |
|
void | ret () |
|
void | ret (const Immediate &imm) |
|
void | nop (int size=1) |
|
void | int3 () |
|
void | hlt () |
|
void | j (Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | j (Condition condition, const ExternalLabel *label) |
|
void | jmp (Register reg) |
|
void | jmp (const Address &address) |
|
void | jmp (Label *label, JumpDistance distance=kFarJump) |
|
void | jmp (const ExternalLabel *label) |
|
void | lock () |
|
void | cmpxchgl (const Address &address, Register reg) |
|
void | cld () |
|
void | std () |
|
void | cpuid () |
|
void | Ret () |
|
void | SetReturnAddress (Register value) |
|
void | PushValueAtOffset (Register base, int32_t offset) |
|
void | CompareRegisters (Register a, Register b) |
|
void | CompareObjectRegisters (Register a, Register b) |
|
void | BranchIf (Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfZero (Register src, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfBit (Register rn, intptr_t bit_number, Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | Load (Register dst, const Address &address, OperandSize sz=kFourBytes) override |
|
void | LoadIndexedPayload (Register dst, Register base, int32_t payload_offset, Register index, ScaleFactor scale, OperandSize sz=kFourBytes) override |
|
void | Store (Register src, const Address &address, OperandSize sz=kFourBytes) override |
|
void | Store (const Object &value, const Address &address) |
|
void | StoreZero (const Address &address, Register temp=kNoRegister) |
|
void | LoadFromStack (Register dst, intptr_t depth) |
|
void | StoreToStack (Register src, intptr_t depth) |
|
void | CompareToStack (Register src, intptr_t depth) |
|
void | LoadMemoryValue (Register dst, Register base, int32_t offset) |
|
void | StoreMemoryValue (Register src, Register base, int32_t offset) |
|
void | LoadUnboxedDouble (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedDouble (FpuRegister src, Register base, int32_t offset) |
|
void | MoveUnboxedDouble (FpuRegister dst, FpuRegister src) |
|
void | LoadUnboxedSimd128 (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedSimd128 (FpuRegister dst, Register base, int32_t offset) |
|
void | MoveUnboxedSimd128 (FpuRegister dst, FpuRegister src) |
|
void | LoadAcquire (Register dst, const Address &address, OperandSize size=kFourBytes) override |
|
void | StoreRelease (Register src, const Address &address, OperandSize size=kFourBytes) override |
|
void | CompareWithMemoryValue (Register value, Address address, OperandSize size=kFourBytes) override |
|
void | ExtendValue (Register to, Register from, OperandSize sz) override |
|
void | PushRegister (Register r) |
|
void | PopRegister (Register r) |
|
void | PushRegisterPair (Register r0, Register r1) |
|
void | PopRegisterPair (Register r0, Register r1) |
|
void | PushRegistersInOrder (std::initializer_list< Register > regs) |
|
void | AddImmediate (Register reg, const Immediate &imm) |
|
void | AddImmediate (Register reg, int32_t value) |
|
void | AddImmediate (Register dest, Register src, int32_t value) |
|
void | AddRegisters (Register dest, Register src) |
|
void | AddScaled (Register dest, Register base, Register index, ScaleFactor scale, int32_t disp) override |
|
void | SubImmediate (Register reg, const Immediate &imm) |
|
void | SubRegisters (Register dest, Register src) |
|
void | MulImmediate (Register reg, int32_t imm, OperandSize width=kFourBytes) override |
|
void | AndImmediate (Register dst, int32_t value) override |
|
void | AndImmediate (Register dst, Register src, int32_t value) |
|
void | AndRegisters (Register dst, Register src1, Register src2=kNoRegister) override |
|
void | OrImmediate (Register dst, int32_t value) |
|
void | LslImmediate (Register dst, int32_t shift) |
|
void | LslRegister (Register dst, Register shift) override |
|
void | LsrImmediate (Register dst, int32_t shift) override |
|
void | CompareImmediate (Register reg, int32_t immediate, OperandSize width=kFourBytes) override |
|
void | LoadImmediate (Register reg, int32_t immediate) override |
|
void | LoadImmediate (Register reg, Immediate immediate) |
|
void | LoadSImmediate (XmmRegister dst, float value) |
|
void | LoadDImmediate (XmmRegister dst, double value) |
|
void | LoadQImmediate (XmmRegister dst, simd128_value_t value) |
|
void | Drop (intptr_t stack_elements) |
|
void | LoadIsolate (Register dst) |
|
void | LoadIsolateGroup (Register dst) |
|
void | LoadUniqueObject (Register dst, const Object &object) |
|
void | LoadObject (Register dst, const Object &object, bool movable_referent=false) |
|
void | LoadObjectSafely (Register dst, const Object &object) |
|
void | PushObject (const Object &object) |
|
void | CompareObject (Register reg, const Object &object) |
|
void | StoreObjectIntoObjectNoBarrier (Register object, const Address &dest, const Object &value, MemoryOrder memory_order=kRelaxedNonAtomic, OperandSize size=kFourBytes) override |
|
void | StoreBarrier (Register object, Register value, CanBeSmi can_be_smi, Register scratch) override |
|
void | ArrayStoreBarrier (Register object, Register slot, Register value, CanBeSmi can_be_smi, Register scratch) override |
|
void | VerifyStoreNeedsNoWriteBarrier (Register object, Register value) override |
|
void | StoreInternalPointer (Register object, const Address &dest, Register value) |
|
void | StoreIntoSmiField (const Address &dest, Register value) |
|
void | ZeroInitSmiField (const Address &dest) |
|
void | IncrementSmiField (const Address &dest, int32_t increment) |
|
void | DoubleNegate (XmmRegister d) |
|
void | FloatNegate (XmmRegister f) |
|
void | DoubleAbs (XmmRegister reg) |
|
void | LockCmpxchgl (const Address &address, Register reg) |
|
void | EnterFrame (intptr_t frame_space) |
|
void | LeaveFrame () |
|
void | ReserveAlignedFrameSpace (intptr_t frame_space) |
|
void | MonomorphicCheckedEntryJIT () |
|
void | MonomorphicCheckedEntryAOT () |
|
void | BranchOnMonomorphicCheckedEntryJIT (Label *label) |
|
void | CombineHashes (Register dst, Register other) override |
|
void | FinalizeHashForSize (intptr_t bit_size, Register dst, Register scratch=kNoRegister) override |
|
void | EmitEntryFrameVerification () |
|
void | TransitionGeneratedToNative (Register destination_address, Register new_exit_frame, Register new_exit_through_ffi, bool enter_safepoint) |
|
void | TransitionNativeToGenerated (Register scratch, bool exit_safepoint, bool ignore_unwind_in_progress=false, bool set_tag=true) |
|
void | EnterFullSafepoint (Register scratch) |
|
void | ExitFullSafepoint (Register scratch, bool ignore_unwind_in_progress) |
|
void | CallRuntime (const RuntimeEntry &entry, intptr_t argument_count) |
|
void | Call (const Code &code, bool movable_target=false, CodeEntryKind entry_kind=CodeEntryKind::kNormal) |
|
void | CallVmStub (const Code &code) |
|
void | Call (Address target) |
|
void | CallCFunction (Address target) |
|
void | CallCFunction (Register target) |
|
void | Jmp (const Code &code) |
|
void | J (Condition condition, const Code &code) |
|
void | RangeCheck (Register value, Register temp, intptr_t low, intptr_t high, RangeCheckCondition condition, Label *target) override |
|
void | LoadClassId (Register result, Register object) |
|
void | LoadClassById (Register result, Register class_id) |
|
void | CompareClassId (Register object, intptr_t class_id, Register scratch) |
|
void | LoadClassIdMayBeSmi (Register result, Register object) |
|
void | LoadTaggedClassIdMayBeSmi (Register result, Register object) |
|
void | EnsureHasClassIdInDEBUG (intptr_t cid, Register src, Register scratch, bool can_be_null=false) override |
|
void | SmiUntagOrCheckClass (Register object, intptr_t class_id, Register scratch, Label *is_smi) |
|
void | LoadStaticFieldAddress (Register address, Register field, Register scratch, bool is_shared) |
|
void | LoadFieldAddressForRegOffset (Register address, Register instance, Register offset_in_words_as_smi) override |
|
void | LoadFieldAddressForOffset (Register address, Register instance, int32_t offset) override |
|
void | SmiTag (Register reg) override |
|
void | SmiUntag (Register reg) |
|
void | LoadInt32FromBoxOrSmi (Register result, Register value) override |
|
void | BranchIfNotSmi (Register reg, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfSmi (Register reg, Label *label, JumpDistance distance=kFarJump) override |
|
void | ArithmeticShiftRightImmediate (Register reg, intptr_t shift) override |
|
void | CompareWords (Register reg1, Register reg2, intptr_t offset, Register count, Register temp, Label *equals) override |
|
void | Align (intptr_t alignment, intptr_t offset) |
|
void | Bind (Label *label) override |
|
void | Jump (Label *label, JumpDistance distance=kFarJump) |
|
void | Jump (Register target) |
|
void | MoveMemoryToMemory (Address to, Address from, Register tmp) |
|
void | EnterDartFrame (intptr_t frame_size) |
|
void | LeaveDartFrame () |
|
void | EnterOsrFrame (intptr_t extra_size) |
|
void | EnterStubFrame () |
|
void | LeaveStubFrame () |
|
void | EnterCFrame (intptr_t frame_space) |
|
void | LeaveCFrame () |
|
void | MaybeTraceAllocation (intptr_t cid, Label *trace, Register temp_reg, JumpDistance distance=JumpDistance::kFarJump) |
|
void | TryAllocateObject (intptr_t cid, intptr_t instance_size, Label *failure, JumpDistance distance, Register instance_reg, Register temp_reg) override |
|
void | TryAllocateArray (intptr_t cid, intptr_t instance_size, Label *failure, JumpDistance distance, Register instance, Register end_address, Register temp) |
|
void | CheckAllocationCanary (Register top) |
|
void | WriteAllocationCanary (Register top) |
|
void | CopyMemoryWords (Register src, Register dst, Register size, Register temp=kNoRegister) |
|
void | Breakpoint () override |
|
Object & | GetSelfHandle () const |
|
void | PushCodeObject () |
|
| Assembler (ObjectPoolBuilder *object_pool_builder, intptr_t far_branch_level=0) |
|
| ~Assembler () |
|
void | PushRegister (Register r) |
|
void | PopRegister (Register r) |
|
void | PushRegisterPair (Register r0, Register r1) |
|
void | PopRegisterPair (Register r0, Register r1) |
|
void | PushRegisters (const RegisterSet ®isters) |
|
void | PopRegisters (const RegisterSet ®isters) |
|
void | PushRegistersInOrder (std::initializer_list< Register > regs) |
|
void | PushValueAtOffset (Register base, int32_t offset) |
|
void | PushNativeCalleeSavedRegisters () |
|
void | PopNativeCalleeSavedRegisters () |
|
void | ExtendValue (Register rd, Register rn, OperandSize sz) override |
|
void | ExtendAndSmiTagValue (Register rd, Register rn, OperandSize sz=kWordBytes) override |
|
void | Drop (intptr_t stack_elements) |
|
void | Bind (Label *label) override |
|
void | Jump (Label *label, JumpDistance distance=kFarJump) |
|
void | Jump (Register target) |
|
void | Jump (const Address &address) |
|
void | LoadMemoryValue (Register dst, Register base, int32_t offset) |
|
void | StoreMemoryValue (Register src, Register base, int32_t offset) |
|
void | TsanLoadAcquire (Register addr) |
|
void | TsanStoreRelease (Register addr) |
|
void | LoadAcquire (Register dst, const Address &address, OperandSize size=kWordBytes) override |
|
void | StoreRelease (Register src, const Address &address, OperandSize size=kWordBytes) override |
|
void | CompareWithMemoryValue (Register value, Address address, OperandSize size=kWordBytes) override |
|
void | Breakpoint () override |
|
void | SetPrologueOffset () |
|
void | ReserveAlignedFrameSpace (intptr_t frame_space) |
|
void | EmitEntryFrameVerification () |
|
void | CompareRegisters (Register rn, Register rm) |
|
void | CompareObjectRegisters (Register rn, Register rm) |
|
void | TestRegisters (Register rn, Register rm) |
|
void | BranchIf (Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfZero (Register rn, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfBit (Register rn, intptr_t bit_number, Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | SetIf (Condition condition, Register rd) |
|
void | SmiUntag (Register reg) |
|
void | SmiUntag (Register dst, Register src) |
|
void | SmiTag (Register reg) override |
|
void | SmiTag (Register dst, Register src) |
|
void | LoadInt32FromBoxOrSmi (Register result, Register value) override |
|
void | LoadInt64FromBoxOrSmi (Register result, Register value) override |
|
void | BranchIfNotSmi (Register reg, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfSmi (Register reg, Label *label, JumpDistance distance=kFarJump) override |
|
void | ArithmeticShiftRightImmediate (Register reg, intptr_t shift) override |
|
void | CompareWords (Register reg1, Register reg2, intptr_t offset, Register count, Register temp, Label *equals) override |
|
void | JumpAndLink (const Code &code, ObjectPoolBuilderEntry::Patchability patchable=ObjectPoolBuilderEntry::kNotPatchable, CodeEntryKind entry_kind=CodeEntryKind::kNormal, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | JumpAndLinkPatchable (const Code &code, CodeEntryKind entry_kind=CodeEntryKind::kNormal, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | JumpAndLinkWithEquivalence (const Code &code, const Object &equivalence, CodeEntryKind entry_kind=CodeEntryKind::kNormal) |
|
void | Call (Address target) |
|
void | Call (Register target) |
|
void | Call (const Code &code) |
|
void | CallCFunction (Address target) |
|
void | CallCFunction (Register target) |
|
void | AddImmediate (Register dest, intx_t imm) |
|
void | MulImmediate (Register dest, intx_t imm, OperandSize width=kWordBytes) override |
|
void | AddRegisters (Register dest, Register src) |
|
void | AddScaled (Register dest, Register base, Register index, ScaleFactor scale, int32_t disp) override |
|
void | AddShifted (Register dest, Register base, Register index, intx_t shift) |
|
void | SubRegisters (Register dest, Register src) |
|
void | AddImmediate (Register dest, Register rn, intx_t imm, OperandSize sz=kWordBytes) |
|
void | MulImmediate (Register dest, Register rn, intx_t imm, OperandSize width=kWordBytes) |
|
void | AndImmediate (Register rd, Register rn, intx_t imm, OperandSize sz=kWordBytes) |
|
void | AndImmediate (Register rd, intx_t imm) override |
|
void | AndRegisters (Register dst, Register src1, Register src2=kNoRegister) override |
|
void | OrImmediate (Register rd, Register rn, intx_t imm, OperandSize sz=kWordBytes) |
|
void | OrImmediate (Register rd, intx_t imm) |
|
void | XorImmediate (Register rd, Register rn, intx_t imm, OperandSize sz=kWordBytes) |
|
void | LslImmediate (Register rd, int32_t shift) |
|
void | LslRegister (Register dst, Register shift) override |
|
void | LsrImmediate (Register rd, int32_t shift) override |
|
void | TestImmediate (Register rn, intx_t imm, OperandSize sz=kWordBytes) |
|
void | CompareImmediate (Register rn, intx_t imm, OperandSize sz=kWordBytes) override |
|
Address | PrepareLargeOffset (Register base, int32_t offset) |
|
Address | PrepareAtomicOffset (Register base, int32_t offset) |
|
void | Load (Register dest, const Address &address, OperandSize sz=kWordBytes) override |
|
void | LoadIndexedPayload (Register dest, Register base, int32_t payload_offset, Register index, ScaleFactor scale, OperandSize sz=kWordBytes) override |
|
void | LoadSFromOffset (FRegister dest, Register base, int32_t offset) |
|
void | LoadDFromOffset (FRegister dest, Register base, int32_t offset) |
|
void | LoadSFieldFromOffset (FRegister dest, Register base, int32_t offset) |
|
void | LoadDFieldFromOffset (FRegister dest, Register base, int32_t offset) |
|
void | LoadFromStack (Register dst, intptr_t depth) |
|
void | StoreToStack (Register src, intptr_t depth) |
|
void | CompareToStack (Register src, intptr_t depth) |
|
void | Store (Register src, const Address &address, OperandSize sz=kWordBytes) override |
|
void | StoreZero (const Address &address, Register temp=kNoRegister) |
|
void | StoreSToOffset (FRegister src, Register base, int32_t offset) |
|
void | StoreSFieldToOffset (FRegister src, Register base, int32_t offset) |
|
void | StoreDToOffset (FRegister src, Register base, int32_t offset) |
|
void | StoreDFieldToOffset (FRegister src, Register base, int32_t offset) |
|
void | LoadUnboxedDouble (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedDouble (FpuRegister src, Register base, int32_t offset) |
|
void | MoveUnboxedDouble (FpuRegister dst, FpuRegister src) |
|
void | LoadUnboxedSimd128 (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedSimd128 (FpuRegister src, Register base, int32_t offset) |
|
void | MoveUnboxedSimd128 (FpuRegister dst, FpuRegister src) |
|
void | StoreBarrier (Register object, Register value, CanBeSmi can_value_be_smi, Register scratch) override |
|
void | ArrayStoreBarrier (Register object, Register slot, Register value, CanBeSmi can_value_be_smi, Register scratch) override |
|
void | VerifyStoreNeedsNoWriteBarrier (Register object, Register value) override |
|
void | StoreObjectIntoObjectNoBarrier (Register object, const Address &dest, const Object &value, MemoryOrder memory_order=kRelaxedNonAtomic, OperandSize size=kWordBytes) override |
|
void | StoreInternalPointer (Register object, const Address &dest, Register value) |
|
void | LoadPoolPointer (Register pp=PP) |
|
bool | constant_pool_allowed () const |
|
void | set_constant_pool_allowed (bool b) |
|
bool | CanLoadFromObjectPool (const Object &object) const |
|
void | LoadNativeEntry (Register dst, const ExternalLabel *label, ObjectPoolBuilderEntry::Patchability patchable) |
|
void | LoadIsolate (Register dst) |
|
void | LoadIsolateGroup (Register dst) |
|
void | LoadObject (Register dst, const Object &obj) |
|
void | LoadUniqueObject (Register dst, const Object &obj, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | LoadImmediate (Register reg, intx_t imm) override |
|
void | LoadSImmediate (FRegister reg, float imms) |
|
void | LoadDImmediate (FRegister reg, double immd) |
|
void | LoadQImmediate (FRegister reg, simd128_value_t immq) |
|
void | LoadWordFromPoolIndex (Register dst, intptr_t index, Register pp=PP) |
|
void | StoreWordToPoolIndex (Register src, intptr_t index, Register pp=PP) |
|
void | PushObject (const Object &object) |
|
void | PushImmediate (int64_t immediate) |
|
void | CompareObject (Register reg, const Object &object) |
|
void | ExtractClassIdFromTags (Register result, Register tags) |
|
void | ExtractInstanceSizeFromTags (Register result, Register tags) |
|
void | RangeCheck (Register value, Register temp, intptr_t low, intptr_t high, RangeCheckCondition condition, Label *target) override |
|
void | LoadClassId (Register result, Register object) |
|
void | LoadClassById (Register result, Register class_id) |
|
void | CompareClassId (Register object, intptr_t class_id, Register scratch=kNoRegister) |
|
void | LoadClassIdMayBeSmi (Register result, Register object) |
|
void | LoadTaggedClassIdMayBeSmi (Register result, Register object) |
|
void | EnsureHasClassIdInDEBUG (intptr_t cid, Register src, Register scratch, bool can_be_null=false) override |
|
void | EnterFrame (intptr_t frame_size) |
|
void | LeaveFrame () |
|
void | Ret () |
|
void | SetReturnAddress (Register value) |
|
void | TransitionGeneratedToNative (Register destination_address, Register new_exit_frame, Register new_exit_through_ffi, bool enter_safepoint) |
|
void | TransitionNativeToGenerated (Register scratch, bool exit_safepoint, bool ignore_unwind_in_progress=false, bool set_tag=true) |
|
void | EnterFullSafepoint (Register scratch) |
|
void | ExitFullSafepoint (Register scratch, bool ignore_unwind_in_progress) |
|
void | CheckFpSpDist (intptr_t fp_sp_dist) |
|
void | CheckCodePointer () |
|
void | RestoreCodePointer () |
|
void | RestorePoolPointer () |
|
void | RestorePinnedRegisters () |
|
void | SetupGlobalPoolAndDispatchTable () |
|
void | EnterDartFrame (intptr_t frame_size, Register new_pp=kNoRegister) |
|
void | EnterOsrFrame (intptr_t extra_size, Register new_pp=kNoRegister) |
|
void | LeaveDartFrame () |
|
void | LeaveDartFrame (intptr_t fp_sp_dist) |
|
void | CallRuntime (const RuntimeEntry &entry, intptr_t argument_count) |
|
void | EnterStubFrame () |
|
void | LeaveStubFrame () |
|
void | EnterCFrame (intptr_t frame_space) |
|
void | LeaveCFrame () |
|
void | MonomorphicCheckedEntryJIT () |
|
void | MonomorphicCheckedEntryAOT () |
|
void | BranchOnMonomorphicCheckedEntryJIT (Label *label) |
|
void | CombineHashes (Register dst, Register other) override |
|
void | FinalizeHashForSize (intptr_t bit_size, Register dst, Register scratch=TMP) override |
|
void | MaybeTraceAllocation (intptr_t cid, Label *trace, Register temp_reg, JumpDistance distance=JumpDistance::kFarJump) |
|
void | MaybeTraceAllocation (Register cid, Label *trace, Register temp_reg, JumpDistance distance=JumpDistance::kFarJump) |
|
void | TryAllocateObject (intptr_t cid, intptr_t instance_size, Label *failure, JumpDistance distance, Register instance_reg, Register temp_reg) override |
|
void | TryAllocateArray (intptr_t cid, intptr_t instance_size, Label *failure, Register instance, Register end_address, Register temp1, Register temp2) |
|
void | CheckAllocationCanary (Register top, Register tmp=TMP) |
|
void | WriteAllocationCanary (Register top) |
|
void | CopyMemoryWords (Register src, Register dst, Register size, Register temp) |
|
void | GenerateUnRelocatedPcRelativeCall (intptr_t offset_into_target=0) |
|
void | GenerateUnRelocatedPcRelativeTailCall (intptr_t offset_into_target=0) |
|
Address | ElementAddressForIntIndex (bool is_external, intptr_t cid, intptr_t index_scale, Register array, intptr_t index) const |
|
void | ComputeElementAddressForIntIndex (Register address, bool is_external, intptr_t cid, intptr_t index_scale, Register array, intptr_t index) |
|
Address | ElementAddressForRegIndex (bool is_external, intptr_t cid, intptr_t index_scale, bool index_unboxed, Register array, Register index, Register temp) |
|
void | ComputeElementAddressForRegIndex (Register address, bool is_external, intptr_t cid, intptr_t index_scale, bool index_unboxed, Register array, Register index) |
|
void | LoadStaticFieldAddress (Register address, Register field, Register scratch, bool is_shared) |
|
void | LoadFieldAddressForRegOffset (Register address, Register instance, Register offset_in_words_as_smi) override |
|
void | LoadFieldAddressForOffset (Register address, Register instance, int32_t offset) override |
|
void | AddImmediateBranchOverflow (Register rd, Register rs1, intx_t imm, Label *overflow) |
|
void | SubtractImmediateBranchOverflow (Register rd, Register rs1, intx_t imm, Label *overflow) |
|
void | MultiplyImmediateBranchOverflow (Register rd, Register rs1, intx_t imm, Label *overflow) |
|
void | AddBranchOverflow (Register rd, Register rs1, Register rs2, Label *overflow) |
|
void | SubtractBranchOverflow (Register rd, Register rs1, Register rs2, Label *overflow) |
|
void | MultiplyBranchOverflow (Register rd, Register rs1, Register rs2, Label *overflow) |
|
void | CountLeadingZeroes (Register rd, Register rs) |
|
| Assembler (ObjectPoolBuilder *object_pool_builder, intptr_t far_branch_level=0) |
|
| ~Assembler () |
|
void | call (Register reg) |
|
void | call (const Address &address) |
|
void | call (Label *label) |
|
void | call (const ExternalLabel *label) |
|
void | pushq (Register reg) |
|
void | pushq (const Address &address) |
|
void | pushq (const Immediate &imm) |
|
void | PushImmediate (const Immediate &imm) |
|
void | PushImmediate (int64_t value) |
|
void | popq (Register reg) |
|
void | popq (const Address &address) |
|
void | setcc (Condition condition, ByteRegister dst) |
|
void | EnterFullSafepoint () |
|
void | ExitFullSafepoint (bool ignore_unwind_in_progress) |
|
void | TransitionGeneratedToNative (Register destination_address, Register new_exit_frame, Register new_exit_through_ffi, bool enter_safepoint) |
|
void | TransitionNativeToGenerated (bool leave_safepoint, bool ignore_unwind_in_progress=false, bool set_tag=true) |
|
| XA (L, movups, 0x10, 0x0F) |
|
| AX (L, movups, 0x11, 0x0F) |
|
void | movl (Register dst, const Immediate &imm) |
|
void | movl (const Address &dst, const Immediate &imm) |
|
void | movb (const Address &dst, const Immediate &imm) |
|
void | movw (Register dst, const Address &src) |
|
void | movw (const Address &dst, const Immediate &imm) |
|
void | movq (Register dst, const Immediate &imm) |
|
void | movq (const Address &dst, const Immediate &imm) |
|
void | movq (Register dst, XmmRegister src) |
|
void | movl (Register dst, XmmRegister src) |
|
void | movss (XmmRegister dst, XmmRegister src) |
|
void | movsd (XmmRegister dst, XmmRegister src) |
|
void | movq (Register dst, Register src) |
|
void | movq (XmmRegister dst, Register src) |
|
void | movd (XmmRegister dst, Register src) |
|
void | cvtsi2sdq (XmmRegister dst, Register src) |
|
void | cvtsi2sdl (XmmRegister dst, Register src) |
|
void | cvttsd2siq (Register dst, XmmRegister src) |
|
void | cvttsd2sil (Register dst, XmmRegister src) |
|
void | movmskpd (Register dst, XmmRegister src) |
|
void | movmskps (Register dst, XmmRegister src) |
|
void | pmovmskb (Register dst, XmmRegister src) |
|
void | btl (Register dst, Register src) |
|
void | btq (Register dst, Register src) |
|
void | notps (XmmRegister dst, XmmRegister src) |
|
void | negateps (XmmRegister dst, XmmRegister src) |
|
void | absps (XmmRegister dst, XmmRegister src) |
|
void | zerowps (XmmRegister dst, XmmRegister src) |
|
void | set1ps (XmmRegister dst, Register tmp, const Immediate &imm) |
|
void | shufps (XmmRegister dst, XmmRegister src, const Immediate &mask) |
|
void | negatepd (XmmRegister dst, XmmRegister src) |
|
void | abspd (XmmRegister dst, XmmRegister src) |
|
void | shufpd (XmmRegister dst, XmmRegister src, const Immediate &mask) |
|
void | roundsd (XmmRegister dst, XmmRegister src, RoundingMode mode) |
|
void | CompareImmediate (Register reg, const Immediate &imm, OperandSize width=kEightBytes) |
|
void | CompareImmediate (const Address &address, const Immediate &imm, OperandSize width=kEightBytes) |
|
void | CompareImmediate (Register reg, int64_t immediate, OperandSize width=kEightBytes) override |
|
void | testl (Register reg, const Immediate &imm) |
|
void | testb (const Address &address, const Immediate &imm) |
|
void | testb (const Address &address, Register reg) |
|
void | testq (Register reg, const Immediate &imm) |
|
void | TestImmediate (Register dst, const Immediate &imm, OperandSize width=kEightBytes) |
|
void | AndImmediate (Register dst, const Immediate &imm) |
|
void | AndImmediate (Register dst, int64_t value) override |
|
void | AndImmediate (Register dst, Register src, int64_t value) |
|
void | AndRegisters (Register dst, Register src1, Register src2=kNoRegister) override |
|
void | OrImmediate (Register dst, const Immediate &imm) |
|
void | OrImmediate (Register dst, int64_t value) |
|
void | XorImmediate (Register dst, const Immediate &imm) |
|
void | LslImmediate (Register dst, int32_t shift) |
|
void | LslRegister (Register dst, Register shift) override |
|
void | LsrImmediate (Register dst, int32_t shift) override |
|
void | shldq (Register dst, Register src, Register shifter) |
|
void | shrdq (Register dst, Register src, Register shifter) |
|
void | cqo () |
|
void | imull (Register reg, const Immediate &imm) |
|
void | imulq (Register dst, const Immediate &imm) |
|
void | MulImmediate (Register reg, const Immediate &imm, OperandSize width=kEightBytes) |
|
void | MulImmediate (Register reg, int64_t imm, OperandSize width=kEightBytes) override |
|
void | shll (Register reg, const Immediate &imm) |
|
void | shll (Register operand, Register shifter) |
|
void | shrl (Register reg, const Immediate &imm) |
|
void | shrl (Register operand, Register shifter) |
|
void | sarl (Register reg, const Immediate &imm) |
|
void | sarl (Register operand, Register shifter) |
|
void | shldl (Register dst, Register src, const Immediate &imm) |
|
void | shlq (Register reg, const Immediate &imm) |
|
void | shlq (Register operand, Register shifter) |
|
void | shrq (Register reg, const Immediate &imm) |
|
void | shrq (Register operand, Register shifter) |
|
void | sarq (Register reg, const Immediate &imm) |
|
void | sarq (Register operand, Register shifter) |
|
void | shldq (Register dst, Register src, const Immediate &imm) |
|
void | btq (Register base, int bit) |
|
void | enter (const Immediate &imm) |
|
void | fldl (const Address &src) |
|
void | fstpl (const Address &dst) |
|
void | ffree (intptr_t value) |
|
void | nop (int size=1) |
|
void | j (Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | jmp (Register reg) |
|
void | jmp (const Address &address) |
|
void | jmp (Label *label, JumpDistance distance=kFarJump) |
|
void | jmp (const ExternalLabel *label) |
|
void | jmp (const Code &code) |
|
void | MoveMemoryToMemory (const Address &dst, const Address &src) |
|
void | Exchange (Register reg, const Address &mem) |
|
void | Exchange (const Address &mem1, const Address &mem2) |
|
void | Ret () |
|
void | SetReturnAddress (Register value) |
|
void | CompareRegisters (Register a, Register b) |
|
void | CompareObjectRegisters (Register a, Register b) |
|
void | BranchIf (Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfZero (Register src, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfBit (Register rn, intptr_t bit_number, Condition condition, Label *label, JumpDistance distance=kFarJump) |
|
void | ExtendValue (Register dst, Register src, OperandSize sz) override |
|
void | PushRegister (Register r) |
|
void | PopRegister (Register r) |
|
void | PushRegisterPair (Register r0, Register r1) |
|
void | PopRegisterPair (Register r0, Register r1) |
|
void | PushValueAtOffset (Register base, int32_t offset) |
|
void | AddImmediate (Register reg, const Immediate &imm, OperandSize width=kEightBytes) |
|
void | AddImmediate (Register reg, int64_t value, OperandSize width=kEightBytes) |
|
void | AddRegisters (Register dest, Register src) |
|
void | AddScaled (Register dest, Register base, Register index, ScaleFactor scale, int32_t disp) override |
|
void | AddImmediate (Register dest, Register src, int64_t value) |
|
void | AddImmediate (const Address &address, const Immediate &imm) |
|
void | SubImmediate (Register reg, const Immediate &imm, OperandSize width=kEightBytes) |
|
void | SubImmediate (const Address &address, const Immediate &imm) |
|
void | SubRegisters (Register dest, Register src) |
|
void | Drop (intptr_t stack_elements, Register tmp=TMP) |
|
bool | constant_pool_allowed () const |
|
void | set_constant_pool_allowed (bool b) |
|
void | LoadImmediate (Register reg, const Immediate &imm) |
|
void | LoadImmediate (Register reg, int64_t immediate) override |
|
void | LoadSImmediate (FpuRegister dst, float immediate) |
|
void | LoadDImmediate (FpuRegister dst, double immediate) |
|
void | LoadQImmediate (FpuRegister dst, simd128_value_t immediate) |
|
void | LoadIsolate (Register dst) |
|
void | LoadIsolateGroup (Register dst) |
|
void | LoadDispatchTable (Register dst) |
|
void | LoadObject (Register dst, const Object &obj) |
|
void | LoadUniqueObject (Register dst, const Object &obj, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | LoadNativeEntry (Register dst, const ExternalLabel *label, ObjectPoolBuilderEntry::Patchability patchable) |
|
void | JmpPatchable (const Code &code, Register pp) |
|
void | Jmp (const Code &code, Register pp=PP) |
|
void | J (Condition condition, const Code &code, Register pp) |
|
void | CallPatchable (const Code &code, CodeEntryKind entry_kind=CodeEntryKind::kNormal, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | Call (const Code &stub_entry, ObjectPoolBuilderEntry::SnapshotBehavior snapshot_behavior=ObjectPoolBuilderEntry::kSnapshotable) |
|
void | CallWithEquivalence (const Code &code, const Object &equivalence, CodeEntryKind entry_kind=CodeEntryKind::kNormal) |
|
void | Call (Address target) |
|
void | StoreObject (const Address &dst, const Object &obj, OperandSize size=kWordBytes) |
|
void | PushObject (const Object &object) |
|
void | CompareObject (Register reg, const Object &object) |
|
void | StoreBarrier (Register object, Register value, CanBeSmi can_be_smi, Register scratch) override |
|
void | ArrayStoreBarrier (Register object, Register slot, Register value, CanBeSmi can_be_smi, Register scratch) override |
|
void | VerifyStoreNeedsNoWriteBarrier (Register object, Register value) override |
|
void | StoreObjectIntoObjectNoBarrier (Register object, const Address &dest, const Object &value, MemoryOrder memory_order=kRelaxedNonAtomic, OperandSize size=kWordBytes) override |
|
void | StoreInternalPointer (Register object, const Address &dest, Register value) |
|
void | StoreIntoSmiField (const Address &dest, Register value) |
|
void | ZeroInitSmiField (const Address &dest) |
|
void | ZeroInitCompressedSmiField (const Address &dest) |
|
void | IncrementCompressedSmiField (const Address &dest, int64_t increment) |
|
void | DoubleNegate (XmmRegister dst, XmmRegister src) |
|
void | DoubleAbs (XmmRegister dst, XmmRegister src) |
|
void | LockCmpxchgq (const Address &address, Register reg) |
|
void | LockCmpxchgl (const Address &address, Register reg) |
|
void | PushRegisters (const RegisterSet ®isters) |
|
void | PopRegisters (const RegisterSet ®isters) |
|
void | PushRegistersInOrder (std::initializer_list< Register > regs) |
|
void | CheckCodePointer () |
|
void | EnterFrame (intptr_t frame_space) |
|
void | LeaveFrame () |
|
void | ReserveAlignedFrameSpace (intptr_t frame_space) |
|
void | EmitEntryFrameVerification () |
|
void | CallRuntime (const RuntimeEntry &entry, intptr_t argument_count) |
|
void | CallCFunction (Register reg, bool restore_rsp=false) |
|
void | CallCFunction (Address address, bool restore_rsp=false) |
|
void | ExtractClassIdFromTags (Register result, Register tags) |
|
void | ExtractInstanceSizeFromTags (Register result, Register tags) |
|
void | RangeCheck (Register value, Register temp, intptr_t low, intptr_t high, RangeCheckCondition condition, Label *target) override |
|
void | LoadClassId (Register result, Register object) |
|
void | LoadClassById (Register result, Register class_id) |
|
void | CompareClassId (Register object, intptr_t class_id, Register scratch=kNoRegister) |
|
void | LoadClassIdMayBeSmi (Register result, Register object) |
|
void | LoadTaggedClassIdMayBeSmi (Register result, Register object) |
|
void | EnsureHasClassIdInDEBUG (intptr_t cid, Register src, Register scratch, bool can_be_null=false) override |
|
void | SmiUntagOrCheckClass (Register object, intptr_t class_id, Label *smi) |
|
void | SmiTag (Register reg) override |
|
void | SmiUntag (Register reg) |
|
void | SmiUntag (Register dst, Register src) |
|
void | SmiUntagAndSignExtend (Register reg) |
|
void | SmiUntagAndSignExtend (Register dst, Register src) |
|
void | LoadInt32FromBoxOrSmi (Register result, Register value) override |
|
void | LoadInt64FromBoxOrSmi (Register result, Register value) override |
|
void | BranchIfNotSmi (Register reg, Label *label, JumpDistance distance=kFarJump) |
|
void | BranchIfSmi (Register reg, Label *label, JumpDistance distance=kFarJump) override |
|
void | ArithmeticShiftRightImmediate (Register reg, intptr_t shift) override |
|
void | CompareWords (Register reg1, Register reg2, intptr_t offset, Register count, Register temp, Label *equals) override |
|
void | Align (int alignment, intptr_t offset) |
|
void | Bind (Label *label) override |
|
void | Jump (Label *label, JumpDistance distance=kFarJump) |
|
void | Jump (Register target) |
|
void | Jump (const Address &address) |
|
void | Load (Register dst, const Address &address, OperandSize sz=kEightBytes) override |
|
void | LoadIndexedPayload (Register dst, Register base, int32_t payload_offset, Register index, ScaleFactor scale, OperandSize sz=kEightBytes) override |
|
void | Store (Register src, const Address &address, OperandSize sz=kEightBytes) override |
|
void | StoreZero (const Address &address, Register temp=kNoRegister) |
|
void | LoadFromStack (Register dst, intptr_t depth) |
|
void | StoreToStack (Register src, intptr_t depth) |
|
void | CompareToStack (Register src, intptr_t depth) |
|
void | LoadMemoryValue (Register dst, Register base, int32_t offset) |
|
void | LoadCompressedMemoryValue (Register dst, Register base, int32_t offset) |
|
void | StoreMemoryValue (Register src, Register base, int32_t offset) |
|
void | LoadUnboxedSimd128 (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedSimd128 (FpuRegister dst, Register base, int32_t offset) |
|
void | MoveUnboxedSimd128 (FpuRegister dst, FpuRegister src) |
|
void | LoadUnboxedSingle (FpuRegister dst, Register base, int32_t offset) |
|
void | LoadUnboxedDouble (FpuRegister dst, Register base, int32_t offset) |
|
void | StoreUnboxedDouble (FpuRegister src, Register base, int32_t offset) |
|
void | MoveUnboxedDouble (FpuRegister dst, FpuRegister src) |
|
void | TsanLoadAcquire (Address addr) |
|
void | TsanStoreRelease (Address addr) |
|
void | LoadAcquire (Register dst, const Address &address, OperandSize size=kEightBytes) override |
|
void | StoreRelease (Register src, const Address &address, OperandSize size=kWordBytes) override |
|
void | CompareWithMemoryValue (Register value, Address address, OperandSize size=kEightBytes) override |
|
void | RestoreCodePointer () |
|
void | LoadPoolPointer (Register pp=PP) |
|
void | EnterDartFrame (intptr_t frame_size, Register new_pp=kNoRegister) |
|
void | LeaveDartFrame () |
|
void | EnterOsrFrame (intptr_t extra_size) |
|
void | EnterStubFrame () |
|
void | LeaveStubFrame () |
|
void | EnterCFrame (intptr_t frame_space) |
|
void | LeaveCFrame () |
|
void | MonomorphicCheckedEntryJIT () |
|
void | MonomorphicCheckedEntryAOT () |
|
void | BranchOnMonomorphicCheckedEntryJIT (Label *label) |
|
void | CombineHashes (Register dst, Register other) override |
|
void | FinalizeHashForSize (intptr_t bit_size, Register dst, Register scratch=TMP) override |
|
void | MaybeTraceAllocation (intptr_t cid, Label *trace, Register temp_reg=kNoRegister, JumpDistance distance=JumpDistance::kFarJump) |
|
void | MaybeTraceAllocation (Register cid, Label *trace, Register temp_reg=kNoRegister, JumpDistance distance=JumpDistance::kFarJump) |
|
void | TryAllocateObject (intptr_t cid, intptr_t instance_size, Label *failure, JumpDistance distance, Register instance_reg, Register temp) override |
|
void | TryAllocateArray (intptr_t cid, intptr_t instance_size, Label *failure, JumpDistance distance, Register instance, Register end_address, Register temp) |
|
void | CheckAllocationCanary (Register top) |
|
void | WriteAllocationCanary (Register top) |
|
void | CopyMemoryWords (Register src, Register dst, Register size, Register temp=kNoRegister) |
|
void | GenerateUnRelocatedPcRelativeCall (intptr_t offset_into_target=0) |
|
void | GenerateUnRelocatedPcRelativeTailCall (intptr_t offset_into_target=0) |
|
void | Breakpoint () override |
|
void | LoadStaticFieldAddress (Register address, Register field, Register scratch, bool is_shared) |
|
void | LoadFieldAddressForRegOffset (Register address, Register instance, Register offset_in_words_as_smi) override |
|
void | LoadFieldAddressForOffset (Register address, Register instance, int32_t offset) override |
|
void | LoadWordFromPoolIndex (Register dst, intptr_t index) |
|
void | StoreWordToPoolIndex (Register src, intptr_t index) |
|
| 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 |
|
| 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) |
|