Project

General

Profile

RISC-V Instruction Set » History » Version 39

Andrei Tatarnikov, 07/26/2018 05:35 PM

1 7 Andrei Tatarnikov
h1. Instructions supported by MicroTESK for RISC-V
2
3 38 Andrei Tatarnikov
The table below shows the state of support for particular instructions in MicroTESK for RISC-V.
4
5
There are three stages of support marked with different colors:
6
{background:#cfc}. | Fully supported |
7
{background:#ff9}. | Partially supported |
8
{background:#fcc}. | Currently unsupported |
9
10 39 Andrei Tatarnikov
To be supported in MicroTESK, instructions need to be described in formal specifications. The <code>Specified</code> column shows whether specific instructions were described in the specifications.
11
12
The instruction semantics described in specifications may be incomplete or invalid. Therefore, instruction specifications are validated with tests (e.g. ones ported from https://github.com/riscv/riscv-tests). To perform validation, the tests are executed in an ISA simulator constructed on the basis of the specifications. The <code>Validated</code> column shows whether the specifications of specific instructions were validated with tests.
13
14 11 Andrei Tatarnikov
{font-weight:bold; background:#ddd}. | Instruction Set | Instructions | Specified | Validated |
15 30 Andrei Tatarnikov
{background:#cfc}. | *RV32I (User)* | LUI
16 19 Andrei Tatarnikov
                               AUIPC
17
                               JAL
18
                               JALR
19
                               BEQ
20
                               BNE
21
                               BLT
22
                               BGE
23
                               BLTU
24
                               BGEU
25
                               LB
26
                               LH
27
                               LW
28
                               LBU
29
                               LHU
30
                               SB
31
                               SH
32
                               SW
33
                               ADDI
34
                               SLTI
35
                               SLTIU
36
                               XORI
37
                               ORI
38
                               ANDI
39
                               SLLI
40
                               SRLI
41
                               SRAI
42
                               SLL
43
                               SRL
44
                               SRA
45
                               ADD
46
                               SUB
47
                               SLT
48
                               SLTU
49
                               XOR
50
                               OR
51 23 Andrei Tatarnikov
                               AND | Yes (37/37) | Yes (37/37) |
52 30 Andrei Tatarnikov
{background:#cfc}. | *RV64I (User)* | LWU
53 22 Andrei Tatarnikov
                               LD
54
                               SD
55
                               ADDIW
56
                               SLLIW
57
                               SRLIW
58
                               SRAIW
59
                               ADDW
60
                               SUBW
61
                               SLLW
62 1 Alexander Protsenko
                               SRLW
63
                               SRAW | Yes (12/12) | Yes (12/12) |
64 30 Andrei Tatarnikov
{background:#ff9}. | *RV32I (System)* | ECALL
65
                                        EBREAK
66
                                        FENCE
67
                                        FENCE.I
68
                                        MRET
69
                                        SRET
70
                                        URET
71
                                        WFI
72
                                        CSRRW
73
                                        CSRRS
74
                                        CSRRC
75
                                        CSRRWI
76
                                        CSRRSI
77 31 Andrei Tatarnikov
                                        CSRRCI | Yes (14/14) | No (0/14) |
78 15 Andrei Tatarnikov
{background:#cfc}. | *RV32M* | MUL
79 18 Andrei Tatarnikov
                               MULH
80
                               MULHSU
81
                               MULHU
82
                               DIV
83
                               DIVU
84
                               REM
85
                               REMU | Yes (8/8) | Yes (8/8) |
86 15 Andrei Tatarnikov
{background:#cfc}. | *RV64M* | MULW
87 18 Andrei Tatarnikov
                               DIVW
88
                               DIVUW
89
                               REMW
90
                               REMUW | Yes (5/5) | Yes (5/5) |
91 15 Andrei Tatarnikov
{background:#cfc}. | *RV32A* | LR.W
92 18 Andrei Tatarnikov
                               SC.W
93
                               AMOSWAP.W
94
                               AMOADD.W
95
                               AMOXOR.W
96
                               AMOAND.W
97
                               AMOOR.W
98
                               AMOMIN.W
99
                               AMOMAX.W
100
                               AMOMINU.W
101
                               AMOMAXU.W | Yes (11/11) | Yes (11/11) |
102 15 Andrei Tatarnikov
{background:#cfc}. | *RV64A* | LR.D
103 18 Andrei Tatarnikov
                               SC.D
104
                               AMOSWAP.D
105
                               AMOADD.D
106
                               AMOXOR.D
107
                               AMOAND.D
108
                               AMOOR.D
109
                               AMOMIN.D
110
                               AMOMAX.D
111
                               AMOMINU.D
112
                               AMOMAXU.D | Yes (11/11) | Yes (11/11) |
113 15 Andrei Tatarnikov
{background:#ff9}. | *RV32F* | FLW
114 17 Andrei Tatarnikov
                               FSW
115
                               FMADD.S
116
                               FMSUB.S
117
                               FNMSUB.S
118
                               FNMADD.S
119
                               FADD.S
120
                               FSUB.S
121
                               FMUL.S
122
                               FDIV.S
123
                               FSQRT.S
124
                               FSGNJ.S
125
                               FSGNJN.S
126
                               FSGNJX.S
127
                               FMIN.S
128
                               FMAX.S
129
                               FCVT.W.S
130
                               FCVT.WU.S
131
                               FMV.X.W (FMV.X.S)
132
                               FEQ.S
133
                               FLT.S
134
                               FLE.S
135
                               FCLASS.S
136
                               FCVT.S.W
137
                               FCVT.S.WU
138 35 Andrei Tatarnikov
                               FMV.W.X (FMV.S.X) | Yes (26/26) | Partially (8/26)
139 36 Andrei Tatarnikov
                                                                 Including (8): 
140 35 Andrei Tatarnikov
                                                                 FLW
141
                                                                 FSW
142
                                                                 FEQ_S
143
                                                                 FLE_S
144
                                                                 FLT_S
145
                                                                 FEQ_S
146
                                                                 FLE_S
147
                                                                 FLT_S |
148 17 Andrei Tatarnikov
{background:#ff9}. | *RV64F* | FCVT.L.S
149
                               FCVT.LU.S
150
                               FCVT.S.L
151 36 Andrei Tatarnikov
                               FCVT.S.LU | Yes (4/4) | Partially (0/4) |
152 17 Andrei Tatarnikov
{background:#ff9}. | *RV32D* | FLD
153
                               FSD
154
                               FMADD.D
155
                               FMSUB.D
156
                               FNMSUB.D
157
                               FNMADD.D
158
                               FADD.D
159
                               FSUB.D
160
                               FMUL.D
161
                               FDIV.D
162
                               FSQRT.D
163
                               FSGNJ.D
164
                               FSGNJN.D
165
                               FSGNJX.D
166
                               FMIN.D
167
                               FMAX.D
168
                               FCVT.S.D
169
                               FCVT.D.S
170
                               FEQ.D
171
                               FLT.D
172
                               FLE.D
173
                               FCLASS.D
174
                               FCVT.W.D
175 1 Alexander Protsenko
                               FCVT.WU.D
176
                               FCVT.D.W
177 36 Andrei Tatarnikov
                               FCVT.D.WU | Yes (26/26) | Partially (2/26) 
178
                                                         Including (2):
179
                                                         FLD
180
                                                         FSD |
181 18 Andrei Tatarnikov
{background:#ff9}. | *RV64D* | FCVT.L.D
182 1 Alexander Protsenko
                               FCVT.LU.D
183 18 Andrei Tatarnikov
                               FMV.X.D
184
                               FCVT.D.L
185
                               FCVT.D.LU
186 36 Andrei Tatarnikov
                               FMV.D.X   | Yes (6/6) | No (0/6)  |
187 28 Andrei Tatarnikov
{background:#ff9}. | *RVC*   | C.ADDI4SPN
188
                               C.FLD
189
                               C.LQ
190
                               C.LW
191
                               C.FLW
192
                               C.LD
193
                               C.FSD
194
                               C.SQ
195
                               C.SW
196
                               C.FSW
197
                               C.SD
198
                               C.NOP
199
                               C.ADDI
200
                               C.JAL
201
                               C.ADDIW
202
                               C.LI
203
                               C.ADDI16SP
204
                               C.LUI
205
                               C.SRLI
206
                               C.SRLI64
207
                               C.SRAI
208
                               C.SRAI64
209
                               C.ANDI
210
                               C.SUB
211
                               C.XOR
212
                               C.OR
213
                               C.AND
214
                               C.SUBW
215
                               C.ADDW
216
                               C.J
217
                               C.BEQZ
218
                               C.BNEZ
219
                               C.SLLI
220
                               C.SLLI64
221
                               C.FLDSP
222
                               C.LQSP
223
                               C.LWSP
224
                               C.FLWSP
225
                               C.LDSP
226
                               C.JR
227
                               C.MV
228
                               C.EBREAK
229
                               C.JALR
230
                               C.ADD
231
                               C.FSDSP
232
                               C.SQSP
233
                               C.SWSP
234
                               C.FSWSP
235
                               C.SDSP | Yes (49/49) | Partially (36/49)
236 32 Andrei Tatarnikov
                                                      Excluding (13): 
237
                                                      C.LQ
238
                                                      C.FLW
239
                                                      C.SQ
240
                                                      C.FSW
241
                                                      C.NOP
242
                                                      C.SRLI64
243
                                                      C.SRAI64
244
                                                      C.SLLI64
245
                                                      C.LQSP
246
                                                      C.FLWSP
247
                                                      C.EBREAK
248
                                                      C.SQSP
249
                                                      C.FSWSP |
250 34 Andrei Tatarnikov
{background:#fcc}. | *RV64Q* | | No | No |
251 33 Andrei Tatarnikov
{background:#fcc}. | *RV32V* | VADD
252
                               VSUB
253
                               VSL
254
                               VSR
255
                               VAND
256
                               VOR
257
                               VXOR
258
                               VSEQ
259
                               VSNE
260
                               VSLT
261
                               VSGE
262
                               VCLIP
263
                               VCVT
264
                               VMPOP
265
                               VMFIRST
266
                               VEXTRACT
267
                               VINSERT
268
                               VMERGE
269
                               VSELECT
270
                               VSLIDE
271
                               VDIV
272
                               VREM
273
                               VMUL
274
                               VMULH
275
                               VMIN
276
                               VMAX
277
                               VSGNJ
278
                               VSGNJN
279
                               VSGNJX
280
                               VSQRT
281
                               VCLASS
282
                               VPOPC
283
                               VADDI
284
                               VSLI
285
                               VSRI
286
                               VANDI
287
                               VORI
288
                               VXORI
289
                               VCLIPI
290 10 Andrei Tatarnikov
                               VMADD
291 7 Andrei Tatarnikov
                               VMSUB
292 37 Andrei Tatarnikov
                               VNMADD
293
                               VNMSUB | No | No |
294
{background:#ddd}. | Total |  |   | |