Project

General

Profile

RISC-V Instruction Set » History » Version 23

Andrei Tatarnikov, 07/26/2018 03:30 PM

1 7 Andrei Tatarnikov
h1. Instructions supported by MicroTESK for RISC-V
2
3 11 Andrei Tatarnikov
{font-weight:bold; background:#ddd}. | Instruction Set | Instructions | Specified | Validated |
4 19 Andrei Tatarnikov
{background:#cfc}. | *RV32I* | LUI
5
                               AUIPC
6
                               JAL
7
                               JALR
8
                               BEQ
9
                               BNE
10
                               BLT
11
                               BGE
12
                               BLTU
13
                               BGEU
14
                               LB
15
                               LH
16
                               LW
17
                               LBU
18
                               LHU
19
                               SB
20
                               SH
21
                               SW
22
                               ADDI
23
                               SLTI
24
                               SLTIU
25
                               XORI
26
                               ORI
27
                               ANDI
28
                               SLLI
29
                               SRLI
30
                               SRAI
31
                               SLL
32
                               SRL
33
                               SRA
34
                               ADD
35
                               SUB
36
                               SLT
37
                               SLTU
38
                               XOR
39
                               OR
40 23 Andrei Tatarnikov
                               AND | Yes (37/37) | Yes (37/37) |
41 22 Andrei Tatarnikov
{background:#cfc}. | *RV64I* | LWU
42
                               LD
43
                               SD
44
                               ADDIW
45
                               SLLIW
46
                               SRLIW
47
                               SRAIW
48
                               ADDW
49
                               SUBW
50
                               SLLW
51
                               SRLW
52
                               SRAW | Yes (12/12) | Yes (12/12) |
53 15 Andrei Tatarnikov
{background:#cfc}. | *RV32M* | MUL
54 18 Andrei Tatarnikov
                               MULH
55
                               MULHSU
56
                               MULHU
57
                               DIV
58
                               DIVU
59
                               REM
60
                               REMU | Yes (8/8) | Yes (8/8) |
61 15 Andrei Tatarnikov
{background:#cfc}. | *RV64M* | MULW
62 18 Andrei Tatarnikov
                               DIVW
63
                               DIVUW
64
                               REMW
65
                               REMUW | Yes (5/5) | Yes (5/5) |
66 15 Andrei Tatarnikov
{background:#cfc}. | *RV32A* | LR.W
67 18 Andrei Tatarnikov
                               SC.W
68
                               AMOSWAP.W
69
                               AMOADD.W
70
                               AMOXOR.W
71
                               AMOAND.W
72
                               AMOOR.W
73
                               AMOMIN.W
74
                               AMOMAX.W
75
                               AMOMINU.W
76
                               AMOMAXU.W | Yes (11/11) | Yes (11/11) |
77 15 Andrei Tatarnikov
{background:#cfc}. | *RV64A* | LR.D
78 18 Andrei Tatarnikov
                               SC.D
79
                               AMOSWAP.D
80
                               AMOADD.D
81
                               AMOXOR.D
82
                               AMOAND.D
83
                               AMOOR.D
84
                               AMOMIN.D
85
                               AMOMAX.D
86
                               AMOMINU.D
87
                               AMOMAXU.D | Yes (11/11) | Yes (11/11) |
88 15 Andrei Tatarnikov
{background:#ff9}. | *RV32F* | FLW
89 17 Andrei Tatarnikov
                               FSW
90
                               FMADD.S
91
                               FMSUB.S
92
                               FNMSUB.S
93
                               FNMADD.S
94
                               FADD.S
95
                               FSUB.S
96
                               FMUL.S
97
                               FDIV.S
98
                               FSQRT.S
99
                               FSGNJ.S
100
                               FSGNJN.S
101
                               FSGNJX.S
102
                               FMIN.S
103
                               FMAX.S
104
                               FCVT.W.S
105
                               FCVT.WU.S
106
                               FMV.X.W (FMV.X.S)
107
                               FEQ.S
108
                               FLT.S
109
                               FLE.S
110
                               FCLASS.S
111
                               FCVT.S.W
112
                               FCVT.S.WU
113
                               FMV.W.X (FMV.S.X) | Yes (26/26) | Partially (?/26) |
114
{background:#ff9}. | *RV64F* | FCVT.L.S
115
                               FCVT.LU.S
116
                               FCVT.S.L
117
                               FCVT.S.LU | Yes (4/4) | Partially (?/4) |
118
{background:#ff9}. | *RV32D* | FLD
119
                               FSD
120
                               FMADD.D
121
                               FMSUB.D
122
                               FNMSUB.D
123
                               FNMADD.D
124
                               FADD.D
125
                               FSUB.D
126
                               FMUL.D
127
                               FDIV.D
128
                               FSQRT.D
129
                               FSGNJ.D
130
                               FSGNJN.D
131
                               FSGNJX.D
132
                               FMIN.D
133
                               FMAX.D
134
                               FCVT.S.D
135
                               FCVT.D.S
136
                               FEQ.D
137
                               FLT.D
138
                               FLE.D
139
                               FCLASS.D
140
                               FCVT.W.D
141
                               FCVT.WU.D
142
                               FCVT.D.W
143 18 Andrei Tatarnikov
                               FCVT.D.WU | Yes (26/26) | Partially (?/26) |
144
{background:#ff9}. | *RV64D* | FCVT.L.D
145
                               FCVT.LU.D
146
                               FMV.X.D
147
                               FCVT.D.L
148
                               FCVT.D.LU
149 1 Alexander Protsenko
                               FMV.D.X   | Yes (6/6) | Partially (?/6)  |
150 23 Andrei Tatarnikov
{background:#ff9}. | *RVC*   | C.ADDI4SPN (RES, nzimm=0) +
151
                               C.FLD (RV32/64) +
152
                               C.LQ (RV128) +
153
                               C.LW +
154
                               C.FLW (RV32) +
155
                               C.LD (RV64/128) +
156
                               C.FSD (RV32/64) +
157
                               C.SQ (RV128) +
158
                               C.SW +
159
                               C.FSW (RV32) +
160
                               C.SD (RV64/128) +
161
                               C.NOP +
162
                               C.ADDI (HINT, nzimm=0) +
163
                               C.JAL (RV32) +
164
                               C.ADDIW (RV64/128; RES, rd=0) +
165
                               C.LI (HINT, rd=0) +
166
                               C.ADDI16SP (RES, nzimm=0) +
167
                               C.LUI (RES, nzimm=0; HINT, rd=0) +
168
                               C.SRLI (RV32 NSE, nzimm[5]=1) +
169
                               C.SRLI64 (RV128; RV32/64 HINT) +
170
                               C.SRAI (RV32 NSE, nzimm[5]=1) +
171
                               C.SRAI64 (RV128; RV32/64 HINT) +
172
                               C.ANDI +
173
                               C.SUB +
174
                               C.XOR +
175
                               C.OR +
176
                               C.AND +
177
                               C.SUBW (RV64/128; RV32 RES) +
178
                               C.ADDW (RV64/128; RV32 RES) +
179
                               C.J +
180
                               C.BEQZ +
181
                               C.BNEZ +
182
                               C.SLLI (HINT, rd=0; RV32 NSE, nzimm[5]=1) +
183
                               C.SLLI64 (RV128; RV32/64 HINT; HINT, rd=0) +
184
                               C.FLDSP (RV32/64) +
185
                               C.LQSP (RV128; RES, rd=0) +
186
                               C.LWSP (RES, rd=0) +
187
                               C.FLWSP (RV32) +
188
                               C.LDSP (RV64/128; RES, rd=0) +
189
                               C.JR (RES, rs1=0) +
190
                               C.MV (HINT, rd=0) +
191
                               C.EBREAK +
192
                               C.JALR +
193
                               C.ADD (HINT, rd=0) +
194
                               C.FSDSP (RV32/64) +
195
                               C.SQSP (RV128) +
196
                               C.SWSP +
197
                               C.FSWSP (RV32) +
198
                               C.SDSP (RV64/128) + | 49| 49|
199 10 Andrei Tatarnikov
{background:#ddd}. | Total |  |   | |
200 7 Andrei Tatarnikov
201
{background:#cfc}. |  Fully supported |
202 10 Andrei Tatarnikov
{background:#ff9}. |  Partially supported |
203 7 Andrei Tatarnikov
{background:#fcc}. |  Unsupported |