linux-user: Use do_munmap for target_mmap failure
[qemu/kevin.git] / target / sparc / insns.decode
blob2d26404cb25147a9733a1d8f5e5fd5fbda5b19a0
1 # SPDX-License-Identifier: LGPL-2.0+
3 # Sparc instruction decode definitions.
4 # Copyright (c) 2023 Richard Henderson <rth@twiddle.net>
6 ##
7 ## Major Opcodes 00 and 01 -- branches, call, and sethi.
8 ##
10 &bcc    i a cond cc
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
16 %d16    20:s2 0:14
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
23 CALL    01 i:s30
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
38 &r_r_r      rd rs1 rs2
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
42 &r_r        rd rs
43 @r_r1       .. rd:5  ...... rs:5  . ........ .....         &r_r
44 @r_r2       .. rd:5  ...... ..... . ........ rs:5          &r_r
47   [
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
63   ]
64   # Before v8, all rs1 accepted; otherwise rs1==0.
65   RDY               10 rd:5  101000 rs1:5 0 0000000000000
69   [
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
74     {
75       WRGSR         10 10011 110000 ..... . .............  @n_r_ri
76       WRPOWERDOWN   10 10011 110000 ..... . .............  @n_r_ri
77     }
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
84   ]
85   # Before v8, rs1==0 was WRY, and the rest executed as nop.
86   [
87     NOP_v7          10 ----- 110000 ----- 0 00000000 -----
88     NOP_v7          10 ----- 110000 ----- 1 -------- -----
89   ]
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
107 # UA2005 ALLCLEAN
108 # UA2005 OTHERW
109 # UA2005 NORMALW
110 # UA2005 INVALW
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
308   [
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
400   ]
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
510   [
511     LDFA    11 ..... 110000 ..... . .............          @r_r_r_asi
512     LDFA    11 ..... 110000 ..... . .............          @r_r_i_asi
513   ]
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
520   [
521     LDDFA   11 ..... 110011 ..... . .............          @d_r_r_asi
522     LDDFA   11 ..... 110011 ..... . .............          @d_r_i_asi
523   ]
524   NCP       11 ----- 110011 ----- --------- -----          # v8 LDDC
528   [
529     STFA    11 ..... 110100 ..... . .............          @r_r_r_asi
530     STFA    11 ..... 110100 ..... . .............          @r_r_i_asi
531   ]
532   NCP       11 ----- 110100 ----- --------- -----          # v8 STC
534 NCP         11 ----- 110101 ----- --------- -----          # v8 STCSR
536   [
537     STQFA   11 ..... 110110 ..... . .............          @q_r_r_asi
538     STQFA   11 ..... 110110 ..... . .............          @q_r_i_asi
539   ]
540   NCP       11 ----- 110110 ----- --------- -----          # v8 STDCQ
543   [
544     STDFA   11 ..... 110111 ..... . .............          @d_r_r_asi
545     STDFA   11 ..... 110111 ..... . .............          @d_r_i_asi
546   ]
547   NCP       11 ----- 110111 ----- --------- -----          # v8 STDC