diff options
Diffstat (limited to 'hdl/core/opcodes.py')
-rw-r--r-- | hdl/core/opcodes.py | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/hdl/core/opcodes.py b/hdl/core/opcodes.py index 09c5d2c..cd1737b 100644 --- a/hdl/core/opcodes.py +++ b/hdl/core/opcodes.py @@ -1,25 +1,29 @@ -from ctypes.wintypes import INT from enum import unique, Enum -from http.client import MULTI_STATUS @unique class OpCodes(Enum): # R-type - NOP = 0x00 ADD = 0x01 - SUB = 0x02 - XOR = 0x03 - OR = 0x04 - AND = 0x05 - LSL = 0x06 - LSR = 0x07 - ASR = 0x08 - MUL = 0x09 - MULU = 0x0A - DIV = 0x0B # not implemented yet - DIVU = 0x0C # not implemented yet + 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 @@ -30,16 +34,19 @@ class OpCodes(Enum): LSLI = 0x45 LSRI = 0x46 ASRI = 0x47 - MULI = 0x48 - MULUI = 0x49 - DIVI = 0x4A # not implemented yet - DIVUI = 0x4B # not implemented yet + 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 |