EmitterRiscv

Trait EmitterRiscv 

Source
pub trait EmitterRiscv {
Show 55 methods // Required methods fn emit_jmp_on_condition( &mut self, cond: Condition, loc_a: Location<GPR, FPR>, loc_b: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>; fn emit_reserved_sd( &mut self, size: Size, dest: GPR, addr: GPR, source: GPR, ) -> Result<(), CompileError>; fn get_simd_arch(&self) -> Option<&CpuFeature>; fn get_label(&mut self) -> DynamicLabel; fn get_offset(&self) -> AssemblyOffset; fn get_jmp_instr_size(&self) -> u8; fn finalize_function(&mut self) -> Result<(), CompileError>; fn emit_label(&mut self, label: DynamicLabel) -> Result<(), CompileError>; fn emit_brk(&mut self) -> Result<(), CompileError>; fn emit_ld( &mut self, sz: Size, signed: bool, reg: Location<GPR, FPR>, addr: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_sd( &mut self, sz: Size, reg: Location<GPR, FPR>, addr: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_push( &mut self, size: Size, src: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_pop( &mut self, size: Size, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_add( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_sub( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_mul( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_sdiv( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_udiv( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_srem( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_urem( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_and( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_or( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_xor( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_sll( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_srl( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_sra( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_extend( &mut self, sz: Size, signed: bool, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_not( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_neg( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_mov( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_ret(&mut self) -> Result<(), CompileError>; fn emit_udf(&mut self, payload: u8) -> Result<(), CompileError>; fn emit_mov_imm( &mut self, dst: Location<GPR, FPR>, val: i64, ) -> Result<(), CompileError>; fn emit_fneg( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_fmin( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_fmax( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_fdiv( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_fsqrt( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_fcvt( &mut self, signed: bool, sz_in: Size, src: Location<GPR, FPR>, sz_out: Size, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_fcvt_with_rounding( &mut self, rounding: RoundingMode, size: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, tmp: GPR, ) -> Result<(), CompileError>; fn emit_swap_fscr(&mut self, reg: GPR) -> Result<(), CompileError>; fn emit_cmp( &mut self, c: Condition, loc_a: Location<GPR, FPR>, loc_b: Location<GPR, FPR>, ret: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_fcmp( &mut self, c: Condition, size: Size, loc_a: Location<GPR, FPR>, loc_b: Location<GPR, FPR>, ret: Location<GPR, FPR>, ) -> Result<(), CompileError>; fn emit_on_false_label( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>; fn emit_on_false_label_far( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>; fn emit_on_true_label_far( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>; fn emit_on_true_label( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>; fn emit_j_label( &mut self, label: DynamicLabel, reg: Option<GPR>, ) -> Result<(), CompileError>; fn emit_j_register(&mut self, reg: GPR) -> Result<(), CompileError>; fn emit_load_label( &mut self, reg: GPR, label: DynamicLabel, ) -> Result<(), CompileError>; fn emit_call_label( &mut self, label: DynamicLabel, ) -> Result<(), CompileError>; fn emit_call_register(&mut self, reg: GPR) -> Result<(), CompileError>; fn emit_rwfence(&mut self) -> Result<(), CompileError>; fn emit_atomic_binop( &mut self, op: AtomicBinaryOp, size: Size, dest: GPR, addr: GPR, source: GPR, ) -> Result<(), CompileError>; fn emit_reserved_ld( &mut self, size: Size, reg: GPR, addr: GPR, ) -> Result<(), CompileError>;
}
Expand description

Emitter trait for RISC-V.

Required Methods§

Source

fn emit_jmp_on_condition( &mut self, cond: Condition, loc_a: Location<GPR, FPR>, loc_b: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source

fn emit_reserved_sd( &mut self, size: Size, dest: GPR, addr: GPR, source: GPR, ) -> Result<(), CompileError>

Source

fn get_simd_arch(&self) -> Option<&CpuFeature>

Returns the SIMD (FPU) feature if available.

Source

fn get_label(&mut self) -> DynamicLabel

Generates a new internal label.

Source

fn get_offset(&self) -> AssemblyOffset

Gets the current code offset.

Source

fn get_jmp_instr_size(&self) -> u8

Returns the size of a jump instruction in bytes.

Source

fn finalize_function(&mut self) -> Result<(), CompileError>

Finalize the function, e.g., resolve labels.

Source

fn emit_label(&mut self, label: DynamicLabel) -> Result<(), CompileError>

Source

fn emit_brk(&mut self) -> Result<(), CompileError>

Source

fn emit_ld( &mut self, sz: Size, signed: bool, reg: Location<GPR, FPR>, addr: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_sd( &mut self, sz: Size, reg: Location<GPR, FPR>, addr: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_push( &mut self, size: Size, src: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_pop( &mut self, size: Size, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_add( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_sub( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_mul( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_sdiv( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_udiv( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_srem( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_urem( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_and( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_or( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_xor( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_sll( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_srl( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_sra( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_extend( &mut self, sz: Size, signed: bool, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_not( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_neg( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_mov( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_ret(&mut self) -> Result<(), CompileError>

Source

fn emit_udf(&mut self, payload: u8) -> Result<(), CompileError>

Source

fn emit_mov_imm( &mut self, dst: Location<GPR, FPR>, val: i64, ) -> Result<(), CompileError>

Source

fn emit_fneg( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_fmin( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_fmax( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_fdiv( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_fsqrt( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_fcvt( &mut self, signed: bool, sz_in: Size, src: Location<GPR, FPR>, sz_out: Size, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_fcvt_with_rounding( &mut self, rounding: RoundingMode, size: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, tmp: GPR, ) -> Result<(), CompileError>

Source

fn emit_swap_fscr(&mut self, reg: GPR) -> Result<(), CompileError>

Source

fn emit_cmp( &mut self, c: Condition, loc_a: Location<GPR, FPR>, loc_b: Location<GPR, FPR>, ret: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_fcmp( &mut self, c: Condition, size: Size, loc_a: Location<GPR, FPR>, loc_b: Location<GPR, FPR>, ret: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source

fn emit_on_false_label( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source

fn emit_on_false_label_far( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source

fn emit_on_true_label_far( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source

fn emit_on_true_label( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source

fn emit_j_label( &mut self, label: DynamicLabel, reg: Option<GPR>, ) -> Result<(), CompileError>

Source

fn emit_j_register(&mut self, reg: GPR) -> Result<(), CompileError>

Source

fn emit_load_label( &mut self, reg: GPR, label: DynamicLabel, ) -> Result<(), CompileError>

Source

fn emit_call_label(&mut self, label: DynamicLabel) -> Result<(), CompileError>

Source

fn emit_call_register(&mut self, reg: GPR) -> Result<(), CompileError>

Source

fn emit_rwfence(&mut self) -> Result<(), CompileError>

Source

fn emit_atomic_binop( &mut self, op: AtomicBinaryOp, size: Size, dest: GPR, addr: GPR, source: GPR, ) -> Result<(), CompileError>

Source

fn emit_reserved_ld( &mut self, size: Size, reg: GPR, addr: GPR, ) -> Result<(), CompileError>

Implementations on Foreign Types§

Source§

impl EmitterRiscv for VecAssembler<RiscvRelocation>

Source§

fn get_simd_arch(&self) -> Option<&CpuFeature>

Source§

fn get_label(&mut self) -> DynamicLabel

Source§

fn get_offset(&self) -> AssemblyOffset

Source§

fn get_jmp_instr_size(&self) -> u8

Source§

fn finalize_function(&mut self) -> Result<(), CompileError>

Source§

fn emit_label(&mut self, label: DynamicLabel) -> Result<(), CompileError>

Source§

fn emit_brk(&mut self) -> Result<(), CompileError>

Source§

fn emit_udf(&mut self, payload: u8) -> Result<(), CompileError>

Source§

fn emit_ld( &mut self, sz: Size, signed: bool, reg: Location<GPR, FPR>, addr: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_sd( &mut self, sz: Size, reg: Location<GPR, FPR>, addr: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_push( &mut self, size: Size, src: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_pop( &mut self, size: Size, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_add( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_sub( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_mul( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_udiv( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_sdiv( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_urem( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_srem( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_and( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_or( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_xor( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_sll( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_srl( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_sra( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_extend( &mut self, sz: Size, signed: bool, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_not( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_neg( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_mov( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_ret(&mut self) -> Result<(), CompileError>

Source§

fn emit_mov_imm( &mut self, dst: Location<GPR, FPR>, val: i64, ) -> Result<(), CompileError>

Source§

fn emit_fneg( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_fmin( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_fmax( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_fdiv( &mut self, sz: Size, src1: Location<GPR, FPR>, src2: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_fsqrt( &mut self, sz: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_fcvt( &mut self, signed: bool, sz_in: Size, src: Location<GPR, FPR>, sz_out: Size, dst: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_fcvt_with_rounding( &mut self, rounding: RoundingMode, size: Size, src: Location<GPR, FPR>, dst: Location<GPR, FPR>, tmp: GPR, ) -> Result<(), CompileError>

Source§

fn emit_swap_fscr(&mut self, reg: GPR) -> Result<(), CompileError>

Source§

fn emit_cmp( &mut self, c: Condition, loc_a: Location<GPR, FPR>, loc_b: Location<GPR, FPR>, ret: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_fcmp( &mut self, c: Condition, size: Size, loc_a: Location<GPR, FPR>, loc_b: Location<GPR, FPR>, ret: Location<GPR, FPR>, ) -> Result<(), CompileError>

Source§

fn emit_jmp_on_condition( &mut self, cond: Condition, loc_a: Location<GPR, FPR>, loc_b: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source§

fn emit_on_false_label( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source§

fn emit_on_false_label_far( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source§

fn emit_on_true_label( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source§

fn emit_on_true_label_far( &mut self, cond: Location<GPR, FPR>, label: DynamicLabel, tmp: GPR, ) -> Result<(), CompileError>

Source§

fn emit_j_label( &mut self, label: DynamicLabel, reg: Option<GPR>, ) -> Result<(), CompileError>

Source§

fn emit_j_register(&mut self, reg: GPR) -> Result<(), CompileError>

Source§

fn emit_call_label(&mut self, label: DynamicLabel) -> Result<(), CompileError>

Source§

fn emit_call_register(&mut self, reg: GPR) -> Result<(), CompileError>

Source§

fn emit_load_label( &mut self, reg: GPR, label: DynamicLabel, ) -> Result<(), CompileError>

Source§

fn emit_rwfence(&mut self) -> Result<(), CompileError>

Source§

fn emit_atomic_binop( &mut self, op: AtomicBinaryOp, size: Size, dest: GPR, addr: GPR, source: GPR, ) -> Result<(), CompileError>

Source§

fn emit_reserved_ld( &mut self, size: Size, reg: GPR, addr: GPR, ) -> Result<(), CompileError>

Source§

fn emit_reserved_sd( &mut self, size: Size, dest: GPR, addr: GPR, source: GPR, ) -> Result<(), CompileError>

Implementors§