-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathparam.go
143 lines (132 loc) · 2.98 KB
/
param.go
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package main
const (
StakcPointer uint64 = 1024 * 512 * 1
MemorySize uint64 = 1024 * 1024 * 128
WriteMask = 0b11111111
)
const (
OpcodeMask = 0b00000000000000000000000001111111
RdMask = 0b00000000000000000000111110000000
Funct3Mask = 0b00000000000000000111000000000000
Funct7Mask = 0b11111110000000000000000000000000
Funct5Mask = 0b11111000000000000000000000000000
AqMask = 0b00000100000000000000000000000000
RlMask = 0b00000010000000000000000000000000
Rs1Mask = 0b00000000000011111000000000000000
Rs2Mask = 0b00000001111100000000000000000000
ShametMask = 0b00000011111100000000000000000000
ItypeImm = 0b11111111111100000000000000000000
StypeImm_4_0 = 0b00000000000000000000111110000000
StypeImm_11_5 = 0b11111110000000000000000000000000
BtypeImm_12 = 0b10000000000000000000000000000000
BtypeImm_11 = 0b00000000000000000000000010000000
BtypeImm_10_5 = 0b01111110000000000000000000000000
BtypeImm_4_1 = 0b00000000000000000000111100000000
UtypeImm = 0b11111111111111111111000000000000
JtypeImm_20 = 0b10000000000000000000000000000000
JtypeImm_11 = 0b00000000000100000000000000000000
JtypeImm_19_12 = 0b00000000000011111111000000000000
JtypeImm_10_1 = 0b01111111111000000000000000000000
Imm20Mask = 0b11111111111111111111000000000000
Imm12Mask = 0b11111111111100000000000000000000
)
const (
SYSCALL = 0b1110011
)
const (
LUI = 0b0110111
AUIPC = 0b0010111
JAL = 0b1101111
JALR = 0b1100111
)
const (
BType = 0b1100011
BEQ = 0b000
BNE = 0b001
BLT = 0b100
BGE = 0b101
BLTU = 0b110
BGEU = 0b111
)
const (
LOAD = 0b0000011
LB = 0b000
LH = 0b001
LW = 0b010
LD = 0b011
LBU = 0b100
LHU = 0b101
LWU = 0b110
)
const (
SType = 0b0100011
SB = 0b000
SH = 0b001
SW = 0b010
SD = 0b011
)
const (
IType = 0b0010011
ADDI = 0b000
SLLI = 0b001
SLTI = 0b010
SLTIU = 0b011
XORI = 0b100
SRI = 0b101
SRLI = 0b0000000
SRAI = 0b0100000
ORI = 0b110
ANDI = 0b111
)
const (
RType = 0b0110011
ADDSUB = 0b000
ADD = 0b0000000
MUL = 0b0000001
SUB = 0b0100000
SLLMULH = 0b001
SLL = 0b0000000
MULH = 0b0000001
SLTMULHSU = 0b010
SLT = 0b0000000
MULHSU = 0b0000001
SLTUMULHU = 0b011
SLTU = 0b0000000
MULHU = 0b0000001
XORDIV = 0b100
XOR = 0b0000000
DIV = 0b0000001
SR = 0b101
SRL = 0b0000000
SRA = 0b0100000
DIVU = 0b0000001
ORREM = 0b110
OR = 0b0000000
REM = 0b0000001
ANDREMU = 0b111
AND = 0b0000000
REMU = 0b0000001
)
const (
IType64 = 0b0011011
ADDIW = 0b000
SLLIW = 0b001
SRIW = 0b101
SRLIW = 0b0000000
SRAIW = 0b0100000
)
const (
RType64 = 0b0111011
ADDSUBW = 0b000
ADDW = 0b0000000
MULW = 0b0000001
SUBW = 0b0100000
SLLW = 0b001
DIVW = 0b100
SRW = 0b101
SRLW = 0b0000000
DIVUW = 0b0000001
SRAW = 0b0100000
REMW = 0b110
REMUW = 0b111
)