sass_assembler/instructions/
mod.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7pub enum SassReg {
8 R(u8),
10 UR(u8),
12 PR(u8),
14}
15
16impl std::fmt::Display for SassReg {
17 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18 match self {
19 SassReg::R(n) => write!(f, "R{}", n),
20 SassReg::UR(n) => write!(f, "UR{}", n),
21 SassReg::PR(n) => write!(f, "P{}", n),
22 }
23 }
24}
25
26#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
28pub enum SassInstruction {
29 FAdd { dst: SassReg, src0: SassReg, src1: SassReg },
31 FMul { dst: SassReg, src0: SassReg, src1: SassReg },
33 Imma { dst: SassReg, src0: SassReg, src1: SassReg, src2: SassReg },
35 Ldg { dst: SassReg, addr: SassReg },
37 Stg { addr: SassReg, src: SassReg },
39 Exit,
41 Nop,
43}