use crate::cpu::Word; type RegisterMem = String; pub type ConstId = String; #[derive(Debug)] pub enum Const { CS(ConstId), C(u8), } #[derive(Debug)] pub enum Operation { NOP, HALT, // R type ADD(RegisterMem, RegisterMem, RegisterMem), SUB(RegisterMem, RegisterMem, RegisterMem), AND(RegisterMem, RegisterMem, RegisterMem), XOR(RegisterMem, RegisterMem, RegisterMem), SLL(RegisterMem, RegisterMem, RegisterMem), BEQ(RegisterMem, RegisterMem, RegisterMem), BGT(RegisterMem, RegisterMem, RegisterMem), LOAD(RegisterMem, RegisterMem, RegisterMem), STORE(RegisterMem, RegisterMem, RegisterMem), // I Type SLI(RegisterMem, Const), ADDI(RegisterMem, Const), CALL(RegisterMem, Const), // J Type JAL(RegisterMem, RegisterMem, Const), }