blob: cd1737b25b87b64c50147f779cd2d25fce7d62cd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
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
|