pub enum AA64Instruction {
PhiPlaceholder {
rd: VReg,
options: Vec<(Location, Value)>,
},
Integer {
rd: VReg,
value: u64,
size: AA64RegSizes,
},
MSub {
rd1: VReg,
rd2: VReg,
rx: VReg,
ry: VReg,
size: AA64RegSizes,
},
AluOp {
op: AA64AluOp,
rd: VReg,
rx: VReg,
ry: VReg,
size: AA64RegSizes,
},
AluOpImm {
op: AA64AluOp,
rd: VReg,
rx: VReg,
imm: i16,
size: AA64RegSizes,
},
Bl {
rd: VReg,
location: Location,
clobbers: Vec<VReg>,
},
Bne {
rx: VReg,
ry: VReg,
location: Location,
size: AA64RegSizes,
},
Ret,
Load {
rd: VReg,
imm: i16,
rx: VReg,
size: AA64RegSizes,
},
Store {
rx: VReg,
imm: i16,
ry: VReg,
size: AA64RegSizes,
},
Compare {
rx: VReg,
ry: VReg,
size: AA64RegSizes,
},
CondSet {
rd: VReg,
cnd: AA64CompOp,
size: AA64RegSizes,
},
}Variants§
Trait Implementations§
Source§impl Display for AA64Instruction
impl Display for AA64Instruction
Source§impl Instr for AA64Instruction
impl Instr for AA64Instruction
Source§fn get_regs() -> Vec<VReg>
fn get_regs() -> Vec<VReg>
Gets the registers available for selection by the register allocator.
Source§fn get_arg_regs() -> Vec<VReg>
fn get_arg_regs() -> Vec<VReg>
Gets the registers that can be used as function arguments.
Source§fn collect_registers<A>(&self, alloc: &mut A)where
A: RegisterAllocator,
fn collect_registers<A>(&self, alloc: &mut A)where
A: RegisterAllocator,
Collects the registers in an instruction for register allocation.
Source§fn apply_reg_allocs(&mut self, alloc: &HashMap<VReg, VReg>)
fn apply_reg_allocs(&mut self, alloc: &HashMap<VReg, VReg>)
Applies the results of register allocation.
Source§fn mandatory_transforms(vcode: &mut VCode<Self>)
fn mandatory_transforms(vcode: &mut VCode<Self>)
Performs transformations on the
VCode that are mandatory after register allocation.Auto Trait Implementations§
impl Freeze for AA64Instruction
impl RefUnwindSafe for AA64Instruction
impl Send for AA64Instruction
impl Sync for AA64Instruction
impl Unpin for AA64Instruction
impl UnwindSafe for AA64Instruction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more