from enum import unique, Enum @unique class OpCodes(Enum): # R-type ADD = 0x01 ADDC = 0x02 SUB = 0x03 SUBC = 0x04 XOR = 0x05 OR = 0x06 AND = 0x07 LSL = 0x08 LSR = 0x09 ASR = 0x0A MULL = 0x0B MULH = 0x0C MULLU = 0x0D MULHU = 0x0E DIV = 0x0F # not implemented yet DIVU = 0x10 # not implemented yet LDW = 0x11 STW = 0x12 # I-type ADDI = 0x40 SUBI = 0x41 XORI = 0x42 ORI = 0x43 ANDI = 0x44 LSLI = 0x45 LSRI = 0x46 ASRI = 0x47 MULIL = 0x48 MULIH = 0x49 MULIU = 0x4A MULIUH = 0x4B DIVI = 0x4C # not implemented yet DIVUI = 0x4D # not implemented yet # J-type JMP = 0x80 JMPI = 0x81 # C-type (control), 2 MSB -> System mode only NOP = 0x00 CALL = 0xA0 RET = 0xA1 SCALL = 0xA2 # ------------------ System mode only ------------------ INT = 0xC0 IRET = 0xC1 INVP = 0xC2