sass_assembler/instructions/
mod.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5pub enum SassReg {
6 R(u8),
7 UR(u8),
8 PR(u8),
9}
10
11impl std::fmt::Display for SassReg {
12 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
13 match self {
14 SassReg::R(n) => write!(f, "R{}", n),
15 SassReg::UR(n) => write!(f, "UR{}", n),
16 SassReg::PR(n) => write!(f, "P{}", n),
17 }
18 }
19}
20
21#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
23pub enum SassInstruction {
24 FAdd { dst: SassReg, src0: SassReg, src1: SassReg },
26 FMul { dst: SassReg, src0: SassReg, src1: SassReg },
28 Imma { dst: SassReg, src0: SassReg, src1: SassReg, src2: SassReg },
30 Ldg { dst: SassReg, addr: SassReg },
32 Stg { addr: SassReg, src: SassReg },
34 Exit,
36 Nop,
38}