#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
#[repr(u8)]
pub enum Precision {
P32 = 0,
P64 = 1,
}
impl Precision {
pub fn bits(self) -> usize { 32 << (self as usize) }
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
#[repr(u8)]
pub enum UnaryOp {
Abs,
Negate,
Not,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
#[repr(u8)]
pub enum BinaryOp {
Add,
Sub,
Mul,
UDiv,
SDiv,
Lsl,
Lsr,
Asr,
And,
Or,
Xor,
Lt,
Ult,
Eq,
Max, Min, }
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum Width {
One = 0,
Two = 1,
Four = 2,
Eight = 3,
}