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 | | | | |