pub enum Rv32ZcmpInstruction<Reg> {
CmPush {
urlist: ZcmpUrlist<Reg>,
stack_adj: u32,
},
CmPop {
urlist: ZcmpUrlist<Reg>,
stack_adj: u32,
},
CmPopretz {
urlist: ZcmpUrlist<Reg>,
stack_adj: u32,
},
CmPopret {
urlist: ZcmpUrlist<Reg>,
stack_adj: u32,
},
CmMva01s {
r1s: Reg,
r2s: Reg,
},
CmMvsa01 {
r1s: Reg,
r2s: Reg,
},
}Expand description
Zcmp compressed instruction set
Variants§
CmPush
CM.PUSH - push reg_list, decrement sp by stack_adj
stack_adj = urlist.stack_adj_base() + spimm * 16 from the encoding.
CmPop
CM.POP - pop reg_list, increment sp by stack_adj (no return)
CmPopretz
CM.POPRETZ - pop reg_list, set a0=0, increment sp, return
CmPopret
CM.POPRET - pop reg_list, increment sp, return
CmMva01s
CM.MVA01S - a0 = r1s’, a1 = r2s’
CmMvsa01
CM.MVSA01 - r1s’ = a0, r2s’ = a1 (r1s’ != r2s’)
Trait Implementations§
Source§impl<Reg: Clone> Clone for Rv32ZcmpInstruction<Reg>
impl<Reg: Clone> Clone for Rv32ZcmpInstruction<Reg>
Source§fn clone(&self) -> Rv32ZcmpInstruction<Reg>
fn clone(&self) -> Rv32ZcmpInstruction<Reg>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<Reg: Debug> Debug for Rv32ZcmpInstruction<Reg>
impl<Reg: Debug> Debug for Rv32ZcmpInstruction<Reg>
Source§impl<Reg> Display for Rv32ZcmpInstruction<Reg>where
Reg: Register,
impl<Reg> Display for Rv32ZcmpInstruction<Reg>where
Reg: Register,
§impl<Reg> Instruction for Rv32ZcmpInstruction<Reg>where
Reg: ZcmpRegister<Type = u32>,
impl<Reg> Instruction for Rv32ZcmpInstruction<Reg>where
Reg: ZcmpRegister<Type = u32>,
Source§impl<Reg: PartialEq> PartialEq for Rv32ZcmpInstruction<Reg>
impl<Reg: PartialEq> PartialEq for Rv32ZcmpInstruction<Reg>
impl<Reg: Copy> Copy for Rv32ZcmpInstruction<Reg>
impl<Reg: Eq> Eq for Rv32ZcmpInstruction<Reg>
impl<Reg> StructuralPartialEq for Rv32ZcmpInstruction<Reg>
Auto Trait Implementations§
impl<Reg> Freeze for Rv32ZcmpInstruction<Reg>where
Reg: Freeze,
impl<Reg> RefUnwindSafe for Rv32ZcmpInstruction<Reg>where
Reg: RefUnwindSafe,
impl<Reg> Send for Rv32ZcmpInstruction<Reg>where
Reg: Send,
impl<Reg> Sync for Rv32ZcmpInstruction<Reg>where
Reg: Sync,
impl<Reg> Unpin for Rv32ZcmpInstruction<Reg>where
Reg: Unpin,
impl<Reg> UnsafeUnpin for Rv32ZcmpInstruction<Reg>where
Reg: UnsafeUnpin,
impl<Reg> UnwindSafe for Rv32ZcmpInstruction<Reg>where
Reg: UnwindSafe,
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