|
| MemOperand | GetStackSlot (int offset) |
| |
| MemOperand | GetHalfStackSlot (int offset, RegPairHalf half) |
| |
| MemOperand | GetInstanceDataOperand () |
| |
| MemOperand | GetMemOp (LiftoffAssembler *assm, UseScratchRegisterScope *temps, Register addr, Register offset, int32_t offset_imm, unsigned shift_amount=0) |
| |
| Register | CalculateActualAddress (LiftoffAssembler *assm, UseScratchRegisterScope *temps, Register addr_reg, Register offset_reg, uintptr_t offset_imm, Register result_reg=no_reg) |
| |
| Condition | MakeUnsigned (Condition cond) |
| |
| template<void(Assembler::*)(Register, Register, Register, SBit, Condition) op, void(Assembler::*)(Register, Register, const Operand &, SBit, Condition) op_with_carry> |
| void | I64Binop (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs) |
| |
| template<void(Assembler::*)(Register, Register, const Operand &, SBit, Condition) op, void(Assembler::*)(Register, Register, const Operand &, SBit, Condition) op_with_carry> |
| void | I64BinopI (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, int64_t imm) |
| |
| template<void(MacroAssembler::*)(Register, Register, Register, Register, Register) op, bool is_left_shift> |
| void | I64Shiftop (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src, Register amount) |
| |
| FloatRegister | GetFloatRegister (DoubleRegister reg) |
| |
| Simd128Register | GetSimd128Register (DoubleRegister reg) |
| |
| Simd128Register | GetSimd128Register (LiftoffRegister reg) |
| |
| template<typename RegisterType > |
| void | EmitFloatMinOrMax (LiftoffAssembler *assm, RegisterType dst, RegisterType lhs, RegisterType rhs, MinOrMax min_or_max) |
| |
| Register | EnsureNoAlias (Assembler *assm, Register reg, Register must_not_alias, UseScratchRegisterScope *temps) |
| |
| void | S128NarrowOp (LiftoffAssembler *assm, NeonDataType dt, NeonDataType sdt, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs) |
| |
| void | F64x2Compare (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs, Condition cond) |
| |
| void | Store (LiftoffAssembler *assm, LiftoffRegister src, MemOperand dst, ValueKind kind) |
| |
| void | Load (LiftoffAssembler *assm, LiftoffRegister dst, MemOperand src, ValueKind kind) |
| |
| constexpr int | MaskFromNeonDataType (NeonDataType dt) |
| |
| template<ShiftDirection dir = kLeft, NeonDataType dt, NeonSize sz> |
| void | EmitSimdShift (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs) |
| |
| template<ShiftDirection dir, NeonDataType dt> |
| void | EmitSimdShiftImmediate (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, int32_t rhs) |
| |
| void | EmitAnyTrue (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src) |
| |
| void | LoadInternal (LiftoffAssembler *lasm, LiftoffRegister dst, Register src_addr, Register offset_reg, int32_t offset_imm, LoadType type, uint32_t *protected_load_pc=nullptr, bool needs_shift=false) |
| |
| void | AtomicOp32 (LiftoffAssembler *lasm, Register dst_addr, Register offset_reg, uint32_t offset_imm, LiftoffRegister value, LiftoffRegister result, LiftoffRegList pinned, void(Assembler::*load)(Register, Register, Condition), void(Assembler::*store)(Register, Register, Register, Condition), void(*op)(LiftoffAssembler *, Register, Register, Register)) |
| |
| void | Add (LiftoffAssembler *lasm, Register dst, Register lhs, Register rhs) |
| |
| void | Sub (LiftoffAssembler *lasm, Register dst, Register lhs, Register rhs) |
| |
| void | And (LiftoffAssembler *lasm, Register dst, Register lhs, Register rhs) |
| |
| void | Or (LiftoffAssembler *lasm, Register dst, Register lhs, Register rhs) |
| |
| void | Xor (LiftoffAssembler *lasm, Register dst, Register lhs, Register rhs) |
| |
| void | Exchange (LiftoffAssembler *lasm, Register dst, Register lhs, Register rhs) |
| |
| void | AtomicBinop32 (LiftoffAssembler *lasm, Register dst_addr, Register offset_reg, uint32_t offset_imm, LiftoffRegister value, LiftoffRegister result, StoreType type, void(*op)(LiftoffAssembler *, Register, Register, Register)) |
| |
| void | AtomicOp64 (LiftoffAssembler *lasm, Register dst_addr, Register offset_reg, uint32_t offset_imm, LiftoffRegister value, std::optional< LiftoffRegister > result, void(*op)(LiftoffAssembler *, LiftoffRegister, LiftoffRegister, LiftoffRegister)) |
| |
| void | I64Store (LiftoffAssembler *lasm, LiftoffRegister dst, LiftoffRegister, LiftoffRegister src) |
| |
| void | AtomicI64CompareExchange (LiftoffAssembler *lasm, Register dst_addr_reg, Register offset_reg, uint32_t offset_imm, LiftoffRegister expected, LiftoffRegister new_value, LiftoffRegister result) |
| |
| void | GeneratePopCnt (Assembler *assm, Register dst, Register src, Register scratch1, Register scratch2) |
| |
| CPURegister | GetRegFromType (const LiftoffRegister ®, ValueKind kind) |
| |
| CPURegList | PadRegList (RegList list) |
| |
| CPURegList | PadVRegList (DoubleRegList list) |
| |
| CPURegister | AcquireByType (UseScratchRegisterScope *temps, ValueKind kind) |
| |
| template<typename T > |
| MemOperand | GetMemOp (LiftoffAssembler *assm, UseScratchRegisterScope *temps, Register addr, Register offset, T offset_imm, bool i64_offset=false, unsigned shift_amount=0) |
| |
| Register | GetEffectiveAddress (LiftoffAssembler *assm, UseScratchRegisterScope *temps, Register addr, Register offset, uintptr_t offset_imm, bool i64_offset=false) |
| |
| template<ShiftDirection dir, ShiftSign sign = ShiftSign::kSigned> |
| void | EmitSimdShift (LiftoffAssembler *assm, VRegister dst, VRegister lhs, Register rhs, VectorFormat format) |
| |
| template<VectorFormat format, ShiftSign sign> |
| void | EmitSimdShiftRightImmediate (LiftoffAssembler *assm, VRegister dst, VRegister lhs, int32_t rhs) |
| |
| void | EmitAllTrue (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src, VectorFormat format) |
| |
| CPURegister | LoadToRegister (LiftoffAssembler *assm, UseScratchRegisterScope *temps, const LiftoffAssembler::VarState &src) |
| |
| void | StoreToMemory (LiftoffAssembler *assm, MemOperand dst, const LiftoffAssembler::VarState &src) |
| |
| Register | CalculateActualAddress (LiftoffAssembler *lasm, UseScratchRegisterScope &temps, Register addr_reg, Register offset_reg, uintptr_t offset_imm) |
| |
| void | AtomicBinop (LiftoffAssembler *lasm, Register dst_addr, Register offset_reg, uintptr_t offset_imm, LiftoffRegister value, LiftoffRegister result, StoreType type, Binop op) |
| |
| Operand | MemOperand (Register base, Register offset_reg, int offset_imm) |
| |
| void | Load (LiftoffAssembler *assm, LiftoffRegister dst, Register base, int32_t offset, ValueKind kind) |
| |
| void | Store (LiftoffAssembler *assm, Register base, int32_t offset, LiftoffRegister src, ValueKind kind) |
| |
| void | push (LiftoffAssembler *assm, LiftoffRegister reg, ValueKind kind, int padding=0) |
| |
| void | SignExtendI32ToI64 (Assembler *assm, LiftoffRegister reg) |
| |
| Register | GetTmpByteRegister (LiftoffAssembler *assm, Register candidate) |
| |
| void | MoveStackValue (LiftoffAssembler *assm, const Operand &src, const Operand &dst) |
| |
| void | AtomicAddOrSubOrExchange32 (LiftoffAssembler *lasm, Binop binop, Register dst_addr, Register offset_reg, uint32_t offset_imm, LiftoffRegister value, LiftoffRegister result, StoreType type) |
| |
| void | AtomicBinop32 (LiftoffAssembler *lasm, Binop op, Register dst_addr, Register offset_reg, uint32_t offset_imm, LiftoffRegister value, LiftoffRegister result, StoreType type) |
| |
| void | AtomicBinop64 (LiftoffAssembler *lasm, Binop op, Register dst_addr, Register offset_reg, uint32_t offset_imm, LiftoffRegister value, LiftoffRegister result) |
| |
| template<void(Assembler::*)(Register, Register) op> |
| void | EmitCommutativeBinOp (LiftoffAssembler *assm, Register dst, Register lhs, Register rhs) |
| |
| template<void(Assembler::*)(Register, int32_t) op> |
| void | EmitCommutativeBinOpImm (LiftoffAssembler *assm, Register dst, Register lhs, int32_t imm) |
| |
| template<bool is_signed, DivOrRem div_or_rem> |
| void | EmitInt32DivOrRem (LiftoffAssembler *assm, Register dst, Register lhs, Register rhs, Label *trap_div_by_zero, Label *trap_div_unrepresentable) |
| |
| void | EmitShiftOperation (LiftoffAssembler *assm, Register dst, Register src, Register amount, void(Assembler::*emit_shift)(Register)) |
| |
| template<void(Assembler::*)(Register, Register) op, void(Assembler::*)(Register, Register) op_with_carry> |
| void | OpWithCarry (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs) |
| |
| template<void(Assembler::*)(Register, const Immediate &) op, void(Assembler::*)(Register, int32_t) op_with_carry> |
| void | OpWithCarryI (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, int64_t imm) |
| |
| bool | PairContains (LiftoffRegister pair, Register reg) |
| |
| LiftoffRegister | ReplaceInPair (LiftoffRegister pair, Register old_reg, Register new_reg) |
| |
| void | Emit64BitShiftOperation (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src, Register amount, void(MacroAssembler::*emit_shift)(Register, Register)) |
| |
| template<typename type > |
| void | EmitFloatMinOrMax (LiftoffAssembler *assm, DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, MinOrMax min_or_max) |
| |
| template<typename dst_type , typename src_type > |
| void | ConvertFloatToIntAndBack (LiftoffAssembler *assm, Register dst, DoubleRegister src, DoubleRegister converted_back, LiftoffRegList pinned) |
| |
| template<typename dst_type , typename src_type > |
| void | EmitTruncateFloatToInt (LiftoffAssembler *assm, Register dst, DoubleRegister src, Label *trap) |
| |
| template<typename dst_type , typename src_type > |
| void | EmitSatTruncateFloatToInt (LiftoffAssembler *assm, Register dst, DoubleRegister src) |
| |
| void | setcc_32_no_spill (LiftoffAssembler *assm, Condition cond, Register dst, Register tmp_byte_reg) |
| |
| void | setcc_32 (LiftoffAssembler *assm, Condition cond, Register dst) |
| |
| Condition | cond_make_unsigned (Condition cond) |
| |
| template<void(Assembler::*)(DoubleRegister, DoubleRegister) cmp_op> |
| void | EmitFloatSetCond (LiftoffAssembler *assm, Condition cond, Register dst, DoubleRegister lhs, DoubleRegister rhs) |
| |
| template<void(Assembler::*)(XMMRegister, XMMRegister, XMMRegister) avx_op, void(Assembler::*)(XMMRegister, XMMRegister) sse_op> |
| void | EmitSimdCommutativeBinOp (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs, std::optional< CpuFeature > feature=std::nullopt) |
| |
| template<void(Assembler::*)(XMMRegister, XMMRegister, XMMRegister) avx_op, void(Assembler::*)(XMMRegister, XMMRegister) sse_op> |
| void | EmitSimdNonCommutativeBinOp (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs, std::optional< CpuFeature > feature=std::nullopt) |
| |
| template<void(Assembler::*)(XMMRegister, XMMRegister, XMMRegister) avx_op, void(Assembler::*)(XMMRegister, XMMRegister) sse_op, uint8_t width> |
| void | EmitSimdShiftOp (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister operand, LiftoffRegister count) |
| |
| template<void(Assembler::*)(XMMRegister, XMMRegister, uint8_t) avx_op, void(Assembler::*)(XMMRegister, uint8_t) sse_op, uint8_t width> |
| void | EmitSimdShiftOpImm (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister operand, int32_t count) |
| |
| template<void(SharedMacroAssemblerBase::*)(XMMRegister, XMMRegister) pcmp> |
| void | EmitAllTrue (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src, std::optional< CpuFeature > feature=std::nullopt) |
| |
| void | I32x4ExtMulHelper (LiftoffAssembler *assm, XMMRegister dst, XMMRegister src1, XMMRegister src2, bool low, bool is_signed) |
| |
| template<typename T > |
| MemOperand | GetMemOp (LiftoffAssembler *assm, Register addr, Register offset, T offset_imm, bool i64_offset=false, unsigned shift_amount=0) |
| |
| void | Store (LiftoffAssembler *assm, MemOperand dst, LiftoffRegister src, ValueKind kind) |
| |
| void | push (LiftoffAssembler *assm, LiftoffRegister reg, ValueKind kind) |
| |
| FPUCondition | ConditionToConditionCmpFPU (Condition condition, bool *predicate) |
| |
| void | EmitAllTrue (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src, MSABranchDF msa_branch_df) |
| |
| MemOperand | GetMemOp (LiftoffAssembler *assm, Register addr, Register offset, uintptr_t offset_imm, Register scratch, bool i64_offset=false, unsigned shift_amount=0) |
| |
| MemOperand | GetStackSlot (uint32_t offset) |
| |
| void | StoreToMemory (LiftoffAssembler *assm, MemOperand dst, const LiftoffAssembler::VarState &src, Register scratch1, Register scratch2) |
| |
| MemOperand | GetMemOp (LiftoffAssembler *assm, Register addr, Register offset, uintptr_t offset_imm, unsigned shift_amount=0) |
| |
| Register | EnsureNoAlias (Assembler *assm, Register reg, LiftoffRegister must_not_alias, UseScratchRegisterScope *temps) |
| |
| Register | CalculateActualAddress (LiftoffAssembler *lasm, UseScratchRegisterScope &temps, Register addr_reg, Register offset_reg, uintptr_t offset_imm, Register result_reg=no_reg) |
| |
| void | AtomicBinop64 (LiftoffAssembler *lasm, Register dst_addr, Register offset_reg, uintptr_t offset_imm, LiftoffRegister value, LiftoffRegister result, StoreType type, Binop op) |
| |
| bool | IsRegInRegPair (LiftoffRegister pair, Register reg) |
| |
| void | Emit64BitShiftOperation (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src, Register amount, void(MacroAssembler::*emit_shift)(Register, Register, Register, Register, Register, Register, Register)) |
| |
| MemOperand | GetMemOp (LiftoffAssembler *assm, Register addr, Register offset, uintptr_t offset_imm, bool i64_offset=false, unsigned shift_amount=0) |
| |
| void | StoreToMemory (LiftoffAssembler *assm, MemOperand dst, const LiftoffAssembler::VarState &src, Register scratch) |
| |
| Operand | GetMemOp (LiftoffAssembler *assm, Register addr, Register offset_reg, uintptr_t offset_imm, ScaleFactor scale_factor=times_1) |
| |
| void | LoadFromStack (LiftoffAssembler *assm, LiftoffRegister dst, Operand src, ValueKind kind) |
| |
| void | StoreToMemory (LiftoffAssembler *assm, Operand dst, LiftoffRegister src, ValueKind kind) |
| |
| void | StoreToMemory (LiftoffAssembler *assm, Operand dst, const LiftoffAssembler::VarState &src) |
| |
| void | AtomicBinop (LiftoffAssembler *lasm, void(Assembler::*opl)(Register, Register), void(Assembler::*opq)(Register, Register), Register dst_addr, Register offset_reg, uintptr_t offset_imm, LiftoffRegister value, LiftoffRegister result, StoreType type, bool i64_offset) |
| |
| template<void(Assembler::*)(Register, Register) op, void(Assembler::*)(Register, Register) mov> |
| void | EmitCommutativeBinOp (LiftoffAssembler *assm, Register dst, Register lhs, Register rhs) |
| |
| template<void(Assembler::*)(Register, Immediate) op, void(Assembler::*)(Register, Register) mov> |
| void | EmitCommutativeBinOpImm (LiftoffAssembler *assm, Register dst, Register lhs, int32_t imm) |
| |
| template<typename type , DivOrRem div_or_rem> |
| void | EmitIntDivOrRem (LiftoffAssembler *assm, Register dst, Register lhs, Register rhs, Label *trap_div_by_zero, Label *trap_div_unrepresentable) |
| |
| template<ValueKind kind> |
| void | EmitShiftOperation (LiftoffAssembler *assm, Register dst, Register src, Register amount, void(Assembler::*emit_shift)(Register)) |
| |
| template<typename dst_type , typename src_type > |
| void | ConvertFloatToIntAndBack (LiftoffAssembler *assm, Register dst, DoubleRegister src, DoubleRegister converted_back) |
| |
| template<typename src_type > |
| void | EmitSatTruncateFloatToUInt64 (LiftoffAssembler *assm, Register dst, DoubleRegister src) |
| |