1 # SPDX-License-Identifier: LGPL-2.0+
3 # Sparc instruction decode definitions.
4 # Copyright (c) 2023 Richard Henderson <rth@twiddle.net>
7 ## Major Opcodes 00 and 01 -- branches, call, and sethi.
11 BPcc 00 a:1 cond:4 001 cc:1 0 - i:s19 &bcc
12 Bicc 00 a:1 cond:4 010 i:s22 &bcc cc=0
13 FBPfcc 00 a:1 cond:4 101 cc:2 - i:s19 &bcc
14 FBfcc 00 a:1 cond:4 110 i:s22 &bcc cc=0
17 BPr 00 a:1 0 cond:3 011 .. - rs1:5 .............. i=%d16
19 NCP 00 - ---- 111 ---------------------- # CBcc
21 SETHI 00 rd:5 100 i:22
26 ## Major Opcode 10 -- integer, floating-point, vis, and system insns.
29 &r_r_ri rd rs1 rs2_or_imm imm:bool
30 @n_r_ri .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri rd=0
31 @r_r_ri .. rd:5 ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri
33 &r_r_ri_cc rd rs1 rs2_or_imm imm:bool cc:bool
34 @r_r_ri_cc .. rd:5 . cc:1 .... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri_cc
35 @r_r_ri_cc0 .. rd:5 ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri_cc cc=0
36 @r_r_ri_cc1 .. rd:5 ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri_cc cc=1
39 @r_r_r .. rd:5 ...... rs1:5 . ........ rs2:5 &r_r_r
40 @r_r_r_swap .. rd:5 ...... rs2:5 . ........ rs1:5 &r_r_r
43 @r_r1 .. rd:5 ...... rs:5 . ........ ..... &r_r
44 @r_r2 .. rd:5 ...... ..... . ........ rs:5 &r_r
48 STBAR 10 00000 101000 01111 0 0000000000000
49 MEMBAR 10 00000 101000 01111 1 000000 cmask:3 mmask:4
51 RDCCR 10 rd:5 101000 00010 0 0000000000000
52 RDASI 10 rd:5 101000 00011 0 0000000000000
53 RDTICK 10 rd:5 101000 00100 0 0000000000000
54 RDPC 10 rd:5 101000 00101 0 0000000000000
55 RDFPRS 10 rd:5 101000 00110 0 0000000000000
56 RDASR17 10 rd:5 101000 10001 0 0000000000000
57 RDGSR 10 rd:5 101000 10011 0 0000000000000
58 RDSOFTINT 10 rd:5 101000 10110 0 0000000000000
59 RDTICK_CMPR 10 rd:5 101000 10111 0 0000000000000
60 RDSTICK 10 rd:5 101000 11000 0 0000000000000
61 RDSTICK_CMPR 10 rd:5 101000 11001 0 0000000000000
62 RDSTRAND_STATUS 10 rd:5 101000 11010 0 0000000000000
64 # Before v8, all rs1 accepted; otherwise rs1==0.
65 RDY 10 rd:5 101000 rs1:5 0 0000000000000
70 WRY 10 00000 110000 ..... . ............. @n_r_ri
71 WRCCR 10 00010 110000 ..... . ............. @n_r_ri
72 WRASI 10 00011 110000 ..... . ............. @n_r_ri
73 WRFPRS 10 00110 110000 ..... . ............. @n_r_ri
75 WRGSR 10 10011 110000 ..... . ............. @n_r_ri
76 WRPOWERDOWN 10 10011 110000 ..... . ............. @n_r_ri
78 WRSOFTINT_SET 10 10100 110000 ..... . ............. @n_r_ri
79 WRSOFTINT_CLR 10 10101 110000 ..... . ............. @n_r_ri
80 WRSOFTINT 10 10110 110000 ..... . ............. @n_r_ri
81 WRTICK_CMPR 10 10111 110000 ..... . ............. @n_r_ri
82 WRSTICK 10 11000 110000 ..... . ............. @n_r_ri
83 WRSTICK_CMPR 10 11001 110000 ..... . ............. @n_r_ri
85 # Before v8, rs1==0 was WRY, and the rest executed as nop.
87 NOP_v7 10 ----- 110000 ----- 0 00000000 -----
88 NOP_v7 10 ----- 110000 ----- 1 -------- -----
93 RDPSR 10 rd:5 101001 00000 0 0000000000000
94 RDHPR_hpstate 10 rd:5 101001 00000 0 0000000000000
96 RDHPR_htstate 10 rd:5 101001 00001 0 0000000000000
97 RDHPR_hintp 10 rd:5 101001 00011 0 0000000000000
98 RDHPR_htba 10 rd:5 101001 00101 0 0000000000000
99 RDHPR_hver 10 rd:5 101001 00110 0 0000000000000
100 RDHPR_hstick_cmpr 10 rd:5 101001 11111 0 0000000000000
103 WRPSR 10 00000 110001 ..... . ............. @n_r_ri
104 SAVED 10 00000 110001 00000 0 0000000000000
106 RESTORED 10 00001 110001 00000 0 0000000000000
113 RDWIM 10 rd:5 101010 00000 0 0000000000000
114 RDPR_tpc 10 rd:5 101010 00000 0 0000000000000
116 RDPR_tnpc 10 rd:5 101010 00001 0 0000000000000
117 RDPR_tstate 10 rd:5 101010 00010 0 0000000000000
118 RDPR_tt 10 rd:5 101010 00011 0 0000000000000
119 RDPR_tick 10 rd:5 101010 00100 0 0000000000000
120 RDPR_tba 10 rd:5 101010 00101 0 0000000000000
121 RDPR_pstate 10 rd:5 101010 00110 0 0000000000000
122 RDPR_tl 10 rd:5 101010 00111 0 0000000000000
123 RDPR_pil 10 rd:5 101010 01000 0 0000000000000
124 RDPR_cwp 10 rd:5 101010 01001 0 0000000000000
125 RDPR_cansave 10 rd:5 101010 01010 0 0000000000000
126 RDPR_canrestore 10 rd:5 101010 01011 0 0000000000000
127 RDPR_cleanwin 10 rd:5 101010 01100 0 0000000000000
128 RDPR_otherwin 10 rd:5 101010 01101 0 0000000000000
129 RDPR_wstate 10 rd:5 101010 01110 0 0000000000000
130 RDPR_gl 10 rd:5 101010 10000 0 0000000000000
131 RDPR_strand_status 10 rd:5 101010 11010 0 0000000000000
132 RDPR_ver 10 rd:5 101010 11111 0 0000000000000
135 WRWIM 10 00000 110010 ..... . ............. @n_r_ri
136 WRPR_tpc 10 00000 110010 ..... . ............. @n_r_ri
138 WRPR_tnpc 10 00001 110010 ..... . ............. @n_r_ri
139 WRPR_tstate 10 00010 110010 ..... . ............. @n_r_ri
140 WRPR_tt 10 00011 110010 ..... . ............. @n_r_ri
141 WRPR_tick 10 00100 110010 ..... . ............. @n_r_ri
142 WRPR_tba 10 00101 110010 ..... . ............. @n_r_ri
143 WRPR_pstate 10 00110 110010 ..... . ............. @n_r_ri
144 WRPR_tl 10 00111 110010 ..... . ............. @n_r_ri
145 WRPR_pil 10 01000 110010 ..... . ............. @n_r_ri
146 WRPR_cwp 10 01001 110010 ..... . ............. @n_r_ri
147 WRPR_cansave 10 01010 110010 ..... . ............. @n_r_ri
148 WRPR_canrestore 10 01011 110010 ..... . ............. @n_r_ri
149 WRPR_cleanwin 10 01100 110010 ..... . ............. @n_r_ri
150 WRPR_otherwin 10 01101 110010 ..... . ............. @n_r_ri
151 WRPR_wstate 10 01110 110010 ..... . ............. @n_r_ri
152 WRPR_gl 10 10000 110010 ..... . ............. @n_r_ri
153 WRPR_strand_status 10 11010 110010 ..... . ............. @n_r_ri
156 FLUSHW 10 00000 101011 00000 0 0000000000000
157 RDTBR 10 rd:5 101011 00000 0 0000000000000
161 WRTBR 10 00000 110011 ..... . ............. @n_r_ri
162 WRHPR_hpstate 10 00000 110011 ..... . ............. @n_r_ri
164 WRHPR_htstate 10 00001 110011 ..... . ............. @n_r_ri
165 WRHPR_hintp 10 00011 110011 ..... . ............. @n_r_ri
166 WRHPR_htba 10 00101 110011 ..... . ............. @n_r_ri
167 WRHPR_hstick_cmpr 10 11111 110011 ..... . ............. @n_r_ri
169 ADD 10 ..... 0.0000 ..... . ............. @r_r_ri_cc
170 AND 10 ..... 0.0001 ..... . ............. @r_r_ri_cc
171 OR 10 ..... 0.0010 ..... . ............. @r_r_ri_cc
172 XOR 10 ..... 0.0011 ..... . ............. @r_r_ri_cc
173 SUB 10 ..... 0.0100 ..... . ............. @r_r_ri_cc
174 ANDN 10 ..... 0.0101 ..... . ............. @r_r_ri_cc
175 ORN 10 ..... 0.0110 ..... . ............. @r_r_ri_cc
176 XORN 10 ..... 0.0111 ..... . ............. @r_r_ri_cc
177 ADDC 10 ..... 0.1000 ..... . ............. @r_r_ri_cc
178 SUBC 10 ..... 0.1100 ..... . ............. @r_r_ri_cc
180 MULX 10 ..... 001001 ..... . ............. @r_r_ri_cc0
181 UMUL 10 ..... 0.1010 ..... . ............. @r_r_ri_cc
182 SMUL 10 ..... 0.1011 ..... . ............. @r_r_ri_cc
183 MULScc 10 ..... 100100 ..... . ............. @r_r_ri_cc1
185 UDIVX 10 ..... 001101 ..... . ............. @r_r_ri
186 SDIVX 10 ..... 101101 ..... . ............. @r_r_ri
187 UDIV 10 ..... 001110 ..... . ............. @r_r_ri
188 UDIVcc 10 ..... 011110 ..... . ............. @r_r_ri_cc1
189 SDIV 10 ..... 0.1111 ..... . ............. @r_r_ri_cc
191 TADDcc 10 ..... 100000 ..... . ............. @r_r_ri_cc1
192 TSUBcc 10 ..... 100001 ..... . ............. @r_r_ri_cc1
193 TADDccTV 10 ..... 100010 ..... . ............. @r_r_ri_cc1
194 TSUBccTV 10 ..... 100011 ..... . ............. @r_r_ri_cc1
196 POPC 10 rd:5 101110 00000 imm:1 rs2_or_imm:s13 \
197 &r_r_ri_cc rs1=0 cc=0
199 &shiftr rd rs1 rs2 x:bool
200 @shiftr .. rd:5 ...... rs1:5 . x:1 ....... rs2:5 &shiftr
202 SLL_r 10 ..... 100101 ..... 0 . 0000000 ..... @shiftr
203 SRL_r 10 ..... 100110 ..... 0 . 0000000 ..... @shiftr
204 SRA_r 10 ..... 100111 ..... 0 . 0000000 ..... @shiftr
206 &shifti rd rs1 i x:bool
207 @shifti .. rd:5 ...... rs1:5 . x:1 ...... i:6 &shifti
209 SLL_i 10 ..... 100101 ..... 1 . 000000 ...... @shifti
210 SRL_i 10 ..... 100110 ..... 1 . 000000 ...... @shifti
211 SRA_i 10 ..... 100111 ..... 1 . 000000 ...... @shifti
213 Tcc_r 10 0 cond:4 111010 rs1:5 0 cc:1 0000000 rs2:5
215 # For v7, the entire simm13 field is present, but masked to 7 bits.
216 # For v8, [12:7] are reserved. However, a compatibility note for
217 # the Tcc insn in the v9 manual suggests that the v8 reserved field
218 # was ignored and did not produce traps.
219 Tcc_i_v7 10 0 cond:4 111010 rs1:5 1 ------ i:7
221 # For v9, bits [12:11] are cc1 and cc0 (and cc0 must be 0).
222 # Bits [10:8] are reserved and the OSA2011 manual says they must be 0.
223 Tcc_i_v9 10 0 cond:4 111010 rs1:5 1 cc:1 0 000 i:8
226 MOVcc 10 rd:5 101100 1 cond:4 imm:1 cc:1 0 rs2_or_imm:s11
227 MOVfcc 10 rd:5 101100 0 cond:4 imm:1 cc:2 rs2_or_imm:s11
228 MOVR 10 rd:5 101111 rs1:5 imm:1 cond:3 rs2_or_imm:s10
230 JMPL 10 ..... 111000 ..... . ............. @r_r_ri
232 RETT 10 00000 111001 ..... . ............. @n_r_ri
233 RETURN 10 00000 111001 ..... . ............. @n_r_ri
235 NOP 10 00000 111011 ----- 0 00000000----- # FLUSH reg+reg
236 NOP 10 00000 111011 ----- 1 ------------- # FLUSH reg+imm
237 SAVE 10 ..... 111100 ..... . ............. @r_r_ri
238 RESTORE 10 ..... 111101 ..... . ............. @r_r_ri
240 DONE 10 00000 111110 00000 0 0000000000000
241 RETRY 10 00001 111110 00000 0 0000000000000
243 FMOVs 10 ..... 110100 00000 0 0000 0001 ..... @r_r2
244 FMOVd 10 ..... 110100 00000 0 0000 0010 ..... @r_r2
245 FMOVq 10 ..... 110100 00000 0 0000 0011 ..... @r_r2
246 FNEGs 10 ..... 110100 00000 0 0000 0101 ..... @r_r2
247 FNEGd 10 ..... 110100 00000 0 0000 0110 ..... @r_r2
248 FNEGq 10 ..... 110100 00000 0 0000 0111 ..... @r_r2
249 FABSs 10 ..... 110100 00000 0 0000 1001 ..... @r_r2
250 FABSd 10 ..... 110100 00000 0 0000 1010 ..... @r_r2
251 FABSq 10 ..... 110100 00000 0 0000 1011 ..... @r_r2
252 FSQRTs 10 ..... 110100 00000 0 0010 1001 ..... @r_r2
253 FSQRTd 10 ..... 110100 00000 0 0010 1010 ..... @r_r2
254 FSQRTq 10 ..... 110100 00000 0 0010 1011 ..... @r_r2
255 FADDs 10 ..... 110100 ..... 0 0100 0001 ..... @r_r_r
256 FADDd 10 ..... 110100 ..... 0 0100 0010 ..... @r_r_r
257 FADDq 10 ..... 110100 ..... 0 0100 0011 ..... @r_r_r
258 FSUBs 10 ..... 110100 ..... 0 0100 0101 ..... @r_r_r
259 FSUBd 10 ..... 110100 ..... 0 0100 0110 ..... @r_r_r
260 FSUBq 10 ..... 110100 ..... 0 0100 0111 ..... @r_r_r
261 FMULs 10 ..... 110100 ..... 0 0100 1001 ..... @r_r_r
262 FMULd 10 ..... 110100 ..... 0 0100 1010 ..... @r_r_r
263 FMULq 10 ..... 110100 ..... 0 0100 1011 ..... @r_r_r
264 FDIVs 10 ..... 110100 ..... 0 0100 1101 ..... @r_r_r
265 FDIVd 10 ..... 110100 ..... 0 0100 1110 ..... @r_r_r
266 FDIVq 10 ..... 110100 ..... 0 0100 1111 ..... @r_r_r
267 FsMULd 10 ..... 110100 ..... 0 0110 1001 ..... @r_r_r
268 FdMULq 10 ..... 110100 ..... 0 0110 1110 ..... @r_r_r
269 FsTOx 10 ..... 110100 00000 0 1000 0001 ..... @r_r2
270 FdTOx 10 ..... 110100 00000 0 1000 0010 ..... @r_r2
271 FqTOx 10 ..... 110100 00000 0 1000 0011 ..... @r_r2
272 FxTOs 10 ..... 110100 00000 0 1000 0100 ..... @r_r2
273 FxTOd 10 ..... 110100 00000 0 1000 1000 ..... @r_r2
274 FxTOq 10 ..... 110100 00000 0 1000 1100 ..... @r_r2
275 FiTOs 10 ..... 110100 00000 0 1100 0100 ..... @r_r2
276 FdTOs 10 ..... 110100 00000 0 1100 0110 ..... @r_r2
277 FqTOs 10 ..... 110100 00000 0 1100 0111 ..... @r_r2
278 FiTOd 10 ..... 110100 00000 0 1100 1000 ..... @r_r2
279 FsTOd 10 ..... 110100 00000 0 1100 1001 ..... @r_r2
280 FqTOd 10 ..... 110100 00000 0 1100 1011 ..... @r_r2
281 FiTOq 10 ..... 110100 00000 0 1100 1100 ..... @r_r2
282 FsTOq 10 ..... 110100 00000 0 1100 1101 ..... @r_r2
283 FdTOq 10 ..... 110100 00000 0 1100 1110 ..... @r_r2
284 FsTOi 10 ..... 110100 00000 0 1101 0001 ..... @r_r2
285 FdTOi 10 ..... 110100 00000 0 1101 0010 ..... @r_r2
286 FqTOi 10 ..... 110100 00000 0 1101 0011 ..... @r_r2
288 FMOVscc 10 rd:5 110101 0 cond:4 1 cc:1 0 000001 rs2:5
289 FMOVdcc 10 rd:5 110101 0 cond:4 1 cc:1 0 000010 rs2:5
290 FMOVqcc 10 rd:5 110101 0 cond:4 1 cc:1 0 000011 rs2:5
292 FMOVsfcc 10 rd:5 110101 0 cond:4 0 cc:2 000001 rs2:5
293 FMOVdfcc 10 rd:5 110101 0 cond:4 0 cc:2 000010 rs2:5
294 FMOVqfcc 10 rd:5 110101 0 cond:4 0 cc:2 000011 rs2:5
296 FMOVRs 10 rd:5 110101 rs1:5 0 cond:3 00101 rs2:5
297 FMOVRd 10 rd:5 110101 rs1:5 0 cond:3 00110 rs2:5
298 FMOVRq 10 rd:5 110101 rs1:5 0 cond:3 00111 rs2:5
300 FCMPs 10 000 cc:2 110101 rs1:5 0 0101 0001 rs2:5
301 FCMPd 10 000 cc:2 110101 rs1:5 0 0101 0010 rs2:5
302 FCMPq 10 000 cc:2 110101 rs1:5 0 0101 0011 rs2:5
303 FCMPEs 10 000 cc:2 110101 rs1:5 0 0101 0101 rs2:5
304 FCMPEd 10 000 cc:2 110101 rs1:5 0 0101 0110 rs2:5
305 FCMPEq 10 000 cc:2 110101 rs1:5 0 0101 0111 rs2:5
309 EDGE8cc 10 ..... 110110 ..... 0 0000 0000 ..... @r_r_r
310 EDGE8N 10 ..... 110110 ..... 0 0000 0001 ..... @r_r_r
311 EDGE8Lcc 10 ..... 110110 ..... 0 0000 0010 ..... @r_r_r
312 EDGE8LN 10 ..... 110110 ..... 0 0000 0011 ..... @r_r_r
313 EDGE16cc 10 ..... 110110 ..... 0 0000 0100 ..... @r_r_r
314 EDGE16N 10 ..... 110110 ..... 0 0000 0101 ..... @r_r_r
315 EDGE16Lcc 10 ..... 110110 ..... 0 0000 0110 ..... @r_r_r
316 EDGE16LN 10 ..... 110110 ..... 0 0000 0111 ..... @r_r_r
317 EDGE32cc 10 ..... 110110 ..... 0 0000 1000 ..... @r_r_r
318 EDGE32N 10 ..... 110110 ..... 0 0000 1001 ..... @r_r_r
319 EDGE32Lcc 10 ..... 110110 ..... 0 0000 1010 ..... @r_r_r
320 EDGE32LN 10 ..... 110110 ..... 0 0000 1011 ..... @r_r_r
322 ARRAY8 10 ..... 110110 ..... 0 0001 0000 ..... @r_r_r
323 ARRAY16 10 ..... 110110 ..... 0 0001 0010 ..... @r_r_r
324 ARRAY32 10 ..... 110110 ..... 0 0001 0100 ..... @r_r_r
326 ALIGNADDR 10 ..... 110110 ..... 0 0001 1000 ..... @r_r_r
327 ALIGNADDRL 10 ..... 110110 ..... 0 0001 1010 ..... @r_r_r
329 BMASK 10 ..... 110110 ..... 0 0001 1001 ..... @r_r_r
331 FPCMPLE16 10 ..... 110110 ..... 0 0010 0000 ..... @r_r_r
332 FPCMPNE16 10 ..... 110110 ..... 0 0010 0010 ..... @r_r_r
333 FPCMPGT16 10 ..... 110110 ..... 0 0010 1000 ..... @r_r_r
334 FPCMPEQ16 10 ..... 110110 ..... 0 0010 1010 ..... @r_r_r
335 FPCMPLE32 10 ..... 110110 ..... 0 0010 0100 ..... @r_r_r
336 FPCMPNE32 10 ..... 110110 ..... 0 0010 0110 ..... @r_r_r
337 FPCMPGT32 10 ..... 110110 ..... 0 0010 1100 ..... @r_r_r
338 FPCMPEQ32 10 ..... 110110 ..... 0 0010 1110 ..... @r_r_r
340 FMUL8x16 10 ..... 110110 ..... 0 0011 0001 ..... @r_r_r
341 FMUL8x16AU 10 ..... 110110 ..... 0 0011 0011 ..... @r_r_r
342 FMUL8x16AL 10 ..... 110110 ..... 0 0011 0101 ..... @r_r_r
343 FMUL8SUx16 10 ..... 110110 ..... 0 0011 0110 ..... @r_r_r
344 FMUL8ULx16 10 ..... 110110 ..... 0 0011 0111 ..... @r_r_r
345 FMULD8SUx16 10 ..... 110110 ..... 0 0011 1000 ..... @r_r_r
346 FMULD8ULx16 10 ..... 110110 ..... 0 0011 1001 ..... @r_r_r
347 FPACK32 10 ..... 110110 ..... 0 0011 1010 ..... @r_r_r
348 FPACK16 10 ..... 110110 00000 0 0011 1011 ..... @r_r2
349 FPACKFIX 10 ..... 110110 00000 0 0011 1101 ..... @r_r2
350 PDIST 10 ..... 110110 ..... 0 0011 1110 ..... @r_r_r
352 FALIGNDATAg 10 ..... 110110 ..... 0 0100 1000 ..... @r_r_r
353 FPMERGE 10 ..... 110110 ..... 0 0100 1011 ..... @r_r_r
354 BSHUFFLE 10 ..... 110110 ..... 0 0100 1100 ..... @r_r_r
355 FEXPAND 10 ..... 110110 ..... 0 0100 1101 ..... @r_r_r
357 FSRCd 10 ..... 110110 ..... 0 0111 0100 00000 @r_r1 # FSRC1d
358 FSRCs 10 ..... 110110 ..... 0 0111 0101 00000 @r_r1 # FSRC1s
359 FSRCd 10 ..... 110110 00000 0 0111 1000 ..... @r_r2 # FSRC2d
360 FSRCs 10 ..... 110110 00000 0 0111 1001 ..... @r_r2 # FSRC2s
361 FNOTd 10 ..... 110110 ..... 0 0110 1010 00000 @r_r1 # FNOT1d
362 FNOTs 10 ..... 110110 ..... 0 0110 1011 00000 @r_r1 # FNOT1s
363 FNOTd 10 ..... 110110 00000 0 0110 0110 ..... @r_r2 # FNOT2d
364 FNOTs 10 ..... 110110 00000 0 0110 0111 ..... @r_r2 # FNOT2s
366 FPADD16 10 ..... 110110 ..... 0 0101 0000 ..... @r_r_r
367 FPADD16s 10 ..... 110110 ..... 0 0101 0001 ..... @r_r_r
368 FPADD32 10 ..... 110110 ..... 0 0101 0010 ..... @r_r_r
369 FPADD32s 10 ..... 110110 ..... 0 0101 0011 ..... @r_r_r
370 FPSUB16 10 ..... 110110 ..... 0 0101 0100 ..... @r_r_r
371 FPSUB16s 10 ..... 110110 ..... 0 0101 0101 ..... @r_r_r
372 FPSUB32 10 ..... 110110 ..... 0 0101 0110 ..... @r_r_r
373 FPSUB32s 10 ..... 110110 ..... 0 0101 0111 ..... @r_r_r
375 FNORd 10 ..... 110110 ..... 0 0110 0010 ..... @r_r_r
376 FNORs 10 ..... 110110 ..... 0 0110 0011 ..... @r_r_r
377 FANDNOTd 10 ..... 110110 ..... 0 0110 0100 ..... @r_r_r # FANDNOT2d
378 FANDNOTs 10 ..... 110110 ..... 0 0110 0101 ..... @r_r_r # FANDNOT2s
379 FANDNOTd 10 ..... 110110 ..... 0 0110 1000 ..... @r_r_r_swap # ... 1d
380 FANDNOTs 10 ..... 110110 ..... 0 0110 1001 ..... @r_r_r_swap # ... 1s
381 FXORd 10 ..... 110110 ..... 0 0110 1100 ..... @r_r_r
382 FXORs 10 ..... 110110 ..... 0 0110 1101 ..... @r_r_r
383 FNANDd 10 ..... 110110 ..... 0 0110 1110 ..... @r_r_r
384 FNANDs 10 ..... 110110 ..... 0 0110 1111 ..... @r_r_r
385 FANDd 10 ..... 110110 ..... 0 0111 0000 ..... @r_r_r
386 FANDs 10 ..... 110110 ..... 0 0111 0001 ..... @r_r_r
387 FXNORd 10 ..... 110110 ..... 0 0111 0010 ..... @r_r_r
388 FXNORs 10 ..... 110110 ..... 0 0111 0011 ..... @r_r_r
389 FORNOTd 10 ..... 110110 ..... 0 0111 0110 ..... @r_r_r # FORNOT2d
390 FORNOTs 10 ..... 110110 ..... 0 0111 0111 ..... @r_r_r # FORNOT2s
391 FORNOTd 10 ..... 110110 ..... 0 0111 1010 ..... @r_r_r_swap # ... 1d
392 FORNOTs 10 ..... 110110 ..... 0 0111 1011 ..... @r_r_r_swap # ... 1s
393 FORd 10 ..... 110110 ..... 0 0111 1100 ..... @r_r_r
394 FORs 10 ..... 110110 ..... 0 0111 1101 ..... @r_r_r
396 FZEROd 10 rd:5 110110 00000 0 0110 0000 00000
397 FZEROs 10 rd:5 110110 00000 0 0110 0001 00000
398 FONEd 10 rd:5 110110 00000 0 0111 1110 00000
399 FONEs 10 rd:5 110110 00000 0 0111 1111 00000
401 NCP 10 ----- 110110 ----- --------- ----- # v8 CPop1
404 NCP 10 ----- 110111 ----- --------- ----- # v8 CPop2
407 ## Major Opcode 11 -- load and store instructions
410 %dfp_rd 25:5 !function=extract_dfpreg
411 %qfp_rd 25:5 !function=extract_qfpreg
413 &r_r_ri_asi rd rs1 rs2_or_imm asi imm:bool
414 @r_r_ri_na .. rd:5 ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri_asi asi=-1
415 @d_r_ri_na .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13 \
416 &r_r_ri_asi rd=%dfp_rd asi=-1
417 @q_r_ri_na .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13 \
418 &r_r_ri_asi rd=%qfp_rd asi=-1
420 @r_r_r_asi .. rd:5 ...... rs1:5 0 asi:8 rs2_or_imm:5 &r_r_ri_asi imm=0
421 @r_r_i_asi .. rd:5 ...... rs1:5 1 rs2_or_imm:s13 \
422 &r_r_ri_asi imm=1 asi=-2
423 @d_r_r_asi .. ..... ...... rs1:5 0 asi:8 rs2_or_imm:5 \
424 &r_r_ri_asi rd=%dfp_rd imm=0
425 @d_r_i_asi .. ..... ...... rs1:5 1 rs2_or_imm:s13 \
426 &r_r_ri_asi rd=%dfp_rd imm=1 asi=-2
427 @q_r_r_asi .. ..... ...... rs1:5 0 asi:8 rs2_or_imm:5 \
428 &r_r_ri_asi rd=%qfp_rd imm=0
429 @q_r_i_asi .. ..... ...... rs1:5 1 rs2_or_imm:s13 \
430 &r_r_ri_asi rd=%qfp_rd imm=1 asi=-2
431 @casa_imm .. rd:5 ...... rs1:5 1 00000000 rs2_or_imm:5 \
432 &r_r_ri_asi imm=1 asi=-2
434 LDUW 11 ..... 000000 ..... . ............. @r_r_ri_na
435 LDUB 11 ..... 000001 ..... . ............. @r_r_ri_na
436 LDUH 11 ..... 000010 ..... . ............. @r_r_ri_na
437 LDD 11 ..... 000011 ..... . ............. @r_r_ri_na
438 LDSW 11 ..... 001000 ..... . ............. @r_r_ri_na
439 LDSB 11 ..... 001001 ..... . ............. @r_r_ri_na
440 LDSH 11 ..... 001010 ..... . ............. @r_r_ri_na
441 LDX 11 ..... 001011 ..... . ............. @r_r_ri_na
443 STW 11 ..... 000100 ..... . ............. @r_r_ri_na
444 STB 11 ..... 000101 ..... . ............. @r_r_ri_na
445 STH 11 ..... 000110 ..... . ............. @r_r_ri_na
446 STD 11 ..... 000111 ..... . ............. @r_r_ri_na
447 STX 11 ..... 001110 ..... . ............. @r_r_ri_na
449 LDUW 11 ..... 010000 ..... . ............. @r_r_r_asi # LDUWA
450 LDUW 11 ..... 010000 ..... . ............. @r_r_i_asi # LDUWA
451 LDUB 11 ..... 010001 ..... . ............. @r_r_r_asi # LDUBA
452 LDUB 11 ..... 010001 ..... . ............. @r_r_i_asi # LDUBA
453 LDUH 11 ..... 010010 ..... . ............. @r_r_r_asi # LDUHA
454 LDUH 11 ..... 010010 ..... . ............. @r_r_i_asi # LDUHA
455 LDD 11 ..... 010011 ..... . ............. @r_r_r_asi # LDDA
456 LDD 11 ..... 010011 ..... . ............. @r_r_i_asi # LDDA
457 LDX 11 ..... 011011 ..... . ............. @r_r_r_asi # LDXA
458 LDX 11 ..... 011011 ..... . ............. @r_r_i_asi # LDXA
459 LDSB 11 ..... 011001 ..... . ............. @r_r_r_asi # LDSBA
460 LDSB 11 ..... 011001 ..... . ............. @r_r_i_asi # LDSBA
461 LDSH 11 ..... 011010 ..... . ............. @r_r_r_asi # LDSHA
462 LDSH 11 ..... 011010 ..... . ............. @r_r_i_asi # LDSHA
463 LDSW 11 ..... 011000 ..... . ............. @r_r_r_asi # LDSWA
464 LDSW 11 ..... 011000 ..... . ............. @r_r_i_asi # LDSWA
466 STW 11 ..... 010100 ..... . ............. @r_r_r_asi # STWA
467 STW 11 ..... 010100 ..... . ............. @r_r_i_asi # STWA
468 STB 11 ..... 010101 ..... . ............. @r_r_r_asi # STBA
469 STB 11 ..... 010101 ..... . ............. @r_r_i_asi # STBA
470 STH 11 ..... 010110 ..... . ............. @r_r_r_asi # STHA
471 STH 11 ..... 010110 ..... . ............. @r_r_i_asi # STHA
472 STD 11 ..... 010111 ..... . ............. @r_r_r_asi # STDA
473 STD 11 ..... 010111 ..... . ............. @r_r_i_asi # STDA
474 STX 11 ..... 011110 ..... . ............. @r_r_r_asi # STXA
475 STX 11 ..... 011110 ..... . ............. @r_r_i_asi # STXA
477 LDF 11 ..... 100000 ..... . ............. @r_r_ri_na
478 LDFSR 11 00000 100001 ..... . ............. @n_r_ri
479 LDXFSR 11 00001 100001 ..... . ............. @n_r_ri
480 LDQF 11 ..... 100010 ..... . ............. @q_r_ri_na
481 LDDF 11 ..... 100011 ..... . ............. @d_r_ri_na
483 STF 11 ..... 100100 ..... . ............. @r_r_ri_na
484 STFSR 11 00000 100101 ..... . ............. @n_r_ri
485 STXFSR 11 00001 100101 ..... . ............. @n_r_ri
487 STQF 11 ..... 100110 ..... . ............. @q_r_ri_na
488 STDFQ 11 ----- 100110 ----- - -------------
490 STDF 11 ..... 100111 ..... . ............. @d_r_ri_na
492 LDSTUB 11 ..... 001101 ..... . ............. @r_r_ri_na
493 LDSTUB 11 ..... 011101 ..... . ............. @r_r_r_asi # LDSTUBA
494 LDSTUB 11 ..... 011101 ..... . ............. @r_r_i_asi # LDSTUBA
496 SWAP 11 ..... 001111 ..... . ............. @r_r_ri_na
497 SWAP 11 ..... 011111 ..... . ............. @r_r_r_asi # SWAPA
498 SWAP 11 ..... 011111 ..... . ............. @r_r_i_asi # SWAPA
500 CASA 11 ..... 111100 ..... . ............. @r_r_r_asi
501 CASA 11 ..... 111100 ..... . ............. @casa_imm
502 CASXA 11 ..... 111110 ..... . ............. @r_r_r_asi
503 CASXA 11 ..... 111110 ..... . ............. @casa_imm
505 NOP_v9 11 ----- 101101 ----- 0 00000000 ----- # PREFETCH
506 NOP_v9 11 ----- 101101 ----- 1 ------------- # PREFETCH
507 NOP_v9 11 ----- 111101 ----- - ------------- # PREFETCHA
511 LDFA 11 ..... 110000 ..... . ............. @r_r_r_asi
512 LDFA 11 ..... 110000 ..... . ............. @r_r_i_asi
514 NCP 11 ----- 110000 ----- --------- ----- # v8 LDC
516 NCP 11 ----- 110001 ----- --------- ----- # v8 LDCSR
517 LDQFA 11 ..... 110010 ..... . ............. @q_r_r_asi
518 LDQFA 11 ..... 110010 ..... . ............. @q_r_i_asi
521 LDDFA 11 ..... 110011 ..... . ............. @d_r_r_asi
522 LDDFA 11 ..... 110011 ..... . ............. @d_r_i_asi
524 NCP 11 ----- 110011 ----- --------- ----- # v8 LDDC
529 STFA 11 ..... 110100 ..... . ............. @r_r_r_asi
530 STFA 11 ..... 110100 ..... . ............. @r_r_i_asi
532 NCP 11 ----- 110100 ----- --------- ----- # v8 STC
534 NCP 11 ----- 110101 ----- --------- ----- # v8 STCSR
537 STQFA 11 ..... 110110 ..... . ............. @q_r_r_asi
538 STQFA 11 ..... 110110 ..... . ............. @q_r_i_asi
540 NCP 11 ----- 110110 ----- --------- ----- # v8 STDCQ
544 STDFA 11 ..... 110111 ..... . ............. @d_r_r_asi
545 STDFA 11 ..... 110111 ..... . ............. @d_r_i_asi
547 NCP 11 ----- 110111 ----- --------- ----- # v8 STDC