Merge tag 'pull-riscv-to-apply-20240806-2' of https://github.com/alistair23/qemu...
[qemu/kevin.git] / target / sparc / insns.decode
blobfbcb4f7aef73affbd21d52032dcd873fa202d3f6
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 %dfp_rd     25:5 !function=extract_dfpreg
30 %dfp_rs1    14:5 !function=extract_dfpreg
31 %dfp_rs2     0:5 !function=extract_dfpreg
32 %dfp_rs3     9:5 !function=extract_dfpreg
34 %qfp_rd     25:5 !function=extract_qfpreg
35 %qfp_rs1    14:5 !function=extract_qfpreg
36 %qfp_rs2     0:5 !function=extract_qfpreg
38 &r_r_ri     rd rs1 rs2_or_imm imm:bool
39 @n_r_ri     .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13     &r_r_ri rd=0
40 @r_r_ri     .. rd:5  ...... rs1:5 imm:1 rs2_or_imm:s13     &r_r_ri
42 &r_r_ri_cc  rd rs1 rs2_or_imm imm:bool cc:bool
43 @r_r_ri_cc  .. rd:5  . cc:1 .... rs1:5 imm:1 rs2_or_imm:s13    &r_r_ri_cc
44 @r_r_ri_cc0 .. rd:5  ...... rs1:5 imm:1 rs2_or_imm:s13         &r_r_ri_cc cc=0
45 @r_r_ri_cc1 .. rd:5  ...... rs1:5 imm:1 rs2_or_imm:s13         &r_r_ri_cc cc=1
47 &r_r_r      rd rs1 rs2
48 @r_r_r      .. rd:5  ...... rs1:5 . ........ rs2:5         &r_r_r
49 @d_r_r      .. ..... ...... rs1:5 . ........ rs2:5         \
50             &r_r_r rd=%dfp_rd
51 @r_d_d      .. rd:5  ...... ..... . ........ .....         \
52             &r_r_r rs1=%dfp_rs1 rs2=%dfp_rs2
53 @d_r_d      .. ..... ...... rs1:5 . ........ .....         \
54             &r_r_r rd=%dfp_rd rs2=%dfp_rs2
55 @d_d_d      .. ..... ...... ..... . ........ .....         \
56             &r_r_r rd=%dfp_rd rs1=%dfp_rs1 rs2=%dfp_rs2
57 @q_q_q      .. ..... ...... ..... . ........ .....         \
58             &r_r_r rd=%qfp_rd rs1=%qfp_rs1 rs2=%qfp_rs2
59 @q_d_d      .. ..... ...... ..... . ........ .....         \
60             &r_r_r rd=%qfp_rd rs1=%dfp_rs1 rs2=%dfp_rs2
62 @r_r_r_swap .. rd:5  ...... rs2:5 . ........ rs1:5         &r_r_r
63 @d_d_d_swap .. ..... ...... ..... . ........ .....         \
64             &r_r_r rd=%dfp_rd rs1=%dfp_rs2 rs2=%dfp_rs1
66 &r_r        rd rs
67 @r_r1       .. rd:5  ...... rs:5  . ........ .....         &r_r
68 @r_r2       .. rd:5  ...... ..... . ........ rs:5          &r_r
69 @r_d2       .. rd:5  ...... ..... . ........ .....         &r_r rs=%dfp_rs2
70 @r_q2       .. rd:5  ...... ..... . ........ .....         &r_r rs=%qfp_rs2
71 @d_r2       .. ..... ...... ..... . ........ rs:5          &r_r rd=%dfp_rd
72 @q_r2       .. ..... ...... ..... . ........ rs:5          &r_r rd=%qfp_rd
73 @d_d1       .. ..... ...... ..... . ........ .....         \
74             &r_r rd=%dfp_rd rs=%dfp_rs1
75 @d_d2       .. ..... ...... ..... . ........ .....         \
76             &r_r rd=%dfp_rd rs=%dfp_rs2
77 @d_q2       .. ..... ...... ..... . ........ .....         \
78             &r_r rd=%dfp_rd rs=%qfp_rs2
79 @q_q2       .. ..... ...... ..... . ........ .....         \
80             &r_r rd=%qfp_rd rs=%qfp_rs2
81 @q_d2       .. ..... ...... ..... . ........ .....         \
82             &r_r rd=%qfp_rd rs=%dfp_rs2
84 &r_r_r_r    rd rs1 rs2 rs3
85 @r_r_r_r    .. rd:5  ...... rs1:5 rs3:5 .... rs2:5         &r_r_r_r
86 @d_d_d_d    .. ..... ...... ..... ..... .... .....         \
87             &r_r_r_r rd=%dfp_rd rs1=%dfp_rs1 rs2=%dfp_rs2 rs3=%dfp_rs3
90   [
91     STBAR           10 00000 101000 01111 0 0000000000000
92     MEMBAR          10 00000 101000 01111 1 000000 cmask:3 mmask:4
94     RDCCR           10 rd:5  101000 00010 0 0000000000000
95     RDASI           10 rd:5  101000 00011 0 0000000000000
96     RDTICK          10 rd:5  101000 00100 0 0000000000000
97     RDPC            10 rd:5  101000 00101 0 0000000000000
98     RDFPRS          10 rd:5  101000 00110 0 0000000000000
99     RDASR17         10 rd:5  101000 10001 0 0000000000000
100     RDGSR           10 rd:5  101000 10011 0 0000000000000
101     RDSOFTINT       10 rd:5  101000 10110 0 0000000000000
102     RDTICK_CMPR     10 rd:5  101000 10111 0 0000000000000
103     RDSTICK         10 rd:5  101000 11000 0 0000000000000
104     RDSTICK_CMPR    10 rd:5  101000 11001 0 0000000000000
105     RDSTRAND_STATUS 10 rd:5  101000 11010 0 0000000000000
106   ]
107   # Before v8, all rs1 accepted; otherwise rs1==0.
108   RDY               10 rd:5  101000 rs1:5 0 0000000000000
112   [
113     WRY             10 00000 110000 ..... . .............  @n_r_ri
114     WRCCR           10 00010 110000 ..... . .............  @n_r_ri
115     WRASI           10 00011 110000 ..... . .............  @n_r_ri
116     WRFPRS          10 00110 110000 ..... . .............  @n_r_ri
117     {
118       WRGSR         10 10011 110000 ..... . .............  @n_r_ri
119       WRPOWERDOWN   10 10011 110000 ..... . .............  @n_r_ri
120     }
121     WRSOFTINT_SET   10 10100 110000 ..... . .............  @n_r_ri
122     WRSOFTINT_CLR   10 10101 110000 ..... . .............  @n_r_ri
123     WRSOFTINT       10 10110 110000 ..... . .............  @n_r_ri
124     WRTICK_CMPR     10 10111 110000 ..... . .............  @n_r_ri
125     WRSTICK         10 11000 110000 ..... . .............  @n_r_ri
126     WRSTICK_CMPR    10 11001 110000 ..... . .............  @n_r_ri
127     WRMWAIT         10 11100 110000 ..... . .............  @n_r_ri
128   ]
129   # Before v8, rs1==0 was WRY, and the rest executed as nop.
130   [
131     NOP_v7          10 ----- 110000 ----- 0 00000000 -----
132     NOP_v7          10 ----- 110000 ----- 1 -------- -----
133   ]
137   RDPSR             10 rd:5  101001 00000 0 0000000000000
138   RDHPR_hpstate     10 rd:5  101001 00000 0 0000000000000
140 RDHPR_htstate       10 rd:5  101001 00001 0 0000000000000
141 RDHPR_hintp         10 rd:5  101001 00011 0 0000000000000
142 RDHPR_htba          10 rd:5  101001 00101 0 0000000000000
143 RDHPR_hver          10 rd:5  101001 00110 0 0000000000000
144 RDHPR_hstick_cmpr   10 rd:5  101001 11111 0 0000000000000
147   WRPSR             10 00000 110001 ..... . .............  @n_r_ri
148   SAVED             10 00000 110001 00000 0 0000000000000
150 RESTORED            10 00001 110001 00000 0 0000000000000
151 # UA2005 ALLCLEAN
152 # UA2005 OTHERW
153 # UA2005 NORMALW
154 # UA2005 INVALW
157   RDWIM             10 rd:5  101010 00000 0 0000000000000
158   RDPR_tpc          10 rd:5  101010 00000 0 0000000000000
160 RDPR_tnpc           10 rd:5  101010 00001 0 0000000000000
161 RDPR_tstate         10 rd:5  101010 00010 0 0000000000000
162 RDPR_tt             10 rd:5  101010 00011 0 0000000000000
163 RDPR_tick           10 rd:5  101010 00100 0 0000000000000
164 RDPR_tba            10 rd:5  101010 00101 0 0000000000000
165 RDPR_pstate         10 rd:5  101010 00110 0 0000000000000
166 RDPR_tl             10 rd:5  101010 00111 0 0000000000000
167 RDPR_pil            10 rd:5  101010 01000 0 0000000000000
168 RDPR_cwp            10 rd:5  101010 01001 0 0000000000000
169 RDPR_cansave        10 rd:5  101010 01010 0 0000000000000
170 RDPR_canrestore     10 rd:5  101010 01011 0 0000000000000
171 RDPR_cleanwin       10 rd:5  101010 01100 0 0000000000000
172 RDPR_otherwin       10 rd:5  101010 01101 0 0000000000000
173 RDPR_wstate         10 rd:5  101010 01110 0 0000000000000
174 RDPR_gl             10 rd:5  101010 10000 0 0000000000000
175 RDPR_strand_status  10 rd:5  101010 11010 0 0000000000000
176 RDPR_ver            10 rd:5  101010 11111 0 0000000000000
179   WRWIM             10 00000 110010 ..... . .............  @n_r_ri
180   WRPR_tpc          10 00000 110010 ..... . .............  @n_r_ri
182 WRPR_tnpc           10 00001 110010 ..... . .............  @n_r_ri
183 WRPR_tstate         10 00010 110010 ..... . .............  @n_r_ri
184 WRPR_tt             10 00011 110010 ..... . .............  @n_r_ri
185 WRPR_tick           10 00100 110010 ..... . .............  @n_r_ri
186 WRPR_tba            10 00101 110010 ..... . .............  @n_r_ri
187 WRPR_pstate         10 00110 110010 ..... . .............  @n_r_ri
188 WRPR_tl             10 00111 110010 ..... . .............  @n_r_ri
189 WRPR_pil            10 01000 110010 ..... . .............  @n_r_ri
190 WRPR_cwp            10 01001 110010 ..... . .............  @n_r_ri
191 WRPR_cansave        10 01010 110010 ..... . .............  @n_r_ri
192 WRPR_canrestore     10 01011 110010 ..... . .............  @n_r_ri
193 WRPR_cleanwin       10 01100 110010 ..... . .............  @n_r_ri
194 WRPR_otherwin       10 01101 110010 ..... . .............  @n_r_ri
195 WRPR_wstate         10 01110 110010 ..... . .............  @n_r_ri
196 WRPR_gl             10 10000 110010 ..... . .............  @n_r_ri
197 WRPR_strand_status  10 11010 110010 ..... . .............  @n_r_ri
200   FLUSHW    10 00000 101011 00000 0 0000000000000
201   RDTBR     10 rd:5  101011 00000 0 0000000000000
205   WRTBR             10 00000 110011 ..... . .............  @n_r_ri
206   WRHPR_hpstate     10 00000 110011 ..... . .............  @n_r_ri
208 WRHPR_htstate       10 00001 110011 ..... . .............  @n_r_ri
209 WRHPR_hintp         10 00011 110011 ..... . .............  @n_r_ri
210 WRHPR_htba          10 00101 110011 ..... . .............  @n_r_ri
211 WRHPR_hstick_cmpr   10 11111 110011 ..... . .............  @n_r_ri
213 ADD         10 ..... 0.0000 ..... . .............          @r_r_ri_cc
214 AND         10 ..... 0.0001 ..... . .............          @r_r_ri_cc
215 OR          10 ..... 0.0010 ..... . .............          @r_r_ri_cc
216 XOR         10 ..... 0.0011 ..... . .............          @r_r_ri_cc
217 SUB         10 ..... 0.0100 ..... . .............          @r_r_ri_cc
218 ANDN        10 ..... 0.0101 ..... . .............          @r_r_ri_cc
219 ORN         10 ..... 0.0110 ..... . .............          @r_r_ri_cc
220 XORN        10 ..... 0.0111 ..... . .............          @r_r_ri_cc
221 ADDC        10 ..... 0.1000 ..... . .............          @r_r_ri_cc
222 SUBC        10 ..... 0.1100 ..... . .............          @r_r_ri_cc
224 MULX        10 ..... 001001 ..... . .............          @r_r_ri_cc0
225 UMUL        10 ..... 0.1010 ..... . .............          @r_r_ri_cc
226 SMUL        10 ..... 0.1011 ..... . .............          @r_r_ri_cc
227 MULScc      10 ..... 100100 ..... . .............          @r_r_ri_cc1
229 UDIVX       10 ..... 001101 ..... . .............          @r_r_ri
230 SDIVX       10 ..... 101101 ..... . .............          @r_r_ri
231 UDIV        10 ..... 001110 ..... . .............          @r_r_ri
232 UDIVcc      10 ..... 011110 ..... . .............          @r_r_ri_cc1
233 SDIV        10 ..... 0.1111 ..... . .............          @r_r_ri_cc
235 TADDcc      10 ..... 100000 ..... . .............          @r_r_ri_cc1
236 TSUBcc      10 ..... 100001 ..... . .............          @r_r_ri_cc1
237 TADDccTV    10 ..... 100010 ..... . .............          @r_r_ri_cc1
238 TSUBccTV    10 ..... 100011 ..... . .............          @r_r_ri_cc1
240 POPC        10 rd:5  101110 00000 imm:1 rs2_or_imm:s13     \
241             &r_r_ri_cc rs1=0 cc=0
243 &shiftr     rd rs1 rs2 x:bool
244 @shiftr     .. rd:5  ...... rs1:5 . x:1 ....... rs2:5      &shiftr
246 SLL_r       10 ..... 100101 ..... 0 .   0000000 .....      @shiftr
247 SRL_r       10 ..... 100110 ..... 0 .   0000000 .....      @shiftr
248 SRA_r       10 ..... 100111 ..... 0 .   0000000 .....      @shiftr
250 &shifti     rd rs1 i x:bool
251 @shifti     .. rd:5  ...... rs1:5 . x:1 ...... i:6         &shifti
253 SLL_i       10 ..... 100101 ..... 1 .   000000 ......      @shifti
254 SRL_i       10 ..... 100110 ..... 1 .   000000 ......      @shifti
255 SRA_i       10 ..... 100111 ..... 1 .   000000 ......      @shifti
257 Tcc_r       10 0 cond:4 111010 rs1:5 0 cc:1 0000000 rs2:5
259   # For v7, the entire simm13 field is present, but masked to 7 bits.
260   # For v8, [12:7] are reserved.  However, a compatibility note for
261   # the Tcc insn in the v9 manual suggests that the v8 reserved field
262   # was ignored and did not produce traps.
263   Tcc_i_v7  10 0 cond:4 111010 rs1:5 1 ------ i:7
265   # For v9, bits [12:11] are cc1 and cc0 (and cc0 must be 0).
266   # Bits [10:8] are reserved and the OSA2011 manual says they must be 0.
267   Tcc_i_v9  10 0 cond:4 111010 rs1:5 1 cc:1 0 000 i:8
270 MOVcc       10 rd:5  101100 1 cond:4 imm:1 cc:1 0 rs2_or_imm:s11
271 MOVfcc      10 rd:5  101100 0 cond:4 imm:1 cc:2   rs2_or_imm:s11
272 MOVR        10 rd:5  101111 rs1:5    imm:1 cond:3 rs2_or_imm:s10
274 JMPL        10 ..... 111000 ..... . .............          @r_r_ri
276   RETT      10 00000 111001 ..... . .............          @n_r_ri
277   RETURN    10 00000 111001 ..... . .............          @n_r_ri
279 NOP         10 00000 111011 ----- 0 00000000-----          # FLUSH reg+reg
280 NOP         10 00000 111011 ----- 1 -------------          # FLUSH reg+imm
281 SAVE        10 ..... 111100 ..... . .............          @r_r_ri
282 RESTORE     10 ..... 111101 ..... . .............          @r_r_ri
284 DONE        10 00000 111110 00000 0 0000000000000
285 RETRY       10 00001 111110 00000 0 0000000000000
287 FMOVs       10 ..... 110100 00000 0 0000 0001 .....        @r_r2
288 FMOVd       10 ..... 110100 00000 0 0000 0010 .....        @d_d2
289 FMOVq       10 ..... 110100 00000 0 0000 0011 .....        @q_q2
290 FNEGs       10 ..... 110100 00000 0 0000 0101 .....        @r_r2
291 FNEGd       10 ..... 110100 00000 0 0000 0110 .....        @d_d2
292 FNEGq       10 ..... 110100 00000 0 0000 0111 .....        @q_q2
293 FABSs       10 ..... 110100 00000 0 0000 1001 .....        @r_r2
294 FABSd       10 ..... 110100 00000 0 0000 1010 .....        @d_d2
295 FABSq       10 ..... 110100 00000 0 0000 1011 .....        @q_q2
296 FSQRTs      10 ..... 110100 00000 0 0010 1001 .....        @r_r2
297 FSQRTd      10 ..... 110100 00000 0 0010 1010 .....        @d_d2
298 FSQRTq      10 ..... 110100 00000 0 0010 1011 .....        @q_q2
299 FADDs       10 ..... 110100 ..... 0 0100 0001 .....        @r_r_r
300 FADDd       10 ..... 110100 ..... 0 0100 0010 .....        @d_d_d
301 FADDq       10 ..... 110100 ..... 0 0100 0011 .....        @q_q_q
302 FSUBs       10 ..... 110100 ..... 0 0100 0101 .....        @r_r_r
303 FSUBd       10 ..... 110100 ..... 0 0100 0110 .....        @d_d_d
304 FSUBq       10 ..... 110100 ..... 0 0100 0111 .....        @q_q_q
305 FMULs       10 ..... 110100 ..... 0 0100 1001 .....        @r_r_r
306 FMULd       10 ..... 110100 ..... 0 0100 1010 .....        @d_d_d
307 FMULq       10 ..... 110100 ..... 0 0100 1011 .....        @q_q_q
308 FDIVs       10 ..... 110100 ..... 0 0100 1101 .....        @r_r_r
309 FDIVd       10 ..... 110100 ..... 0 0100 1110 .....        @d_d_d
310 FDIVq       10 ..... 110100 ..... 0 0100 1111 .....        @q_q_q
311 FNADDs      10 ..... 110100 ..... 0 0101 0001 .....        @r_r_r
312 FNADDd      10 ..... 110100 ..... 0 0101 0010 .....        @d_d_d
313 FNMULs      10 ..... 110100 ..... 0 0101 1001 .....        @r_r_r
314 FNMULd      10 ..... 110100 ..... 0 0101 1010 .....        @d_d_d
315 FHADDs      10 ..... 110100 ..... 0 0110 0001 .....        @r_r_r
316 FHADDd      10 ..... 110100 ..... 0 0110 0010 .....        @d_d_d
317 FHSUBs      10 ..... 110100 ..... 0 0110 0101 .....        @r_r_r
318 FHSUBd      10 ..... 110100 ..... 0 0110 0110 .....        @d_d_d
319 FsMULd      10 ..... 110100 ..... 0 0110 1001 .....        @d_r_r
320 FdMULq      10 ..... 110100 ..... 0 0110 1110 .....        @q_d_d
321 FNHADDs     10 ..... 110100 ..... 0 0111 0001 .....        @r_r_r
322 FNHADDd     10 ..... 110100 ..... 0 0111 0010 .....        @d_d_d
323 FNsMULd     10 ..... 110100 ..... 0 0111 1001 .....        @d_r_r
324 FsTOx       10 ..... 110100 00000 0 1000 0001 .....        @r_r2
325 FdTOx       10 ..... 110100 00000 0 1000 0010 .....        @r_d2
326 FqTOx       10 ..... 110100 00000 0 1000 0011 .....        @r_q2
327 FxTOs       10 ..... 110100 00000 0 1000 0100 .....        @r_r2
328 FxTOd       10 ..... 110100 00000 0 1000 1000 .....        @d_r2
329 FxTOq       10 ..... 110100 00000 0 1000 1100 .....        @q_r2
330 FiTOs       10 ..... 110100 00000 0 1100 0100 .....        @r_r2
331 FdTOs       10 ..... 110100 00000 0 1100 0110 .....        @r_d2
332 FqTOs       10 ..... 110100 00000 0 1100 0111 .....        @r_q2
333 FiTOd       10 ..... 110100 00000 0 1100 1000 .....        @d_r2
334 FsTOd       10 ..... 110100 00000 0 1100 1001 .....        @d_r2
335 FqTOd       10 ..... 110100 00000 0 1100 1011 .....        @d_q2
336 FiTOq       10 ..... 110100 00000 0 1100 1100 .....        @q_r2
337 FsTOq       10 ..... 110100 00000 0 1100 1101 .....        @q_r2
338 FdTOq       10 ..... 110100 00000 0 1100 1110 .....        @q_d2
339 FsTOi       10 ..... 110100 00000 0 1101 0001 .....        @r_r2
340 FdTOi       10 ..... 110100 00000 0 1101 0010 .....        @r_d2
341 FqTOi       10 ..... 110100 00000 0 1101 0011 .....        @r_q2
343 FMOVscc     10 rd:5  110101 0 cond:4 1 cc:1 0 000001 rs2:5
344 FMOVdcc     10 ..... 110101 0 cond:4 1 cc:1 0 000010 ..... \
345             rd=%dfp_rd rs2=%dfp_rs2
346 FMOVqcc     10 ..... 110101 0 cond:4 1 cc:1 0 000011 ..... \
347             rd=%qfp_rd rs2=%qfp_rs2
349 FMOVsfcc    10 rd:5  110101 0 cond:4 0 cc:2   000001 rs2:5
350 FMOVdfcc    10 ..... 110101 0 cond:4 0 cc:2   000010 ..... \
351             rd=%dfp_rd rs2=%dfp_rs2
352 FMOVqfcc    10 ..... 110101 0 cond:4 0 cc:2   000011 ..... \
353             rd=%qfp_rd rs2=%qfp_rs2
355 FMOVRs      10 rd:5  110101 rs1:5    0 cond:3  00101 rs2:5
356 FMOVRd      10 ..... 110101 rs1:5    0 cond:3  00110 ..... \
357             rd=%dfp_rd rs2=%dfp_rs2
358 FMOVRq      10 ..... 110101 rs1:5    0 cond:3  00111 ..... \
359             rd=%qfp_rd rs2=%qfp_rs2
361 FCMPs       10 000 cc:2 110101 rs1:5  0 0101 0001 rs2:5
362 FCMPd       10 000 cc:2 110101 .....  0 0101 0010 .....    \
363             rs1=%dfp_rs1 rs2=%dfp_rs2
364 FCMPq       10 000 cc:2 110101 .....  0 0101 0011 .....    \
365             rs1=%qfp_rs1 rs2=%qfp_rs2
366 FCMPEs      10 000 cc:2 110101 rs1:5  0 0101 0101 rs2:5
367 FCMPEd      10 000 cc:2 110101 .....  0 0101 0110 .....    \
368             rs1=%dfp_rs1 rs2=%dfp_rs2
369 FCMPEq      10 000 cc:2 110101 .....  0 0101 0111 .....    \
370             rs1=%qfp_rs1 rs2=%qfp_rs2
373   [
374     EDGE8cc     10 ..... 110110 ..... 0 0000 0000 .....    @r_r_r
375     EDGE8N      10 ..... 110110 ..... 0 0000 0001 .....    @r_r_r
376     EDGE8Lcc    10 ..... 110110 ..... 0 0000 0010 .....    @r_r_r
377     EDGE8LN     10 ..... 110110 ..... 0 0000 0011 .....    @r_r_r
378     EDGE16cc    10 ..... 110110 ..... 0 0000 0100 .....    @r_r_r
379     EDGE16N     10 ..... 110110 ..... 0 0000 0101 .....    @r_r_r
380     EDGE16Lcc   10 ..... 110110 ..... 0 0000 0110 .....    @r_r_r
381     EDGE16LN    10 ..... 110110 ..... 0 0000 0111 .....    @r_r_r
382     EDGE32cc    10 ..... 110110 ..... 0 0000 1000 .....    @r_r_r
383     EDGE32N     10 ..... 110110 ..... 0 0000 1001 .....    @r_r_r
384     EDGE32Lcc   10 ..... 110110 ..... 0 0000 1010 .....    @r_r_r
385     EDGE32LN    10 ..... 110110 ..... 0 0000 1011 .....    @r_r_r
387     ARRAY8      10 ..... 110110 ..... 0 0001 0000 .....    @r_r_r
388     ARRAY16     10 ..... 110110 ..... 0 0001 0010 .....    @r_r_r
389     ARRAY32     10 ..... 110110 ..... 0 0001 0100 .....    @r_r_r
391     ADDXC       10 ..... 110110 ..... 0 0001 0001 .....    @r_r_r
392     ADDXCcc     10 ..... 110110 ..... 0 0001 0011 .....    @r_r_r
393     UMULXHI     10 ..... 110110 ..... 0 0001 0110 .....    @r_r_r
394     LZCNT       10 ..... 110110 00000 0 0001 0111 .....    @r_r2
395     XMULX       10 ..... 110110 ..... 1 0001 0101 .....    @r_r_r
396     XMULXHI     10 ..... 110110 ..... 1 0001 0110 .....    @r_r_r
398     ALIGNADDR   10 ..... 110110 ..... 0 0001 1000 .....    @r_r_r
399     ALIGNADDRL  10 ..... 110110 ..... 0 0001 1010 .....    @r_r_r
401     BMASK       10 ..... 110110 ..... 0 0001 1001 .....    @r_r_r
403     CMASK8      10 00000 110110 00000 0 0001 1011 rs2:5
404     CMASK16     10 00000 110110 00000 0 0001 1101 rs2:5
405     CMASK32     10 00000 110110 00000 0 0001 1111 rs2:5
407     FPCMPLE16   10 ..... 110110 ..... 0 0010 0000 .....    @r_d_d
408     FPCMPNE16   10 ..... 110110 ..... 0 0010 0010 .....    @r_d_d
409     FPCMPGT16   10 ..... 110110 ..... 0 0010 1000 .....    @r_d_d
410     FPCMPEQ16   10 ..... 110110 ..... 0 0010 1010 .....    @r_d_d
411     FPCMPLE32   10 ..... 110110 ..... 0 0010 0100 .....    @r_d_d
412     FPCMPNE32   10 ..... 110110 ..... 0 0010 0110 .....    @r_d_d
413     FPCMPGT32   10 ..... 110110 ..... 0 0010 1100 .....    @r_d_d
414     FPCMPEQ32   10 ..... 110110 ..... 0 0010 1110 .....    @r_d_d
416     FSLL16      10 ..... 110110 ..... 0 0010 0001 .....    @d_d_d
417     FSRL16      10 ..... 110110 ..... 0 0010 0011 .....    @d_d_d
418     FSLAS16     10 ..... 110110 ..... 0 0010 1001 .....    @d_d_d
419     FSRA16      10 ..... 110110 ..... 0 0010 1011 .....    @d_d_d
420     FSLL32      10 ..... 110110 ..... 0 0010 0101 .....    @d_d_d
421     FSRL32      10 ..... 110110 ..... 0 0010 0111 .....    @d_d_d
422     FSLAS32     10 ..... 110110 ..... 0 0010 1101 .....    @d_d_d
423     FSRA32      10 ..... 110110 ..... 0 0010 1111 .....    @d_d_d
425     FPCMPULE8   10 ..... 110110 ..... 1 0010 0000 .....    @r_d_d
426     FPCMPUGT8   10 ..... 110110 ..... 1 0010 1000 .....    @r_d_d
427     FPCMPNE8    10 ..... 110110 ..... 1 0010 0010 .....    @r_d_d
428     FPCMPEQ8    10 ..... 110110 ..... 1 0010 1010 .....    @r_d_d
429     FPCMPLE8    10 ..... 110110 ..... 0 0011 0100 .....    @r_d_d
430     FPCMPGT8    10 ..... 110110 ..... 0 0011 1100 .....    @r_d_d
431     FPCMPULE16  10 ..... 110110 ..... 1 0010 1110 .....    @r_d_d
432     FPCMPUGT16  10 ..... 110110 ..... 1 0010 1011 .....    @r_d_d
433     FPCMPULE32  10 ..... 110110 ..... 1 0010 1111 .....    @r_d_d
434     FPCMPUGT32  10 ..... 110110 ..... 1 0010 1100 .....    @r_d_d
436     FMUL8x16    10 ..... 110110 ..... 0 0011 0001 .....    @d_r_d
437     FMUL8x16AU  10 ..... 110110 ..... 0 0011 0011 .....    @d_r_r
438     FMUL8x16AL  10 ..... 110110 ..... 0 0011 0101 .....    @d_r_r
439     FMUL8SUx16  10 ..... 110110 ..... 0 0011 0110 .....    @d_d_d
440     FMUL8ULx16  10 ..... 110110 ..... 0 0011 0111 .....    @d_d_d
441     FMULD8SUx16 10 ..... 110110 ..... 0 0011 1000 .....    @d_r_r
442     FMULD8ULx16 10 ..... 110110 ..... 0 0011 1001 .....    @d_r_r
443     FPACK32     10 ..... 110110 ..... 0 0011 1010 .....    @d_d_d
444     FPACK16     10 ..... 110110 00000 0 0011 1011 .....    @r_d2
445     FPACKFIX    10 ..... 110110 00000 0 0011 1101 .....    @r_d2
446     PDIST       10 ..... 110110 ..... 0 0011 1110 .....    \
447                 &r_r_r_r rd=%dfp_rd rs1=%dfp_rd rs2=%dfp_rs1 rs3=%dfp_rs2
448     PDISTN      10 ..... 110110 ..... 0 0011 1111 .....    @r_d_d
450     FMEAN16     10 ..... 110110 ..... 0 0100 0000 .....    @d_d_d
451     SUBXC       10 ..... 110110 ..... 0 0100 0001 .....    @r_r_r
452     SUBXCcc     10 ..... 110110 ..... 0 0100 0011 .....    @r_r_r
453     FCHKSM16    10 ..... 110110 ..... 0 0100 0100 .....    @d_d_d
454     FALIGNDATAg 10 ..... 110110 ..... 0 0100 1000 .....    @d_d_d
455     FPMERGE     10 ..... 110110 ..... 0 0100 1011 .....    @d_r_r
456     BSHUFFLE    10 ..... 110110 ..... 0 0100 1100 .....    @d_d_d
457     FEXPAND     10 ..... 110110 00000 0 0100 1101 .....    @d_r2
458     FALIGNDATAi 10 ..... 110110 ..... 0 0100 1001 .....    @d_r_d
460     FSRCd       10 ..... 110110 ..... 0 0111 0100 00000    @d_d1  # FSRC1d
461     FSRCs       10 ..... 110110 ..... 0 0111 0101 00000    @r_r1  # FSRC1s
462     FSRCd       10 ..... 110110 00000 0 0111 1000 .....    @d_d2  # FSRC2d
463     FSRCs       10 ..... 110110 00000 0 0111 1001 .....    @r_r2  # FSRC2s
464     FNOTd       10 ..... 110110 ..... 0 0110 1010 00000    @d_d1  # FNOT1d
465     FNOTs       10 ..... 110110 ..... 0 0110 1011 00000    @r_r1  # FNOT1s
466     FNOTd       10 ..... 110110 00000 0 0110 0110 .....    @d_d2  # FNOT2d
467     FNOTs       10 ..... 110110 00000 0 0110 0111 .....    @r_r2  # FNOT2s
469     FPADD16     10 ..... 110110 ..... 0 0101 0000 .....    @d_d_d
470     FPADD16s    10 ..... 110110 ..... 0 0101 0001 .....    @r_r_r
471     FPADD32     10 ..... 110110 ..... 0 0101 0010 .....    @d_d_d
472     FPADD32s    10 ..... 110110 ..... 0 0101 0011 .....    @r_r_r
473     FPADD64     10 ..... 110110 ..... 0 0100 0010 .....    @d_d_d
474     FPSUB16     10 ..... 110110 ..... 0 0101 0100 .....    @d_d_d
475     FPSUB16s    10 ..... 110110 ..... 0 0101 0101 .....    @r_r_r
476     FPSUB32     10 ..... 110110 ..... 0 0101 0110 .....    @d_d_d
477     FPSUB32s    10 ..... 110110 ..... 0 0101 0111 .....    @r_r_r
478     FPSUB64     10 ..... 110110 ..... 0 0100 0110 .....    @d_d_d
480     FPADDS16    10 ..... 110110 ..... 0 0101 1000 .....    @d_d_d
481     FPADDS16s   10 ..... 110110 ..... 0 0101 1001 .....    @r_r_r
482     FPADDS32    10 ..... 110110 ..... 0 0101 1010 .....    @d_d_d
483     FPADDS32s   10 ..... 110110 ..... 0 0101 1011 .....    @r_r_r
484     FPSUBS16    10 ..... 110110 ..... 0 0101 1100 .....    @d_d_d
485     FPSUBS16s   10 ..... 110110 ..... 0 0101 1101 .....    @r_r_r
486     FPSUBS32    10 ..... 110110 ..... 0 0101 1110 .....    @d_d_d
487     FPSUBS32s   10 ..... 110110 ..... 0 0101 1111 .....    @r_r_r
489     FNORd       10 ..... 110110 ..... 0 0110 0010 .....    @d_d_d
490     FNORs       10 ..... 110110 ..... 0 0110 0011 .....    @r_r_r
491     FANDNOTd    10 ..... 110110 ..... 0 0110 0100 .....    @d_d_d   # FANDNOT2d
492     FANDNOTs    10 ..... 110110 ..... 0 0110 0101 .....    @r_r_r   # FANDNOT2s
493     FANDNOTd    10 ..... 110110 ..... 0 0110 1000 .....    @d_d_d_swap # ... 1d
494     FANDNOTs    10 ..... 110110 ..... 0 0110 1001 .....    @r_r_r_swap # ... 1s
495     FXORd       10 ..... 110110 ..... 0 0110 1100 .....    @d_d_d
496     FXORs       10 ..... 110110 ..... 0 0110 1101 .....    @r_r_r
497     FNANDd      10 ..... 110110 ..... 0 0110 1110 .....    @d_d_d
498     FNANDs      10 ..... 110110 ..... 0 0110 1111 .....    @r_r_r
499     FANDd       10 ..... 110110 ..... 0 0111 0000 .....    @d_d_d
500     FANDs       10 ..... 110110 ..... 0 0111 0001 .....    @r_r_r
501     FXNORd      10 ..... 110110 ..... 0 0111 0010 .....    @d_d_d
502     FXNORs      10 ..... 110110 ..... 0 0111 0011 .....    @r_r_r
503     FORNOTd     10 ..... 110110 ..... 0 0111 0110 .....    @d_d_d    # FORNOT2d
504     FORNOTs     10 ..... 110110 ..... 0 0111 0111 .....    @r_r_r    # FORNOT2s
505     FORNOTd     10 ..... 110110 ..... 0 0111 1010 .....    @d_d_d_swap # ... 1d
506     FORNOTs     10 ..... 110110 ..... 0 0111 1011 .....    @r_r_r_swap # ... 1s
507     FORd        10 ..... 110110 ..... 0 0111 1100 .....    @d_d_d
508     FORs        10 ..... 110110 ..... 0 0111 1101 .....    @r_r_r
510     FZEROd      10 ..... 110110 00000 0 0110 0000 00000    rd=%dfp_rd
511     FZEROs      10 rd:5  110110 00000 0 0110 0001 00000
512     FONEd       10 ..... 110110 00000 0 0111 1110 00000    rd=%dfp_rd
513     FONEs       10 rd:5  110110 00000 0 0111 1111 00000
515     MOVsTOuw    10 ..... 110110 00000 1 0001 0001 .....    @r_r2
516     MOVsTOsw    10 ..... 110110 00000 1 0001 0011 .....    @r_r2
517     MOVwTOs     10 ..... 110110 00000 1 0001 1001 .....    @r_r2
518     MOVdTOx     10 ..... 110110 00000 1 0001 0000 .....    @r_d2
519     MOVxTOd     10 ..... 110110 00000 1 0001 1000 .....    @d_r2
521     FPADD8      10 ..... 110110 ..... 1 0010 0100 .....    @d_d_d
522     FPADDS8     10 ..... 110110 ..... 1 0010 0110 .....    @d_d_d
523     FPADDUS8    10 ..... 110110 ..... 1 0010 0111 .....    @d_d_d
524     FPADDUS16   10 ..... 110110 ..... 1 0010 0011 .....    @d_d_d
525     FPSUB8      10 ..... 110110 ..... 1 0101 0100 .....    @d_d_d
526     FPSUBS8     10 ..... 110110 ..... 1 0101 0110 .....    @d_d_d
527     FPSUBUS8    10 ..... 110110 ..... 1 0101 0111 .....    @d_d_d
528     FPSUBUS16   10 ..... 110110 ..... 1 0101 0011 .....    @d_d_d
530     FPMIN8      10 ..... 110110 ..... 1 0001 1010 .....    @d_d_d
531     FPMIN16     10 ..... 110110 ..... 1 0001 1011 .....    @d_d_d
532     FPMIN32     10 ..... 110110 ..... 1 0001 1100 .....    @d_d_d
533     FPMINU8     10 ..... 110110 ..... 1 0101 1010 .....    @d_d_d
534     FPMINU16    10 ..... 110110 ..... 1 0101 1011 .....    @d_d_d
535     FPMINU32    10 ..... 110110 ..... 1 0101 1100 .....    @d_d_d
537     FPMAX8      10 ..... 110110 ..... 1 0001 1101 .....    @d_d_d
538     FPMAX16     10 ..... 110110 ..... 1 0001 1110 .....    @d_d_d
539     FPMAX32     10 ..... 110110 ..... 1 0001 1111 .....    @d_d_d
540     FPMAXU8     10 ..... 110110 ..... 1 0101 1101 .....    @d_d_d
541     FPMAXU16    10 ..... 110110 ..... 1 0101 1110 .....    @d_d_d
542     FPMAXU32    10 ..... 110110 ..... 1 0101 1111 .....    @d_d_d
544     FLCMPs      10 000 cc:2 110110 rs1:5 1 0101 0001 rs2:5
545     FLCMPd      10 000 cc:2 110110 ..... 1 0101 0010 ..... \
546                 rs1=%dfp_rs1 rs2=%dfp_rs2
547   ]
548   NCP           10 ----- 110110 ----- --------- -----      # v8 CPop1
552   [
553     FMADDs      10 ..... 110111 ..... ..... 0001 .....     @r_r_r_r
554     FMADDd      10 ..... 110111 ..... ..... 0010 .....     @d_d_d_d
555     FMSUBs      10 ..... 110111 ..... ..... 0101 .....     @r_r_r_r
556     FMSUBd      10 ..... 110111 ..... ..... 0110 .....     @d_d_d_d
557     FNMSUBs     10 ..... 110111 ..... ..... 1001 .....     @r_r_r_r
558     FNMSUBd     10 ..... 110111 ..... ..... 1010 .....     @d_d_d_d
559     FNMADDs     10 ..... 110111 ..... ..... 1101 .....     @r_r_r_r
560     FNMADDd     10 ..... 110111 ..... ..... 1110 .....     @d_d_d_d
562     FPMADDX     10 ..... 110111 ..... ..... 0000 .....     @d_d_d_d
563     FPMADDXHI   10 ..... 110111 ..... ..... 0100 .....     @d_d_d_d
564   ]
565   NCP           10 ----- 110111 ----- --------- -----      # v8 CPop2
569 ## Major Opcode 11 -- load and store instructions
572 &r_r_ri_asi rd rs1 rs2_or_imm asi imm:bool
573 @r_r_ri_na  .. rd:5  ...... rs1:5 imm:1 rs2_or_imm:s13     &r_r_ri_asi asi=-1
574 @d_r_ri_na  .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13     \
575             &r_r_ri_asi rd=%dfp_rd asi=-1
576 @q_r_ri_na  .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13     \
577             &r_r_ri_asi rd=%qfp_rd asi=-1
579 @r_r_r_asi  .. rd:5  ...... rs1:5 0     asi:8 rs2_or_imm:5 &r_r_ri_asi imm=0
580 @r_r_i_asi  .. rd:5  ...... rs1:5 1     rs2_or_imm:s13     \
581             &r_r_ri_asi imm=1 asi=-2
582 @d_r_r_asi  .. ..... ...... rs1:5 0     asi:8 rs2_or_imm:5 \
583             &r_r_ri_asi rd=%dfp_rd imm=0
584 @d_r_i_asi  .. ..... ...... rs1:5 1     rs2_or_imm:s13     \
585             &r_r_ri_asi rd=%dfp_rd imm=1 asi=-2
586 @q_r_r_asi  .. ..... ...... rs1:5 0     asi:8 rs2_or_imm:5 \
587             &r_r_ri_asi rd=%qfp_rd imm=0
588 @q_r_i_asi  .. ..... ...... rs1:5 1     rs2_or_imm:s13     \
589             &r_r_ri_asi rd=%qfp_rd imm=1 asi=-2
590 @casa_imm   .. rd:5  ...... rs1:5 1 00000000 rs2_or_imm:5  \
591             &r_r_ri_asi imm=1 asi=-2
593 LDUW        11 ..... 000000 ..... . .............          @r_r_ri_na
594 LDUB        11 ..... 000001 ..... . .............          @r_r_ri_na
595 LDUH        11 ..... 000010 ..... . .............          @r_r_ri_na
596 LDD         11 ..... 000011 ..... . .............          @r_r_ri_na
597 LDSW        11 ..... 001000 ..... . .............          @r_r_ri_na
598 LDSB        11 ..... 001001 ..... . .............          @r_r_ri_na
599 LDSH        11 ..... 001010 ..... . .............          @r_r_ri_na
600 LDX         11 ..... 001011 ..... . .............          @r_r_ri_na
602 STW         11 ..... 000100 ..... . .............          @r_r_ri_na
603 STB         11 ..... 000101 ..... . .............          @r_r_ri_na
604 STH         11 ..... 000110 ..... . .............          @r_r_ri_na
605 STD         11 ..... 000111 ..... . .............          @r_r_ri_na
606 STX         11 ..... 001110 ..... . .............          @r_r_ri_na
608 LDUW        11 ..... 010000 ..... . .............          @r_r_r_asi # LDUWA
609 LDUW        11 ..... 010000 ..... . .............          @r_r_i_asi # LDUWA
610 LDUB        11 ..... 010001 ..... . .............          @r_r_r_asi # LDUBA
611 LDUB        11 ..... 010001 ..... . .............          @r_r_i_asi # LDUBA
612 LDUH        11 ..... 010010 ..... . .............          @r_r_r_asi # LDUHA
613 LDUH        11 ..... 010010 ..... . .............          @r_r_i_asi # LDUHA
614 LDD         11 ..... 010011 ..... . .............          @r_r_r_asi # LDDA
615 LDD         11 ..... 010011 ..... . .............          @r_r_i_asi # LDDA
616 LDX         11 ..... 011011 ..... . .............          @r_r_r_asi # LDXA
617 LDX         11 ..... 011011 ..... . .............          @r_r_i_asi # LDXA
618 LDSB        11 ..... 011001 ..... . .............          @r_r_r_asi # LDSBA
619 LDSB        11 ..... 011001 ..... . .............          @r_r_i_asi # LDSBA
620 LDSH        11 ..... 011010 ..... . .............          @r_r_r_asi # LDSHA
621 LDSH        11 ..... 011010 ..... . .............          @r_r_i_asi # LDSHA
622 LDSW        11 ..... 011000 ..... . .............          @r_r_r_asi # LDSWA
623 LDSW        11 ..... 011000 ..... . .............          @r_r_i_asi # LDSWA
625 STW         11 ..... 010100 ..... . .............          @r_r_r_asi # STWA
626 STW         11 ..... 010100 ..... . .............          @r_r_i_asi # STWA
627 STB         11 ..... 010101 ..... . .............          @r_r_r_asi # STBA
628 STB         11 ..... 010101 ..... . .............          @r_r_i_asi # STBA
629 STH         11 ..... 010110 ..... . .............          @r_r_r_asi # STHA
630 STH         11 ..... 010110 ..... . .............          @r_r_i_asi # STHA
631 STD         11 ..... 010111 ..... . .............          @r_r_r_asi # STDA
632 STD         11 ..... 010111 ..... . .............          @r_r_i_asi # STDA
633 STX         11 ..... 011110 ..... . .............          @r_r_r_asi # STXA
634 STX         11 ..... 011110 ..... . .............          @r_r_i_asi # STXA
636 LDF         11 ..... 100000 ..... . .............          @r_r_ri_na
637 LDFSR       11 00000 100001 ..... . .............          @n_r_ri
638 LDXFSR      11 00001 100001 ..... . .............          @n_r_ri
639 LDXEFSR     11 00011 100001 ..... . .............          @n_r_ri
640 LDQF        11 ..... 100010 ..... . .............          @q_r_ri_na
641 LDDF        11 ..... 100011 ..... . .............          @d_r_ri_na
643 STF         11 ..... 100100 ..... . .............          @r_r_ri_na
644 STFSR       11 00000 100101 ..... . .............          @n_r_ri
645 STXFSR      11 00001 100101 ..... . .............          @n_r_ri
647   STQF      11 ..... 100110 ..... . .............          @q_r_ri_na
648   STDFQ     11 ----- 100110 ----- - -------------
650 STDF        11 ..... 100111 ..... . .............          @d_r_ri_na
652 LDSTUB      11 ..... 001101 ..... . .............          @r_r_ri_na
653 LDSTUB      11 ..... 011101 ..... . .............          @r_r_r_asi # LDSTUBA
654 LDSTUB      11 ..... 011101 ..... . .............          @r_r_i_asi # LDSTUBA
656 SWAP        11 ..... 001111 ..... . .............          @r_r_ri_na
657 SWAP        11 ..... 011111 ..... . .............          @r_r_r_asi # SWAPA
658 SWAP        11 ..... 011111 ..... . .............          @r_r_i_asi # SWAPA
660 CASA        11 ..... 111100 ..... . .............          @r_r_r_asi
661 CASA        11 ..... 111100 ..... . .............          @casa_imm
662 CASXA       11 ..... 111110 ..... . .............          @r_r_r_asi
663 CASXA       11 ..... 111110 ..... . .............          @casa_imm
665 NOP_v9      11 ----- 101101 ----- 0 00000000 -----         # PREFETCH
666 NOP_v9      11 ----- 101101 ----- 1 -------------          # PREFETCH
667 NOP_v9      11 ----- 111101 ----- - -------------          # PREFETCHA
670   [
671     LDFA    11 ..... 110000 ..... . .............          @r_r_r_asi
672     LDFA    11 ..... 110000 ..... . .............          @r_r_i_asi
673   ]
674   NCP       11 ----- 110000 ----- --------- -----          # v8 LDC
676 NCP         11 ----- 110001 ----- --------- -----          # v8 LDCSR
677 LDQFA       11 ..... 110010 ..... . .............          @q_r_r_asi
678 LDQFA       11 ..... 110010 ..... . .............          @q_r_i_asi
680   [
681     LDDFA   11 ..... 110011 ..... . .............          @d_r_r_asi
682     LDDFA   11 ..... 110011 ..... . .............          @d_r_i_asi
683   ]
684   NCP       11 ----- 110011 ----- --------- -----          # v8 LDDC
688   [
689     STFA    11 ..... 110100 ..... . .............          @r_r_r_asi
690     STFA    11 ..... 110100 ..... . .............          @r_r_i_asi
691   ]
692   NCP       11 ----- 110100 ----- --------- -----          # v8 STC
694 NCP         11 ----- 110101 ----- --------- -----          # v8 STCSR
696   [
697     STQFA   11 ..... 110110 ..... . .............          @q_r_r_asi
698     STQFA   11 ..... 110110 ..... . .............          @q_r_i_asi
699   ]
700   NCP       11 ----- 110110 ----- --------- -----          # v8 STDCQ
703   [
704     STDFA   11 ..... 110111 ..... . .............          @d_r_r_asi
705     STDFA   11 ..... 110111 ..... . .............          @d_r_i_asi
706   ]
707   NCP       11 ----- 110111 ----- --------- -----          # v8 STDC