summaryrefslogtreecommitdiff
path: root/hdl/core/opcodes.py
diff options
context:
space:
mode:
Diffstat (limited to 'hdl/core/opcodes.py')
-rw-r--r--hdl/core/opcodes.py43
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