Croissant Runtime
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
crsn/csn_asm/src/data/reg.rs

22 lines
560 B

use std::fmt::{self, Display, Formatter};
/// Register name
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
pub enum Register {
/// Argument register, read-only
Arg(u8),
/// Result register, read-only
Res(u8),
/// General purpose register
Gen(u8)
}
impl Display for Register {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
match self {
Register::Arg(n) => write!(f, "arg{}", n),
Register::Res(n) => write!(f, "res{}", n),
Register::Gen(n) => write!(f, "r{}", n),
}
}
}