1 /*
2  * Copyright (c) 2007-2013 Michael Mondy
3  * Copyright (c) 2012-2016 Harry Reed
4  * Copyright (c) 2013-2016 Charles Anthony
5  * Copyright (c) 2021 The DPS8M Development Team
6  *
7  * All rights reserved.
8  *
9  * This software is made available under the terms of the ICU
10  * License, version 1.8.1 or later.  For more details, see the
11  * LICENSE.md file at the top-level directory of this distribution.
12  */
13 
14 #include "dps8.h"
15 #include "dps8_opcodetable.h"
16 
17 #define _EIS_ NO_TAG | NO_XED | NO_RPT | IGN_B29
18 
19 struct opcode_s opcodes10[02000] = {
20 // NonEIS
21     /* 000 */
22     {NULL, 0, 0, 0, 0},
23     {"mme", PREPARE_CA | NO_RPT, 0, 0, 0},
24     {"drl", PREPARE_CA | NO_RPT, 0, 0, 0},
25     {NULL, 0, 0, 0, 0},
26     {"mme2", PREPARE_CA | NO_BAR | NO_RPT, 0, 0, 0},
27     {"mme3", PREPARE_CA | NO_BAR | NO_RPT, 0, 0, 0},
28     {NULL, 0, 0, 0, 0},
29     {"mme4", PREPARE_CA | NO_BAR | NO_RPT, 0, 0, 0},
30     {NULL, 0, 0, 0, 0},
31     {"nop", PREPARE_CA | NO_RPT, 0, 0, ru_none},
32     {"puls1", PREPARE_CA | NO_RPT, 0, 0, 0},
33     {"puls2", PREPARE_CA | NO_RPT, 0, 0, 0},
34     {NULL, 0, 0, 0, 0},
35     {"cioc", READ_OPERAND | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
36     {NULL, 0, 0, 0, 0},
37     {NULL, 0, 0, 0, 0},
38     {"adlx0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_A | ru_X0},
39     {"adlx1", READ_OPERAND, NO_CSS, 0, ru_A | ru_X1},
40     {"adlx2", READ_OPERAND, NO_CSS, 0, ru_A | ru_X2},
41     {"adlx3", READ_OPERAND, NO_CSS, 0, ru_A | ru_X3},
42     {"adlx4", READ_OPERAND, NO_CSS, 0, ru_A | ru_X4},
43     {"adlx5", READ_OPERAND, NO_CSS, 0, ru_A | ru_X5},
44     {"adlx6", READ_OPERAND, NO_CSS, 0, ru_A | ru_X6},
45     {"adlx7", READ_OPERAND, NO_CSS, 0, ru_A | ru_X7},
46     {NULL, 0, 0, 0, 0},
47     {NULL, 0, 0, 0, 0},
48     {"ldqc", RMW, NO_DDCSS, 0, ru_Q},
49     {"adl", READ_OPERAND, NO_CSS, 0, ru_AQ},
50     {"ldac", RMW, NO_DDCSS, 0, ru_A},
51     {"adla", READ_OPERAND, 0, 0, ru_A},
52     {"adlq", READ_OPERAND, 0, 0, ru_Q},
53     {"adlaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
54     {"asx0", RMW | NO_RPT | NO_RPL, NO_DDCSS, 0, ru_X0},
55     {"asx1", RMW | NO_RPL, NO_DDCSS, 0, ru_X1},
56     {"asx2", RMW | NO_RPL, NO_DDCSS, 0, ru_X2},
57     {"asx3", RMW | NO_RPL, NO_DDCSS, 0, ru_X3},
58     {"asx4", RMW | NO_RPL, NO_DDCSS, 0, ru_X4},
59     {"asx5", RMW | NO_RPL, NO_DDCSS, 0, ru_X5},
60     {"asx6", RMW | NO_RPL, NO_DDCSS, 0, ru_X6},
61     {"asx7", RMW | NO_RPL, NO_DDCSS, 0, ru_X7},
62     {"adwp0", READ_OPERAND | NO_BAR | NO_RPT, NO_DLCSS, 0, 0},
63     {"adwp1", READ_OPERAND | NO_BAR | NO_RPT, NO_DLCSS, 0, 0},
64     {"adwp2", READ_OPERAND | NO_BAR | NO_RPT, NO_DLCSS, 0, 0},
65     {"adwp3", READ_OPERAND | NO_BAR | NO_RPT, NO_DLCSS, 0, 0},
66     {"aos", RMW | NO_RPL, NO_DDCSS, 0, ru_none},
67     {"asa", RMW | NO_RPL, NO_DDCSS, 0, ru_A},
68     {"asq", RMW | NO_RPL, NO_DDCSS, 0, ru_Q},
69     {"sscr", PREPARE_CA | PRIV_INS, NO_DDCSS, 0, ru_AQ},
70     {"adx0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_X0},
71     {"adx1", READ_OPERAND, NO_CSS, 0, ru_X1},
72     {"adx2", READ_OPERAND, NO_CSS, 0, ru_X2},
73     {"adx3", READ_OPERAND, NO_CSS, 0, ru_X3},
74     {"adx4", READ_OPERAND, NO_CSS, 0, ru_X4},
75     {"adx5", READ_OPERAND, NO_CSS, 0, ru_X5},
76     {"adx6", READ_OPERAND, NO_CSS, 0, ru_X6},
77     {"adx7", READ_OPERAND, NO_CSS, 0, ru_X7},
78     {NULL, 0, 0, 0, 0},
79     {"awca", READ_OPERAND, 0, 0, ru_A},
80     {"awcq", READ_OPERAND, 0, 0, ru_Q},
81     {"lreg", READ_YBLOCK8 | NO_RPT, NO_DDCSS, 0, MASK10},
82     {NULL, 0, 0, 0, 0},
83     {"ada", READ_OPERAND, 0, 0, ru_A},
84     {"adq", READ_OPERAND, 0, 0, ru_Q},
85     {"adaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
86 
87     /* 100 */
88     {"cmpx0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_X0},
89     {"cmpx1", READ_OPERAND, NO_CSS, 0, ru_X1},
90     {"cmpx2", READ_OPERAND, NO_CSS, 0, ru_X2},
91     {"cmpx3", READ_OPERAND, NO_CSS, 0, ru_X3},
92     {"cmpx4", READ_OPERAND, NO_CSS, 0, ru_X4},
93     {"cmpx5", READ_OPERAND, NO_CSS, 0, ru_X5},
94     {"cmpx6", READ_OPERAND, NO_CSS, 0, ru_X6},
95     {"cmpx7", READ_OPERAND, NO_CSS, 0, ru_X7},
96     {NULL, 0, 0, 0, 0},
97     {"cwl", READ_OPERAND, 0, 0, ru_AQ},
98     {NULL, 0, 0, 0, 0},
99     {NULL, 0, 0, 0, 0},
100     {NULL, 0, 0, 0, 0},
101     {"cmpa", READ_OPERAND, 0, 0, ru_A},
102     {"cmpq", READ_OPERAND, 0, 0, ru_Q},
103     {"cmpaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
104     {"sblx0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_X0},
105     {"sblx1", READ_OPERAND, NO_CSS, 0, ru_X1},
106     {"sblx2", READ_OPERAND, NO_CSS, 0, ru_X2},
107     {"sblx3", READ_OPERAND, NO_CSS, 0, ru_X3},
108     {"sblx4", READ_OPERAND, NO_CSS, 0, ru_X4},
109     {"sblx5", READ_OPERAND, NO_CSS, 0, ru_X5},
110     {"sblx6", READ_OPERAND, NO_CSS, 0, ru_X6},
111     {"sblx7", READ_OPERAND, NO_CSS, 0, ru_X7},
112     {NULL, 0, 0, 0, 0},
113     {NULL, 0, 0, 0, 0},
114     {NULL, 0, 0, 0, 0},
115     {NULL, 0, 0, 0, 0},
116     {NULL, 0, 0, 0, 0},
117     {"sbla", READ_OPERAND, 0, 0, ru_A},
118     {"sblq", READ_OPERAND, 0, 0, ru_Q},
119     {"sblaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
120     {"ssx0", RMW | NO_RPT | NO_RPL, NO_DDCSS, 0, ru_X0},
121     {"ssx1", RMW | NO_RPL, NO_DDCSS, 0, ru_X1},
122     {"ssx2", RMW | NO_RPL, NO_DDCSS, 0, ru_X2},
123     {"ssx3", RMW | NO_RPL, NO_DDCSS, 0, ru_X3},
124     {"ssx4", RMW | NO_RPL, NO_DDCSS, 0, ru_X4},
125     {"ssx5", RMW | NO_RPL, NO_DDCSS, 0, ru_X5},
126     {"ssx6", RMW | NO_RPL, NO_DDCSS, 0, ru_X6},
127     {"ssx7", RMW | NO_RPL, NO_DDCSS, 0, ru_X7},
128     {"adwp4", READ_OPERAND | NO_BAR | NO_RPT, NO_DLCSS, 0, 0},
129     {"adwp5", READ_OPERAND | NO_BAR | NO_RPT, NO_DLCSS, 0, 0},
130     {"adwp6", READ_OPERAND | NO_BAR | NO_RPT, NO_DLCSS, 0, 0},
131     {"adwp7", READ_OPERAND | NO_BAR | NO_RPT, NO_DLCSS, 0, 0},
132     {"sdbr", STORE_YPAIR | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
133     {"ssa", RMW | NO_RPL, NO_DDCSS, 0, ru_A},
134     {"ssq", RMW | NO_RPL, NO_DDCSS, 0, ru_Q},
135     {NULL, 0, 0, 0, 0},
136     {"sbx0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_X0},
137     {"sbx1", READ_OPERAND, NO_CSS, 0, ru_X1},
138     {"sbx2", READ_OPERAND, NO_CSS, 0, ru_X2},
139     {"sbx3", READ_OPERAND, NO_CSS, 0, ru_X3},
140     {"sbx4", READ_OPERAND, NO_CSS, 0, ru_X4},
141     {"sbx5", READ_OPERAND, NO_CSS, 0, ru_X5},
142     {"sbx6", READ_OPERAND, NO_CSS, 0, ru_X6},
143     {"sbx7", READ_OPERAND, NO_CSS, 0, ru_X7},
144     {NULL, 0, 0, 0, 0},
145     {"swca", READ_OPERAND, 0, 0, ru_A},
146     {"swcq", READ_OPERAND, 0, 0, ru_Q},
147     {"lpri", READ_YBLOCK16 | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
148     {NULL, 0, 0, 0, 0},
149     {"sba", READ_OPERAND, 0, 0, ru_A},
150     {"sbq", READ_OPERAND, 0, 0, ru_Q},
151     {"sbaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
152 
153     /* 200 */
154     {"cnax0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_X0},
155     {"cnax1", READ_OPERAND, NO_CSS, 0, ru_X1},
156     {"cnax2", READ_OPERAND, NO_CSS, 0, ru_X2},
157     {"cnax3", READ_OPERAND, NO_CSS, 0, ru_X3},
158     {"cnax4", READ_OPERAND, NO_CSS, 0, ru_X4},
159     {"cnax5", READ_OPERAND, NO_CSS, 0, ru_X5},
160     {"cnax6", READ_OPERAND, NO_CSS, 0, ru_X6},
161     {"cnax7", READ_OPERAND, NO_CSS, 0, ru_X7},
162     {NULL, 0, 0, 0, 0},
163     {"cmk", READ_OPERAND, 0, 0, ru_AQ},
164     // XXX AL-39 seems wrong w.r.t absa; it makes no sense as privileged.
165     {"absa", PREPARE_CA | PRIV_INS | NO_RPT, NO_DDCSS, 0, ru_A},
166     {"epaq", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, ru_AQ},
167     {"sznc", RMW, NO_DDCSS, 0, ru_none},
168     {"cnaa", READ_OPERAND, 0, 0, ru_A},
169     {"cnaq", READ_OPERAND, 0, 0, ru_Q},
170     {"cnaaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
171     {"ldx0", READ_OPERAND | NO_RPT | NO_RPL, NO_CSS, 0, ru_X0},
172     {"ldx1", READ_OPERAND, NO_CSS, 0, ru_X1},
173     {"ldx2", READ_OPERAND, NO_CSS, 0, ru_X2},
174     {"ldx3", READ_OPERAND, NO_CSS, 0, ru_X3},
175     {"ldx4", READ_OPERAND, NO_CSS, 0, ru_X4},
176     {"ldx5", READ_OPERAND, NO_CSS, 0, ru_X5},
177     {"ldx6", READ_OPERAND, NO_CSS, 0, ru_X6},
178     {"ldx7", READ_OPERAND, NO_CSS, 0, ru_X7},
179     {"lbar", READ_OPERAND | NO_RPT | NO_BAR, NO_CSS, 0, 0},
180     {"rsw", PREPARE_CA | PRIV_INS | NO_RPT, 0, 0, ru_A},
181     {"ldbr", READ_YPAIR | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
182     {"rmcm", PRIV_INS, NO_DDCSS, 0, ru_AQ},
183     {"szn", READ_OPERAND, 0, 0, ru_none},
184     {"lda", READ_OPERAND, 0, 0, ru_A},
185     {"ldq", READ_OPERAND, 0, 0, ru_Q},
186     {"ldaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
187     {"orsx0", RMW | NO_RPT | NO_RPL, NO_DDCSS, 0, ru_X0},
188     {"orsx1", RMW | NO_RPL, NO_DDCSS, 0, ru_X1},
189     {"orsx2", RMW | NO_RPL, NO_DDCSS, 0, ru_X2},
190     {"orsx3", RMW | NO_RPL, NO_DDCSS, 0, ru_X3},
191     {"orsx4", RMW | NO_RPL, NO_DDCSS, 0, ru_X4},
192     {"orsx5", RMW | NO_RPL, NO_DDCSS, 0, ru_X5},
193     {"orsx6", RMW | NO_RPL, NO_DDCSS, 0, ru_X6},
194     {"orsx7", RMW | NO_RPL, NO_DDCSS, 0, ru_X7},
195     {"spri0", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
196     {"spbp1", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
197     {"spri2", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
198     {"spbp3", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
199     {"spri", STORE_YBLOCK16 | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
200     {"orsa", RMW | NO_RPL, NO_DDCSS, 0, ru_A},
201     {"orsq", RMW | NO_RPL, NO_DDCSS, 0, ru_Q},
202     {"lsdp", READ_YBLOCK16 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},    // not available on a dps8m
203     {"orx0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_X0},
204     {"orx1", READ_OPERAND, NO_CSS, 0, ru_X1},
205     {"orx2", READ_OPERAND, NO_CSS, 0, ru_X2},
206     {"orx3", READ_OPERAND, NO_CSS, 0, ru_X3},
207     {"orx4", READ_OPERAND, NO_CSS, 0, ru_X4},
208     {"orx5", READ_OPERAND, NO_CSS, 0, ru_X5},
209     {"orx6", READ_OPERAND, NO_CSS, 0, ru_X6},
210     {"orx7", READ_OPERAND, NO_CSS, 0, ru_X7},
211     {"tsp0", TRANSFER_INS | TSPN_INS | NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
212     {"tsp1", TRANSFER_INS | TSPN_INS | NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
213     {"tsp2", TRANSFER_INS | TSPN_INS | NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
214     {"tsp3", TRANSFER_INS | TSPN_INS | NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
215     {NULL, 0, 0, 0, 0},
216     {"ora", READ_OPERAND, 0, 0, ru_A},
217     {"orq", READ_OPERAND, 0, 0, ru_Q},
218     {"oraq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
219 
220     /* 300 */
221     {"canx0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_X0},
222     {"canx1", READ_OPERAND, NO_CSS, 0, ru_X1},
223     {"canx2", READ_OPERAND, NO_CSS, 0, ru_X2},
224     {"canx3", READ_OPERAND, NO_CSS, 0, ru_X3},
225     {"canx4", READ_OPERAND, NO_CSS, 0, ru_X4},
226     {"canx5", READ_OPERAND, NO_CSS, 0, ru_X5},
227     {"canx6", READ_OPERAND, NO_CSS, 0, ru_X6},
228     {"canx7", READ_OPERAND, NO_CSS, 0, ru_X7},
229     {"eawp0", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
230     {"easp0", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
231     {"eawp2", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
232     {"easp2", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
233     {NULL, 0, 0, 0, 0},
234     {"cana", READ_OPERAND, 0, 0, ru_A},
235     {"canq", READ_OPERAND, 0, 0, ru_Q},
236     {"canaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
237     {"lcx0", READ_OPERAND | NO_RPT | NO_RPL, NO_CSS, 0, ru_X0},
238     {"lcx1", READ_OPERAND, NO_CSS, 0, ru_X1},
239     {"lcx2", READ_OPERAND, NO_CSS, 0, ru_X2},
240     {"lcx3", READ_OPERAND, NO_CSS, 0, ru_X3},
241     {"lcx4", READ_OPERAND, NO_CSS, 0, ru_X4},
242     {"lcx5", READ_OPERAND, NO_CSS, 0, ru_X5},
243     {"lcx6", READ_OPERAND, NO_CSS, 0, ru_X6},
244     {"lcx7", READ_OPERAND, NO_CSS, 0, ru_X7},
245     {"eawp4", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
246     {"easp4", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
247     {"eawp6", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
248     {"easp6", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
249     {NULL, 0, 0, 0, 0},
250     {"lca", READ_OPERAND, 0, 0, ru_A},
251     {"lcq", READ_OPERAND, 0, 0, ru_Q},
252     {"lcaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
253     {"ansx0", RMW | NO_RPT | NO_RPL, NO_DDCSS, 0, ru_X0},
254     {"ansx1", RMW | NO_RPL, NO_DDCSS, 0, ru_X1},
255     {"ansx2", RMW | NO_RPL, NO_DDCSS, 0, ru_X2},
256     {"ansx3", RMW | NO_RPL, NO_DDCSS, 0, ru_X3},
257     {"ansx4", RMW | NO_RPL, NO_DDCSS, 0, ru_X4},
258     {"ansx5", RMW | NO_RPL, NO_DDCSS, 0, ru_X5},
259     {"ansx6", RMW | NO_RPL, NO_DDCSS, 0, ru_X6},
260     {"ansx7", RMW | NO_RPL, NO_DDCSS, 0, ru_X7},
261     {"epp0", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
262     {"epbp1", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
263     {"epp2", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
264     {"epbp3", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
265     {"stac", RMW | NO_RPL | NO_BAR, NO_DDCSS, 0, ru_A},
266     {"ansa", RMW | NO_RPL, NO_DDCSS, 0, ru_A},
267     {"ansq", RMW | NO_RPL, NO_DDCSS, 0, ru_Q},
268     {"stcd", STORE_YPAIR | NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
269     {"anx0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_X0},
270     {"anx1", READ_OPERAND, NO_CSS, 0, ru_X1},
271     {"anx2", READ_OPERAND, NO_CSS, 0, ru_X2},
272     {"anx3", READ_OPERAND, NO_CSS, 0, ru_X3},
273     {"anx4", READ_OPERAND, NO_CSS, 0, ru_X4},
274     {"anx5", READ_OPERAND, NO_CSS, 0, ru_X5},
275     {"anx6", READ_OPERAND, NO_CSS, 0, ru_X6},
276     {"anx7", READ_OPERAND, NO_CSS, 0, ru_X7},
277     {"epp4", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
278     {"epbp5", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
279     {"epp6", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
280     {"epbp7", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
281     {NULL, 0, 0, 0, 0},
282     {"ana", READ_OPERAND, 0, 0, ru_A},
283     {"anq", READ_OPERAND, 0, 0, ru_Q},
284     {"anaq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
285 
286     /* 400 */
287     {NULL, 0, 0, 0, 0},
288     {"mpf", READ_OPERAND, NO_CSS, 0, ru_AQ},
289     {"mpy", READ_OPERAND, NO_CSS, 0, ru_AQ},
290     {NULL, 0, 0, 0, 0},
291     {NULL, 0, 0, 0, 0},
292     {"cmg", READ_OPERAND, 0, 0, ru_A},
293     {NULL, 0, 0, 0, 0},
294     {NULL, 0, 0, 0, 0},
295     {NULL, 0, 0, 0, 0},
296     {"lde", READ_OPERAND, NO_CSS, 0, ru_none},
297     {NULL, 0, 0, 0, 0},
298     {"rscr", PREPARE_CA | PRIV_INS | NO_RPL, NO_DDCSS, 0, 0},
299     {NULL, 0, 0, 0, 0},
300     {"ade", READ_OPERAND, NO_CSS, 0, ru_none},
301     {NULL, 0, 0, 0, 0},
302     {NULL, 0, 0, 0, 0},
303     {NULL, 0, 0, 0, 0},
304     {"ufm", READ_OPERAND, NO_CSS, 0, ru_AQ},
305     {NULL, 0, 0, 0, 0},
306     {"dufm", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
307     {NULL, 0, 0, 0, 0},
308     {"fcmg", READ_OPERAND, NO_CSS, 0, ru_AQ},
309     {NULL, 0, 0, 0, 0},
310     {"dfcmg", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
311     {"fszn", READ_OPERAND, NO_CSS, 0, ru_none},
312     {"fld", READ_OPERAND, NO_CSS, 0, ru_AQ},
313     {NULL, 0, 0, 0, 0},
314     {"dfld", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
315     {NULL, 0, 0, 0, 0},
316     {"ufa", READ_OPERAND, NO_CSS, 0, ru_AQ},
317     {NULL, 0, 0, 0, 0},
318     {"dufa", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
319     {"sxl0", STORE_OPERAND | NO_RPT | NO_RPL, NO_DDCSS, 0, ru_X0},
320     {"sxl1", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X1},
321     {"sxl2", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X2},
322     {"sxl3", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X3},
323     {"sxl4", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X4},
324     {"sxl5", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X5},
325     {"sxl6", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X6},
326     {"sxl7", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X7},
327     {"stz", STORE_OPERAND | NO_RPL, NO_DUDL, 0, ru_none},
328     {"smic", PREPARE_CA | PRIV_INS, NO_DDCSS, 0, 0},
329     {"scpr", STORE_YPAIR | NO_TAG | PRIV_INS | NO_RPT, 0, 0, 0},
330     {NULL, 0, 0, 0, 0},
331     {"stt", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, 0},
332     {"fst", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_A},
333     {"ste", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_none},
334     {"dfst", STORE_YPAIR | NO_RPL, NO_DDCSS, 0, ru_AQ},
335     {NULL, 0, 0, 0, 0},
336     {"fmp", READ_OPERAND, NO_CSS, 0, ru_AQ},
337     {NULL, 0, 0, 0, 0},
338     {"dfmp", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
339     {NULL, 0, 0, 0, 0},
340     {NULL, 0, 0, 0, 0},
341     {NULL, 0, 0, 0, 0},
342     {NULL, 0, 0, 0, 0},
343     {"fstr", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_AQ},
344     {"frd", NO_RPL, 0, 0, ru_AQ},
345     {"dfstr", STORE_YPAIR | NO_RPL, NO_DDCSS, 0, ru_AQ},
346     {"dfrd", NO_RPL, 0, 0, ru_AQ},
347     {NULL, 0, 0, 0, 0},
348     {"fad", READ_OPERAND, NO_CSS, 0, ru_AQ},
349     {NULL, 0, 0, 0, 0},
350     {"dfad", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
351 
352     /* 500 */
353     {"rpl", NO_TAG | NO_RPT, 0, 0, ru_X0},
354     {NULL, 0, 0, 0, 0},
355     {NULL, 0, 0, 0, 0},
356     {NULL, 0, 0, 0, 0},
357     {NULL, 0, 0, 0, 0},
358     {"bcd", READ_OPERAND | NO_RPL, NO_CSS, 0, ru_AQ},
359     {"div", READ_OPERAND, 0, 0, ru_AQ},
360     {"dvf", READ_OPERAND, 0, 0, ru_AQ},
361     {NULL, 0, 0, 0, 0},
362     {NULL, 0, 0, 0, 0},
363     {NULL, 0, 0, 0, 0},
364     {"fneg", NO_RPL, 0, 0, ru_AQ},
365     {NULL, 0, 0, 0, 0},
366     {"fcmp", READ_OPERAND, NO_CSS, 0, ru_AQ},
367     {NULL, 0, 0, 0, 0},
368     {"dfcmp", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
369     {"rpt", NO_TAG | NO_RPT, 0, 0, ru_X0},
370     {NULL, 0, 0, 0, 0},
371     {NULL, 0, 0, 0, 0},
372     {NULL, 0, 0, 0, 0},
373     {NULL, 0, 0, 0, 0},
374     {"fdi", READ_OPERAND, NO_CSS, 0, ru_AQ},
375     {NULL, 0, 0, 0, 0},
376     {"dfdi", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
377     {NULL, 0, 0, 0, 0},
378     {"neg", NO_RPL, 0, 0, ru_A},
379     {"cams", PREPARE_CA | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
380     {"negl", NO_RPL, 0, 0, ru_AQ},
381     {NULL, 0, 0, 0, 0},
382     {"ufs", READ_OPERAND, NO_CSS, 0, ru_AQ},
383     {NULL, 0, 0, 0, 0},
384     {"dufs", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
385     {"sprp0", STORE_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
386     {"sprp1", STORE_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
387     {"sprp2", STORE_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
388     {"sprp3", STORE_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
389     {"sprp4", STORE_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
390     {"sprp5", STORE_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
391     {"sprp6", STORE_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
392     {"sprp7", STORE_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
393     {"sbar", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, 0},
394     {"stba", STORE_OPERAND | NO_TAG | NO_RPT, 0, 0, ru_A},
395     {"stbq", STORE_OPERAND | NO_TAG | NO_RPT, 0, 0, ru_Q},
396     {"smcm", PREPARE_CA | PRIV_INS | NO_RPL, NO_DDCSS, 0, 0},
397     {"stc1", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, 0},
398     {NULL, 0, 0, 0, 0},
399     {NULL, 0, 0, 0, 0},
400     {"ssdp", STORE_YBLOCK16 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
401     {"rpd", NO_TAG | NO_RPT, 0, 0, ru_X0},
402     {NULL, 0, 0, 0, 0},
403     {NULL, 0, 0, 0, 0},
404     {NULL, 0, 0, 0, 0},
405     {NULL, 0, 0, 0, 0},
406     {"fdv", READ_OPERAND, NO_CSS, 0, ru_AQ},
407     {NULL, 0, 0, 0, 0},
408     {"dfdv", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
409     {NULL, 0, 0, 0, 0},
410     {NULL, 0, 0, 0, 0},
411     {NULL, 0, 0, 0, 0},
412     {"fno", NO_RPL, 0, 0, ru_AQ},
413     {NULL, 0, 0, 0, 0},
414     {"fsb", READ_OPERAND, NO_CSS, 0, ru_AQ},
415     {NULL, 0, 0, 0, 0},
416     {"dfsb", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
417     /* 600 */
418     {"tze", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
419     {"tnz", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
420     {"tnc", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
421     {"trc", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
422     {"tmi", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
423     {"tpl", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
424     {NULL, 0, 0, 0, 0},
425     {"ttf", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
426     {"rtcd", NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
427     {NULL, 0, 0, 0, 0},
428     {NULL, 0, 0, 0, 0},
429     {"rcu", READ_YBLOCK8 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
430     {"teo", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
431     {"teu", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
432     {"dis", PRIV_INS | NO_RPT, 0, 0, 0},
433     {"tov", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_none},
434     {"eax0", PREPARE_CA | NO_RPT | NO_RPL, NO_DUDL, 0, ru_X0},
435     {"eax1", PREPARE_CA | NO_RPL, NO_DUDL, 0, ru_X1},
436     {"eax2", PREPARE_CA | NO_RPL, NO_DUDL, 0, ru_X2},
437     {"eax3", PREPARE_CA | NO_RPL, NO_DUDL, 0, ru_X3},
438     {"eax4", PREPARE_CA | NO_RPL, NO_DUDL, 0, ru_X4},
439     {"eax5", PREPARE_CA | NO_RPL, NO_DUDL, 0, ru_X5},
440     {"eax6", PREPARE_CA | NO_RPL, NO_DUDL, 0, ru_X6},
441     {"eax7", PREPARE_CA | NO_RPL, NO_DUDL, 0, ru_X7},
442     {"ret", NO_RPT, NO_DDCSS, 0, 0},
443     {NULL, 0, 0, 0, 0},
444     {NULL, 0, 0, 0, 0},
445     {"rccl", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
446     {"ldi", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_none},
447     {"eaa", PREPARE_CA | NO_RPL, NO_DUDL, 0, ru_A},
448     {"eaq", PREPARE_CA | NO_RPL, NO_DUDL, 0, ru_Q},
449     {"ldt", READ_OPERAND | PRIV_INS | NO_RPT, NO_CSS, 0, 0},
450     {"ersx0", RMW | NO_RPT | NO_RPL, NO_DDCSS, 0, ru_X0},
451     {"ersx1", RMW | NO_RPL, NO_DDCSS, 0, ru_X1},
452     {"ersx2", RMW | NO_RPL, NO_DDCSS, 0, ru_X2},
453     {"ersx3", RMW | NO_RPL, NO_DDCSS, 0, ru_X3},
454     {"ersx4", RMW | NO_RPL, NO_DDCSS, 0, ru_X4},
455     {"ersx5", RMW | NO_RPL, NO_DDCSS, 0, ru_X5},
456     {"ersx6", RMW | NO_RPL, NO_DDCSS, 0, ru_X6},
457     {"ersx7", RMW | NO_RPL, NO_DDCSS, 0, ru_X7},
458     {"spri4", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
459     {"spbp5", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
460     {"spri6", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
461     {"spbp7", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
462     {"stacq", RMW | NO_RPL | NO_BAR, NO_DDCSS, 0, ru_AQ},
463     {"ersa", RMW | NO_RPL, NO_DDCSS, 0, ru_A},
464     {"ersq", RMW | NO_RPL, NO_DDCSS, 0, ru_Q},
465     {"scu", STORE_YBLOCK8 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
466     {"erx0", READ_OPERAND | NO_RPT, NO_CSS, 0, ru_X0},
467     {"erx1", READ_OPERAND, NO_CSS, 0, ru_X1},
468     {"erx2", READ_OPERAND, NO_CSS, 0, ru_X2},
469     {"erx3", READ_OPERAND, NO_CSS, 0, ru_X3},
470     {"erx4", READ_OPERAND, NO_CSS, 0, ru_X4},
471     {"erx5", READ_OPERAND, NO_CSS, 0, ru_X5},
472     {"erx6", READ_OPERAND, NO_CSS, 0, ru_X6},
473     {"erx7", READ_OPERAND, NO_CSS, 0, ru_X7},
474     {"tsp4", TRANSFER_INS | TSPN_INS | NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
475     {"tsp5", TRANSFER_INS | TSPN_INS | NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
476     {"tsp6", TRANSFER_INS | TSPN_INS | NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
477     {"tsp7", TRANSFER_INS | TSPN_INS | NO_RPT | NO_BAR, NO_DDCSS, 0, 0},
478     {"lcpr", READ_OPERAND | NO_TAG | PRIV_INS | NO_RPT, 0, 0, 0},
479     {"era", READ_OPERAND, 0, 0, ru_A},
480     {"erq", READ_OPERAND, 0, 0, ru_Q},
481     {"eraq", READ_YPAIR, NO_DDCSS, 0, ru_AQ},
482 
483     /* 700 */
484     {"tsx0", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_X0},
485     {"tsx1", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_X1},
486     {"tsx2", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_X2},
487     {"tsx3", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_X3},
488     {"tsx4", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_X4},
489     {"tsx5", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_X5},
490     {"tsx6", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_X6},
491     {"tsx7", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, ru_X7},
492     {"tra", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, 0},
493     {NULL, 0, 0, 0, 0},
494     {NULL, 0, 0, 0, 0},
495     // CALL6 must fetch the destination instruction to force do_append_cycle
496     // to do all of the ring checks and processing.
497     //{"call6", PREPARE_CA | TRANSFER_INS | CALL6_INS | NO_RPT, NO_DDCSS, 0},
498     {"call6", TRANSFER_INS | CALL6_INS | NO_RPT, NO_DDCSS, 0, 0},
499     {NULL, 0, 0, 0, 0},
500     {"tss", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, 0},
501     {"xec", READ_OPERAND | NO_RPT, NO_DDCSS, 0, 0},
502     {"xed", READ_YPAIR | NO_RPT, NO_DDCSS, 0, 0}, // ????
503     {"lxl0", READ_OPERAND | NO_RPT | NO_RPL, NO_CSS, 0, ru_X0},
504     {"lxl1", READ_OPERAND, NO_CSS, 0, ru_X1},
505     {"lxl2", READ_OPERAND, NO_CSS, 0, ru_X2},
506     {"lxl3", READ_OPERAND, NO_CSS, 0, ru_X3},
507     {"lxl4", READ_OPERAND, NO_CSS, 0, ru_X4},
508     {"lxl5", READ_OPERAND, NO_CSS, 0, ru_X5},
509     {"lxl6", READ_OPERAND, NO_CSS, 0, ru_X6},
510     {"lxl7", READ_OPERAND, NO_CSS, 0, ru_X7},
511     {NULL, 0, 0, 0, 0},
512     {"ars", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_A},
513     {"qrs", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_Q},
514     {"lrs", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_AQ},
515     {NULL, 0, 0, 0, 0},
516     {"als", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_A},
517     {"qls", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_Q},
518     {"lls", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_AQ},
519     {"stx0", STORE_OPERAND | NO_RPT | NO_RPL, NO_DDCSS, 0, ru_X0},
520     {"stx1", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X1},
521     {"stx2", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X2},
522     {"stx3", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X3},
523     {"stx4", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X4},
524     {"stx5", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X5},
525     {"stx6", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X6},
526     {"stx7", STORE_OPERAND | NO_RPL, NO_DDCSS, 0, ru_X7},
527     {"stc2", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, 0},
528     {"stca", STORE_OPERAND | NO_TAG | NO_RPT, 0, 0, ru_A},
529     {"stcq", STORE_OPERAND | NO_TAG | NO_RPT, 0, 0, ru_Q},
530     {"sreg", STORE_YBLOCK8 | NO_RPT, NO_DDCSS, 0, MASK10},
531     {"sti", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, 0},
532     {"sta", STORE_OPERAND | NO_RPL, NO_DUDL, 0, ru_A},
533     {"stq", STORE_OPERAND | NO_RPL, NO_DUDL, 0, ru_Q},
534     {"staq", STORE_YPAIR | NO_RPL, NO_DDCSS, 0, ru_AQ},
535     {"lprp0", READ_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
536     {"lprp1", READ_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
537     {"lprp2", READ_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
538     {"lprp3", READ_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
539     {"lprp4", READ_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
540     {"lprp5", READ_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
541     {"lprp6", READ_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
542     {"lprp7", READ_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
543     {NULL, 0, 0, 0, 0},
544     {"arl", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_A},
545     {"qrl", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_Q},
546     {"lrl", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_AQ},
547     {"gtb", PREPARE_CA | NO_RPL, 0, 0, ru_A},
548     {"alr", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_A},
549     {"qlr", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_Q},
550     {"llr", PREPARE_CA | NO_RPL, NO_DDCSS, 0, ru_AQ},
551 // EIS
552      /* 000 - 017 */
553     {NULL, 0, 0, 0, 0},
554     {NULL, 0, 0, 0, 0},
555     {NULL, 0, 0, 0, 0},
556     {NULL, 0, 0, 0, 0},
557     {NULL, 0, 0, 0, 0},
558     {NULL, 0, 0, 0, 0},
559     {NULL, 0, 0, 0, 0},
560     {NULL, 0, 0, 0, 0},
561     {NULL, 0, 0, 0, 0},
562     {NULL, 0, 0, 0, 0},
563     {NULL, 0, 0, 0, 0},
564     {NULL, 0, 0, 0, 0},
565     {NULL, 0, 0, 0, 0},
566     {NULL, 0, 0, 0, 0},
567     {NULL, 0, 0, 0, 0},
568     {NULL, 0, 0, 0, 0},
569      /* 020 - 037 */
570     {"mve", NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
571     {NULL, 0, 0, 0, 0},
572     {NULL, 0, 0, 0, 0},
573     {NULL, 0, 0, 0, 0},
574     {"mvne", NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
575     {NULL, 0, 0, 0, 0},
576     {NULL, 0, 0, 0, 0},
577     {NULL, 0, 0, 0, 0},
578     {NULL, 0, 0, 0, 0},
579     {NULL, 0, 0, 0, 0},
580     {NULL, 0, 0, 0, 0},
581     {NULL, 0, 0, 0, 0},
582     {NULL, 0, 0, 0, 0},
583     {NULL, 0, 0, 0, 0},
584     {NULL, 0, 0, 0, 0},
585     {NULL, 0, 0, 0, 0},
586      /* 040 - 057 */
587     {NULL, 0, 0, 0, 0},
588     {NULL, 0, 0, 0, 0},
589     {NULL, 0, 0, 0, 0},
590     {NULL, 0, 0, 0, 0},
591     {NULL, 0, 0, 0, 0},
592     {NULL, 0, 0, 0, 0},
593     {NULL, 0, 0, 0, 0},
594     {NULL, 0, 0, 0, 0},
595     {NULL, 0, 0, 0, 0},
596     {NULL, 0, 0, 0, 0},
597     {NULL, 0, 0, 0, 0},
598     {NULL, 0, 0, 0, 0},
599     {NULL, 0, 0, 0, 0},
600     {NULL, 0, 0, 0, 0},
601     {NULL, 0, 0, 0, 0},
602     {NULL, 0, 0, 0, 0},
603      /* 060 - 077 */
604     {"csl", NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
605     {"csr", NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
606     {NULL, 0, 0, 0, 0},
607     {NULL, 0, 0, 0, 0},
608     {"sztl", NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
609     {"sztr", NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
610     {"cmpb", NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
611     {NULL, 0, 0, 0, 0},
612     {NULL, 0, 0, 0, 0},
613     {NULL, 0, 0, 0, 0},
614     {NULL, 0, 0, 0, 0},
615     {NULL, 0, 0, 0, 0},
616     {NULL, 0, 0, 0, 0},
617     {NULL, 0, 0, 0, 0},
618     {NULL, 0, 0, 0, 0},
619     {NULL, 0, 0, 0, 0},
620      /* 100 - 117 */
621     {"mlr",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
622     {"mrl",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
623     {NULL, 0, 0, 0, 0},
624     {NULL, 0, 0, 0, 0},
625     {NULL, 0, 0, 0, 0},
626     {NULL, 0, 0, 0, 0},
627     {"cmpc",  _EIS_ | EOP1_ALPHA | EOP2_ALPHA, 0, 2, is_DU},
628     {NULL, 0, 0, 0, 0},
629     {NULL, 0, 0, 0, 0},
630     {NULL, 0, 0, 0, 0},
631     {NULL, 0, 0, 0, 0},
632     {NULL, 0, 0, 0, 0},
633     {NULL, 0, 0, 0, 0},
634     {NULL, 0, 0, 0, 0},
635     {NULL, 0, 0, 0, 0},
636     {NULL, 0, 0, 0, 0},
637      /* 120 - 137 */
638     {"scd",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
639     {"scdr",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
640     {NULL, 0, 0, 0, 0},
641     {NULL, 0, 0, 0, 0},
642     {"scm",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
643     {"scmr", NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
644     {NULL, 0, 0, 0, 0},
645     {NULL, 0, 0, 0, 0},
646     {NULL, 0, 0, 0, 0},
647     {NULL, 0, 0, 0, 0},
648     {NULL, 0, 0, 0, 0},
649     {NULL, 0, 0, 0, 0},
650     {NULL, 0, 0, 0, 0},
651     {NULL, 0, 0, 0, 0},
652     {NULL, 0, 0, 0, 0},
653     {NULL, 0, 0, 0, 0},
654      /* 140 - 157 */
655     {NULL, 0, 0, 0, 0},
656     {NULL, 0, 0, 0, 0},
657     {NULL, 0, 0, 0, 0},
658     {NULL, 0, 0, 0, 0},
659     {NULL, 0, 0, 0, 0},
660     {NULL, 0, 0, 0, 0},
661     {NULL, 0, 0, 0, 0},
662     {NULL, 0, 0, 0, 0},
663     {NULL, 0, 0, 0, 0},
664     {NULL, 0, 0, 0, 0},
665     {NULL, 0, 0, 0, 0},
666     {NULL, 0, 0, 0, 0},
667     {"sptr", STORE_YBLOCK16 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
668     {NULL, 0, 0, 0, 0},
669     {NULL, 0, 0, 0, 0},
670     {NULL, 0, 0, 0, 0},
671      /* 167 - 177 */
672     {"mvt",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
673     {NULL, 0, 0, 0, 0},
674     {NULL, 0, 0, 0, 0},
675     {NULL, 0, 0, 0, 0},
676     {"tct",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
677     {"tctr",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
678     {NULL, 0, 0, 0, 0},
679     {NULL, 0, 0, 0, 0},
680     {NULL, 0, 0, 0, 0},
681     {NULL, 0, 0, 0, 0},
682     {NULL, 0, 0, 0, 0},
683     {"lptr", READ_YBLOCK16 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
684     {NULL, 0, 0, 0, 0},
685     {NULL, 0, 0, 0, 0},
686     {NULL, 0, 0, 0, 0},
687     {NULL, 0, 0, 0, 0},
688      /* 200 - 217 */
689     {NULL, 0, 0, 0, 0},
690     {NULL, 0, 0, 0, 0},
691     {"ad2d",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
692     {"sb2d",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
693     {NULL, 0, 0, 0, 0},
694     {NULL, 0, 0, 0, 0},
695     {"mp2d",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
696     {"dv2d",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
697     {NULL, 0, 0, 0, 0},
698     {NULL, 0, 0, 0, 0},
699     {NULL, 0, 0, 0, 0},
700     {NULL, 0, 0, 0, 0},
701     {NULL, 0, 0, 0, 0},
702     {NULL, 0, 0, 0, 0},
703     {NULL, 0, 0, 0, 0},
704     {NULL, 0, 0, 0, 0},
705      /* 220 - 237 */
706     {NULL, 0, 0, 0, 0},
707     {NULL, 0, 0, 0, 0},
708     {"ad3d",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
709     {"sb3d",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
710     {NULL, 0, 0, 0, 0},
711     {NULL, 0, 0, 0, 0},
712     {"mp3d",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
713     {"dv3d",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 3, is_DU},
714     {NULL, 0, 0, 0, 0},
715     {NULL, 0, 0, 0, 0},
716     {"lsdr", READ_YBLOCK32 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
717     {NULL, 0, 0, 0, 0},
718     {NULL, 0, 0, 0, 0},
719     {NULL, 0, 0, 0, 0},
720     {NULL, 0, 0, 0, 0},
721     {NULL, 0, 0, 0, 0},
722      /* 240 - 257 */
723     {NULL, 0, 0, 0, 0},
724     {NULL, 0, 0, 0, 0},
725     {NULL, 0, 0, 0, 0},
726     {NULL, 0, 0, 0, 0},
727     {NULL, 0, 0, 0, 0},
728     {NULL, 0, 0, 0, 0},
729     {NULL, 0, 0, 0, 0},
730     {NULL, 0, 0, 0, 0},
731     {"spbp0", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
732     {"spri1", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
733     {"spbp2", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
734     {"spri3", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
735     {"ssdr", STORE_YBLOCK32 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
736     {NULL, 0, 0, 0, 0},
737     {NULL, 0, 0, 0, 0},
738     {"lptp", READ_YBLOCK16 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
739      /* 260 - 277 */
740     {NULL, 0, 0, 0, 0},
741     {NULL, 0, 0, 0, 0},
742     {NULL, 0, 0, 0, 0},
743     {NULL, 0, 0, 0, 0},
744     {NULL, 0, 0, 0, 0},
745     {NULL, 0, 0, 0, 0},
746     {NULL, 0, 0, 0, 0},
747     {NULL, 0, 0, 0, 0},
748     {NULL, 0, 0, 0, 0},
749     {NULL, 0, 0, 0, 0},
750     {NULL, 0, 0, 0, 0},
751     {NULL, 0, 0, 0, 0},
752     {NULL, 0, 0, 0, 0},
753     {NULL, 0, 0, 0, 0},
754     {NULL, 0, 0, 0, 0},
755     {NULL, 0, 0, 0, 0},
756      /* 300 - 317 */
757     {"mvn",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
758     {"btd",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
759     {NULL, 0, 0, 0, 0},
760     {"cmpn",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
761     {NULL, 0, 0, 0, 0},
762     {"dtb",  NO_TAG | NO_XED | NO_RPT | IGN_B29, 0, 2, is_DU},
763     {NULL, 0, 0, 0, 0},
764     {NULL, 0, 0, 0, 0},
765     {"easp1", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
766     {"eawp1", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
767     {"easp3", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
768     {"eawp3", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
769     {NULL, 0, 0, 0, 0},
770     {NULL, 0, 0, 0, 0},
771     {NULL, 0, 0, 0, 0},
772     {NULL, 0, 0, 0, 0},
773      /* 320 - 337 */
774     {NULL, 0, 0, 0, 0},
775     {NULL, 0, 0, 0, 0},
776     {NULL, 0, 0, 0, 0},
777     {NULL, 0, 0, 0, 0},
778     {NULL, 0, 0, 0, 0},
779     {NULL, 0, 0, 0, 0},
780     {NULL, 0, 0, 0, 0},
781     {NULL, 0, 0, 0, 0},
782     {"easp5", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
783     {"eawp5", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
784     {"easp7", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
785     {"eawp7", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
786     {NULL, 0, 0, 0, 0},
787     {NULL, 0, 0, 0, 0},
788     {NULL, 0, 0, 0, 0},
789     {NULL, 0, 0, 0, 0},
790      /* 340 - 357 */
791     {NULL, 0, 0, 0, 0},
792     {NULL, 0, 0, 0, 0},
793     {NULL, 0, 0, 0, 0},
794     {NULL, 0, 0, 0, 0},
795     {NULL, 0, 0, 0, 0},
796     {NULL, 0, 0, 0, 0},
797     {NULL, 0, 0, 0, 0},
798     {NULL, 0, 0, 0, 0},
799     {"epbp0", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
800     {"epp1", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
801     {"epbp2", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
802     {"epp3", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
803     {NULL, 0, 0, 0, 0},
804     {NULL, 0, 0, 0, 0},
805     {NULL, 0, 0, 0, 0},
806     {NULL, 0, 0, 0, 0},
807      /* 360 - 377 */
808     {NULL, 0, 0, 0, 0},
809     {NULL, 0, 0, 0, 0},
810     {NULL, 0, 0, 0, 0},
811     {NULL, 0, 0, 0, 0},
812     {NULL, 0, 0, 0, 0},
813     {NULL, 0, 0, 0, 0},
814     {NULL, 0, 0, 0, 0},
815     {NULL, 0, 0, 0, 0},
816     {"epbp4", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
817     {"epp5", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
818     {"epbp6", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
819     {"epp7", PREPARE_CA | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
820     {NULL, 0, 0, 0, 0},
821     {NULL, 0, 0, 0, 0},
822     {NULL, 0, 0, 0, 0},
823     {NULL, 0, 0, 0, 0},
824      /* 400 - 417 */
825     {NULL, 0, 0, 0, 0},
826     {NULL, 0, 0, 0, 0},
827     {NULL, 0, 0, 0, 0},
828     {NULL, 0, 0, 0, 0},
829     {NULL, 0, 0, 0, 0},
830     {NULL, 0, 0, 0, 0},
831     {NULL, 0, 0, 0, 0},
832     {NULL, 0, 0, 0, 0},
833     {NULL, 0, 0, 0, 0},
834     {NULL, 0, 0, 0, 0},
835     {NULL, 0, 0, 0, 0},
836     {NULL, 0, 0, 0, 0},
837     {NULL, 0, 0, 0, 0},
838     {NULL, 0, 0, 0, 0},
839     {NULL, 0, 0, 0, 0},
840     {NULL, 0, 0, 0, 0},
841      /* 420 - 437 */
842     {"emcall", IGN_B29, 0, 0, 0},  // 420 simulator escape
843     {NULL, 0, 0, 0, 0},
844     {NULL, 0, 0, 0, 0},
845     {NULL, 0, 0, 0, 0},
846     {NULL, 0, 0, 0, 0},
847     {NULL, 0, 0, 0, 0},
848     {NULL, 0, 0, 0, 0},
849     {NULL, 0, 0, 0, 0},
850     {NULL, 0, 0, 0, 0},
851     {NULL, 0, 0, 0, 0},
852     {NULL, 0, 0, 0, 0},
853     {NULL, 0, 0, 0, 0},
854     {NULL, 0, 0, 0, 0},
855     {NULL, 0, 0, 0, 0},
856     {NULL, 0, 0, 0, 0},
857     {NULL, 0, 0, 0, 0},
858      /* 440 - 457 */
859     {NULL, 0, 0, 0, 0},
860     {NULL, 0, 0, 0, 0},
861     {NULL, 0, 0, 0, 0},
862     {"sareg", STORE_YBLOCK8 | NO_RPT, NO_DDCSS, 0, is_DU},
863     {NULL, 0, 0, 0, 0},
864     {NULL, 0, 0, 0, 0},
865     {NULL, 0, 0, 0, 0},
866     {"spl", STORE_YBLOCK8 | NO_RPT, NO_DDCSS, 0, is_DU},
867     {NULL, 0, 0, 0, 0},
868     {NULL, 0, 0, 0, 0},
869     {NULL, 0, 0, 0, 0},
870     {NULL, 0, 0, 0, 0},
871     {NULL, 0, 0, 0, 0},
872     {NULL, 0, 0, 0, 0},
873     {NULL, 0, 0, 0, 0},
874     {NULL, 0, 0, 0, 0},
875      /* 460 - 477 */
876     {NULL, 0, 0, 0, 0},
877     {NULL, 0, 0, 0, 0},
878     {NULL, 0, 0, 0, 0},
879     {"lareg", READ_YBLOCK8 | NO_RPT, NO_DDCSS, 0, is_DU},
880     {NULL, 0, 0, 0, 0},
881     {NULL, 0, 0, 0, 0},
882     {NULL, 0, 0, 0, 0},
883     {"lpl", READ_YBLOCK8 | NO_RPT, NO_DDCSS, 0, is_DU},
884     {NULL, 0, 0, 0, 0},
885     {NULL, 0, 0, 0, 0},
886     {NULL, 0, 0, 0, 0},
887     {NULL, 0, 0, 0, 0},
888     {NULL, 0, 0, 0, 0},
889     {NULL, 0, 0, 0, 0},
890     {NULL, 0, 0, 0, 0},
891     {NULL, 0, 0, 0, 0},
892      /* 500 - 517 */
893     {"a9bd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_9},
894     {"a6bd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_6},
895     {"a4bd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_4},
896     {"abd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_1},
897     {NULL, 0, 0, 0, 0},
898     {NULL, 0, 0, 0, 0},
899     {NULL, 0, 0, 0, 0},
900     {"awd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_WRD},
901     {NULL, 0, 0, 0, 0},
902     {NULL, 0, 0, 0, 0},
903     {NULL, 0, 0, 0, 0},
904     {NULL, 0, 0, 0, 0},
905     {NULL, 0, 0, 0, 0},
906     {NULL, 0, 0, 0, 0},
907     {NULL, 0, 0, 0, 0},
908     {NULL, 0, 0, 0, 0},
909      /* 520 - 537 */
910     {"s9bd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_9},
911     {"s6bd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_6},
912     {"s4bd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_4},
913     {"sbd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_1},
914     {NULL, 0, 0, 0, 0},
915     {NULL, 0, 0, 0, 0},
916     {NULL, 0, 0, 0, 0},
917     {"swd", IGN_B29 | NO_RPT, ONLY_AU_QU_AL_QL_XN, 0, is_WRD},
918     {NULL, 0, 0, 0, 0},
919     {NULL, 0, 0, 0, 0},
920     {"camp", PREPARE_CA | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
921     {NULL, 0, 0, 0, 0},
922     {NULL, 0, 0, 0, 0},
923     {NULL, 0, 0, 0, 0},
924     {NULL, 0, 0, 0, 0},
925     {NULL, 0, 0, 0, 0},
926      /* 540 - 557 */
927     {"ara0", RMW | NO_RPT, NO_DDCSS, 0, is_DU},
928     {"ara1", RMW | NO_RPT, NO_DDCSS, 0, is_DU},
929     {"ara2", RMW | NO_RPT, NO_DDCSS, 0, is_DU},
930     {"ara3", RMW | NO_RPT, NO_DDCSS, 0, is_DU},
931     {"ara4", RMW | NO_RPT, NO_DDCSS, 0, is_DU},
932     {"ara5", RMW | NO_RPT, NO_DDCSS, 0, is_DU},
933     {"ara6", RMW | NO_RPT, NO_DDCSS, 0, is_DU},
934     {"ara7", RMW | NO_RPT, NO_DDCSS, 0, is_DU},
935     {NULL, 0, 0, 0, 0},
936     {NULL, 0, 0, 0, 0},
937     {NULL, 0, 0, 0, 0},
938     {NULL, 0, 0, 0, 0},
939     {NULL, 0, 0, 0, 0},
940     {NULL, 0, 0, 0, 0},
941     {NULL, 0, 0, 0, 0},
942     {"sptp", STORE_YBLOCK16 | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
943      /* 560 - 577 */
944     {"aar0", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
945     {"aar1", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
946     {"aar2", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
947     {"aar3", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
948     {"aar4", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
949     {"aar5", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
950     {"aar6", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
951     {"aar7", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
952     {NULL, 0, 0, 0, 0},
953     {NULL, 0, 0, 0, 0},
954     {NULL, 0, 0, 0, 0},
955     {NULL, 0, 0, 0, 0},
956     {NULL, 0, 0, 0, 0},
957     {NULL, 0, 0, 0, 0},
958     {NULL, 0, 0, 0, 0},
959     {NULL, 0, 0, 0, 0},
960      /* 600 - 617 */
961     {"trtn", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, 0},
962     {"trtf", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, 0},
963     {NULL, 0, 0, 0, 0},
964     {NULL, 0, 0, 0, 0},
965     {"tmoz", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, 0},
966     {"tpnz", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, 0},
967     {"ttn", TRANSFER_INS | NO_RPT, NO_DDCSS, 0, 0},
968     {NULL, 0, 0, 0, 0},
969     {NULL, 0, 0, 0, 0},
970     {NULL, 0, 0, 0, 0},
971     {NULL, 0, 0, 0, 0},
972     {NULL, 0, 0, 0, 0},
973     {NULL, 0, 0, 0, 0},
974     {NULL, 0, 0, 0, 0},
975     {NULL, 0, 0, 0, 0},
976     {NULL, 0, 0, 0, 0},
977      /* 620 - 637 */
978     {NULL, 0, 0, 0, 0},
979     {NULL, 0, 0, 0, 0},
980     {NULL, 0, 0, 0, 0},
981     {NULL, 0, 0, 0, 0},
982     {NULL, 0, 0, 0, 0},
983     {NULL, 0, 0, 0, 0},
984     {NULL, 0, 0, 0, 0},
985     {NULL, 0, 0, 0, 0},
986     {NULL, 0, 0, 0, 0},
987     {NULL, 0, 0, 0, 0},
988     {NULL, 0, 0, 0, 0},
989     {NULL, 0, 0, 0, 0},
990     {NULL, 0, 0, 0, 0},
991     {NULL, 0, 0, 0, 0},
992     {NULL, 0, 0, 0, 0},
993     {NULL, 0, 0, 0, 0},
994      /* 640 - 657 */
995     {"arn0", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
996     {"arn1", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
997     {"arn2", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
998     {"arn3", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
999     {"arn4", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1000     {"arn5", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1001     {"arn6", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1002     {"arn7", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1003     {"spbp4", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
1004     {"spri5", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
1005     {"spbp6", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
1006     {"spri7", STORE_YPAIR | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
1007     {NULL, 0, 0, 0, 0},
1008     {NULL, 0, 0, 0, 0},
1009     {NULL, 0, 0, 0, 0},
1010     {NULL, 0, 0, 0, 0},
1011      /* 660 - 677 */
1012     {"nar0", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1013     {"nar1", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1014     {"nar2", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1015     {"nar3", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1016     {"nar4", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1017     {"nar5", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1018     {"nar6", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1019     {"nar7", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1020     {NULL, 0, 0, 0, 0},
1021     {NULL, 0, 0, 0, 0},
1022     {NULL, 0, 0, 0, 0},
1023     {NULL, 0, 0, 0, 0},
1024     {NULL, 0, 0, 0, 0},
1025     {NULL, 0, 0, 0, 0},
1026     {NULL, 0, 0, 0, 0},
1027     {NULL, 0, 0, 0, 0},
1028      /* 700 - 717 */
1029     {NULL, 0, 0, 0, 0},
1030     {NULL, 0, 0, 0, 0},
1031     {NULL, 0, 0, 0, 0},
1032     {NULL, 0, 0, 0, 0},
1033     {NULL, 0, 0, 0, 0},
1034     {NULL, 0, 0, 0, 0},
1035     {NULL, 0, 0, 0, 0},
1036     {NULL, 0, 0, 0, 0},
1037     {NULL, 0, 0, 0, 0},
1038     {NULL, 0, 0, 0, 0},
1039     {NULL, 0, 0, 0, 0},
1040     {NULL, 0, 0, 0, 0},
1041     {NULL, 0, 0, 0, 0},
1042     {NULL, 0, 0, 0, 0},
1043     {NULL, 0, 0, 0, 0},
1044     {NULL, 0, 0, 0, 0},
1045      /* 720 - 737 */
1046     {NULL, 0, 0, 0, 0},
1047     {NULL, 0, 0, 0, 0},
1048     {NULL, 0, 0, 0, 0},
1049     {NULL, 0, 0, 0, 0},
1050     {NULL, 0, 0, 0, 0},
1051     {NULL, 0, 0, 0, 0},
1052     {NULL, 0, 0, 0, 0},
1053     {NULL, 0, 0, 0, 0},
1054     {NULL, 0, 0, 0, 0},
1055     {NULL, 0, 0, 0, 0},
1056     {NULL, 0, 0, 0, 0},
1057     {NULL, 0, 0, 0, 0},
1058     {NULL, 0, 0, 0, 0},
1059     {NULL, 0, 0, 0, 0},
1060     {NULL, 0, 0, 0, 0},
1061     {NULL, 0, 0, 0, 0},
1062      /* 740 - 757 */
1063     {"sar0", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1064     {"sar1", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1065     {"sar2", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1066     {"sar3", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1067     {"sar4", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1068     {"sar5", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1069     {"sar6", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1070     {"sar7", STORE_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1071     {NULL, 0, 0, 0, 0},
1072     {NULL, 0, 0, 0, 0},
1073     {NULL, 0, 0, 0, 0},
1074     {NULL, 0, 0, 0, 0},
1075     {"sra", STORE_OPERAND | NO_BAR | NO_RPT, NO_DDCSS, 0, 0},
1076     {NULL, 0, 0, 0, 0},
1077     {NULL, 0, 0, 0, 0},
1078     {NULL, 0, 0, 0, 0},
1079      /* 760 - 777 */
1080     {"lar0", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1081     {"lar1", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1082     {"lar2", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1083     {"lar3", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1084     {"lar4", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1085     {"lar5", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1086     {"lar6", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1087     {"lar7", READ_OPERAND | NO_RPT, NO_DDCSS, 0, is_DU},
1088     {NULL, 0, 0, 0, 0},
1089     {NULL, 0, 0, 0, 0},
1090     {NULL, 0, 0, 0, 0},
1091     {NULL, 0, 0, 0, 0},
1092     {"lra", READ_OPERAND | PRIV_INS | NO_RPT, NO_DDCSS, 0, 0},
1093     {NULL, 0, 0, 0, 0},
1094     {NULL, 0, 0, 0, 0},
1095     {NULL, 0, 0, 0, 0}
1096 };
1097 
1098 
1099 struct adrMods extMods[0100] = {    ///< address modifiers w/ extended info
1100     /* R */
1101     {"",   0, 0},
1102     {"au", 1, 0},
1103     {"qu", 2, 0},
1104     {"du", 3, 0},
1105     {"ic", 4, 0},
1106     {"al", 5, 0},
1107     {"ql", 6, 0},
1108     {"dl", 7, 0},
1109     {"0",  8, 0},
1110     {"1",  9, 0},
1111     {"2", 10, 0},
1112     {"3", 11, 0},
1113     {"4", 12, 0},
1114     {"5", 13, 0},
1115     {"6", 14, 0},
1116     {"7", 15, 0},
1117 
1118     /* RI */
1119     {"n*",  16, 0},
1120     {"au*", 17, 0},
1121     {"qu*", 18, 0},
1122     {NULL,  19, 0},
1123     {"ic*", 20, 0},
1124     {"al*", 21, 0},
1125     {"ql*", 22, 0},
1126     {NULL,  23, 0},
1127     {"0*",  24, 0},
1128     {"1*",  25, 0},
1129     {"2*",  26, 0},
1130     {"3*",  27, 0},
1131     {"4*",  28, 0},
1132     {"5*",  29, 0},
1133     {"6*",  30, 0},
1134     {"7*",  31, 0},
1135 
1136     /* IT */
1137     {"f1",  32, 0},
1138     {"itp", 33, 0},
1139     {NULL,  34, 0},
1140     {"its", 35, 0},
1141     {"sd",  36, 0},
1142     {"scr", 37, 0},
1143     {"f2",  38, 0},
1144     {"f3",  39, 0},
1145     {"ci",  40, 0},
1146     {"i",   41, 0},
1147     {"sc",  42, 0},
1148     {"ad",  43, 0},
1149     {"di",  44, 0},
1150     {"dic", 45, 0},
1151     {"id",  46, 0},
1152     {"idc", 47, 0},
1153 
1154     /* IR */
1155     {"*n",  48, 0},
1156     {"*au", 49, 0},
1157     {"*qu", 50, 0},
1158     {"*du", 51, 0},
1159     {"*ic", 52, 0},
1160     {"*al", 53, 0},
1161     {"*ql", 54, 0},
1162     {"*dl", 55, 0},
1163     {"*0",  56, 0},
1164     {"*1",  57, 0},
1165     {"*2",  58, 0},
1166     {"*3",  59, 0},
1167     {"*4",  60, 0},
1168     {"*5",  61, 0},
1169     {"*6",  62, 0},
1170     {"*7",  63, 0},
1171 };
1172 
1173 char GEBcdToASCII[64] = ///< from pg 271 CPB1004F_GE635pgmRef_Jul69
1174 {
1175 /* 000 - 007 */    '0', '1', '2', '3', '4', '5', '6', '7',
1176 /* 010 - 017 */    '8', '9', '[', '#', '@', ':', '>', '?',
1177 /* 020 - 027 */    ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
1178 /* 030 - 037 */    'H', 'I', '&', '.', ']', '(', '<', '\\',
1179 /* 040 - 047 */    '^', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
1180 /* 050 - 057 */    'Q', 'R', '-', '$', '*', ')', ';', '\'',
1181 /* 060 - 067 */    '+', '/', 'S', 'T', 'U', 'V', 'W', 'X',
1182 /* 070 - 077 */    'Y', 'Z', '_', ',', '%', '=', '"', '!'
1183 };
1184 
1185 #ifndef QUIET_UNUSED
1186 char ASCIIToGEBcd[128] =
1187 {
1188 /* 000 - 007 */    -1, -1, -1, -1, -1, -1, -1, -1,
1189 /* 010 - 017 */    -1, -1, -1, -1, -1, -1, -1, -1,
1190 /* 020 - 027 */    -1, -1, -1, -1, -1, -1, -1, -1,
1191 /* 030 - 037 */    -1, -1, -1, -1, -1, -1, -1, -1,
1192 /* 040 - 047 */    16, 63, 62, 11, 43, 60, 26, 47,
1193 /* 050 - 057 */    29, 45, 44, 48, 59, 42, 27, 49,
1194 /* 060 - 067 */     0,  1,  2,  3,  4,  5,  6,  7,
1195 /* 070 - 077 */     8,  9, 13, 46, 30, 61, 14, 15,
1196 /* 100 - 107 */    12, 17, 18, 19, 20, 21, 22, 23,
1197 /* 110 - 117 */    24, 25, 33, 34, 35, 36, 37, 38,
1198 /* 120 - 127 */    39, 40, 41, 50, 51, 52, 53, 54,
1199 /* 130 - 137 */    55, 56, 57, 10, 31, 28, 32, 58,
1200 /* 140 - 147 */    -1, 17, 18, 19, 20, 21, 22, 23,
1201 /* 150 - 157 */    24, 25, 33, 34, 35, 36, 37, 38,
1202 /* 160 - 167 */    39, 40, 41, 50, 51, 52, 53, 54,
1203 /* 170 - 177 */    55, 56, 57, -1, -1, -1, -1, -1,
1204 };
1205 #endif
1206 
1207 #ifndef QUIET_UNUSED
1208 char *op0text[512] = {
1209         // index by upper 9 bits of those opcodes with bit 27 == 0
1210         NULL,    "mme",   "drl",   NULL,    "mme2",  "mme3",  NULL,    "mme4",
1211         NULL,    "nop",   "puls1", "puls2", NULL,    "cioc",  NULL,    NULL,
1212         "adlx0", "adlx1", "adlx2", "adlx3", "adlx4", "adlx5", "adlx6", "adlx7",
1213         NULL,    NULL,    "ldqc",  "adl",   "ldac",  "adla",  "adlq",  "adlaq",
1214         "asx0",  "asx1",  "asx2",  "asx3",  "asx4",  "asx5",  "asx6",  "asx7",
1215         "adwp0", "adwp1", "adwp2", "adwp3", "aos",   "asa",   "asq",   "sscr",
1216         "adx0",  "adx1",  "adx2",  "adx3",  "adx4",  "adx5",  "adx6",  "adx7",
1217         NULL,    "awca",  "awcq",  "lreg",  NULL,    "ada",   "adq",   "adaq",
1218         "cmpx0", "cmpx1", "cmpx2", "cmpx3", "cmpx4", "cmpx5", "cmpx6", "cmpx7",
1219         NULL,    "cwl",   NULL,    NULL,    NULL,    "cmpa",  "cmpq",  "cmpaq",
1220         "sblx0", "sblx1", "sblx2", "sblx3", "sblx4", "sblx5", "sblx6", "sblx7",
1221         NULL,    NULL,    NULL,    NULL,    NULL,    "sbla",  "sblq",  "sblaq",
1222         "ssx0",  "ssx1",  "ssx2",  "ssx3",  "ssx4",  "ssx5",  "ssx6",  "ssx7",
1223         "adwp4", "adwp5", "adwp6", "adwp7", "sdbr",  "ssa",   "ssq",   NULL,
1224         "sbx0",  "sbx1",  "sbx2",  "sbx3",  "sbx4",  "sbx5",  "sbx6",  "sbx7",
1225         NULL,    "swca",  "swcq",  "lpri",  NULL,    "sba",   "sbq",   "sbaq",
1226         "cnax0", "cnax1", "cnax2", "cnax3", "cnax4", "cnax5", "cnax6", "cnax7",
1227         NULL,    "cmk",   "absa",  "epaq",  "sznc",  "cnaa",  "cnaq",  "cnaaq",
1228         "ldx0",  "ldx1",  "ldx2",  "ldx3",  "ldx4",  "ldx5",  "ldx6",  "ldx7",
1229         "lbar",  "rsw",   "ldbr",  "rmcm",  "szn",   "lda",   "ldq",   "ldaq",
1230         "orsx0", "orsx1", "orsx2", "orsx3", "orsx4", "orsx5", "orsx6", "orsx7",
1231         "spri0", "spbp1", "spri2", "spbp3", "spri",  "orsa",  "orsq",  "lsdp",
1232         "orx0",  "orx1",  "orx2",  "orx3",  "orx4",  "orx5",  "orx6",  "orx7",
1233         "tsp0",  "tsp1",  "tsp2",  "tsp3",  NULL,    "ora",   "orq",   "oraq",
1234         "canx0", "canx1", "canx2", "canx3", "canx4", "canx5", "canx6", "canx7",
1235         "eawp0", "easp0", "eawp2", "easp2", NULL,    "cana",  "canq",  "canaq",
1236         "lcx0",  "lcx1",  "lcx2",  "lcx3",  "lcx4",  "lcx5",  "lcx6",  "lcx7",
1237         "eawp4", "easp4", "eawp6", "easp6", NULL,    "lca",   "lcq",   "lcaq",
1238         "ansx0", "ansx1", "ansx2", "ansx3", "ansx4", "ansx5", "ansx6", "ansx7",
1239         "epp0",  "pbp1", "epp2",  "epbp3", "stac",  "ansa",  "ansq",  "stcd",
1240         "anx0",  "anx1",  "anx2",  "anx3",  "anx4",  "anx5",  "anx6",  "anx7",
1241         "epp4",  "epbp5", "epp6",  "epbp7", NULL,    "ana",   "anq",   "anaq",
1242         NULL,    "mpf",   "mpy",   NULL,    NULL,    "cmg",   NULL,    NULL,
1243         NULL,    "lde",   NULL,    "rscr",  NULL,    "ade",   NULL,    NULL,
1244         NULL,    "ufm",   NULL,    "dufm",  NULL,    "fcmg",  NULL,    "dfcmg",
1245         "fszn",  "fld",   NULL,    "dfld",  NULL,    "ufa",   NULL,    "dufa",
1246         "sxl0",  "sxl1",  "sxl2",  "sxl3",  "sxl4",  "sxl5",  "sxl6",  "sxl7",
1247         "stz",   "smic",  "scpr",  NULL,    "stt",   "fst",   "ste",   "dfst",
1248         NULL,    "fmp",   NULL,    "dfmp",  NULL,    NULL,    NULL,    NULL,
1249         "fstr",  "frd",   "dfstr", "dfrd",  NULL,    "fad",   NULL,    "dfad",
1250         "rpl",   NULL,    NULL,    NULL,    NULL,    "bcd",   "div",   "dvf",
1251         NULL,    NULL,    NULL,    "fneg",  NULL,    "fcmp",  NULL,    "dfcmp",
1252         "rpt",   NULL,    NULL,    NULL,    NULL,    "fdi",   NULL,    "dfdi",
1253         NULL,    "neg",   "cams",  "negl",  NULL,    "ufs",   NULL,    "dufs",
1254         "sprp0", "sprp1", "sprp2", "sprp3", "sprp4", "sprp5", "sprp6", "sprp7",
1255         "sbar",  "stba",  "stbq",  "smcm",  "stc1",  NULL,    NULL,    "ssdp",
1256         "rpd",   NULL,    NULL,    NULL,    NULL,    "fdv",   NULL,    "dfdv",
1257         NULL,    NULL,    NULL,    "fno",   NULL,    "fsb",   NULL,    "dfsb",
1258         "tze",   "tnz",   "tnc",   "trc",   "tmi",   "tpl",   NULL,    "ttf",
1259         "rtcd",  NULL,    NULL,    "rcu",   "teo",   "teu",   "dis",   "tov",
1260         "eax0",  "eax1",  "eax2",  "eax3",  "eax4",  "eax5",  "eax6",  "eax7",
1261         "ret",   NULL,    NULL,    "rccl",  "ldi",   "eaa",   "eaq",   "ldt",
1262         "ersx0", "ersx1", "ersx2", "ersx3", "ersx4", "ersx5", "ersx6", "ersx7",
1263         "spri4", "spbp5", "spri6", "spbp7", "stacq", "ersa",  "ersq",  "scu",
1264         "erx0",  "erx1",  "erx2",  "erx3",  "erx4",  "erx5",  "erx6",  "erx7",
1265         "tsp4",  "tsp5",  "tsp6",  "tsp7",  "lcpr",  "era",   "erq",   "eraq",
1266         "tsx0",  "tsx1",  "tsx2",  "tsx3",  "tsx4",  "tsx5",  "tsx6",  "tsx7",
1267         "tra",   NULL,    NULL,    "call6", NULL,    "tss",   "xec",   "xed",
1268         "lxl0",  "lxl1",  "lxl2",  "lxl3",  "lxl4",  "lxl5",  "lxl6",  "lxl7",
1269         NULL,    "ars",   "qrs",   "lrs",   NULL,    "als",   "qls",   "lls",
1270         "stx0",  "stx1",  "stx2",  "stx3",  "stx4",  "stx5",  "stx6",  "stx7",
1271         "stc2",  "stca",  "stcq",  "sreg",  "sti",   "sta",   "stq",   "staq",
1272         "lprp0", "lprp1", "lprp2", "lprp3", "lprp4", "lprp5", "lprp6", "lprp7",
1273         NULL,    "arl",   "qrl",   "lrl",   "gtb",   "alr",   "qlr",   "llr"
1274 };
1275 #endif
1276 
1277 #ifndef QUIET_UNUSED
1278 char *op1text[512] = {
1279         // index by upper 9 bits of those opcodes with bit 27 == 1
1280         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1281         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1282         "mve",   NULL,    NULL,    NULL,    "mvne",  NULL,    NULL,    NULL,
1283         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1284         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1285         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1286         "csl",   "csr",   NULL,    NULL,    "sztl",  "sztr",  "cmpb",  NULL,
1287         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1288         "mlr",   "mrl",   NULL,    NULL,    NULL,    NULL,    "cmpc",  NULL,
1289         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1290         "scd",   "scdr",  NULL,    NULL,    "scm",   "scmr",  NULL,    NULL,
1291         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1292         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1293         NULL,    NULL,    NULL,    NULL,    "sptr",  NULL,    NULL,    NULL,
1294         "mvt",   NULL,    NULL,    NULL,    "tct",   "tctr",  NULL,    NULL,
1295         NULL,    NULL,    NULL,    "lptr",  NULL,    NULL,    NULL,    NULL,
1296         NULL,    NULL,    "ad2d",  "sb2d",  NULL,    NULL,    "mp2d",  "dv2d",
1297         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1298         NULL,    NULL,    "ad3d",  "sb3d",  NULL,    NULL,    "mp3d",  "dv3d",
1299         NULL,    NULL,    "lsdr",  NULL,    NULL,    NULL,    NULL,    NULL,
1300         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1301         "spbp0", "spri1", "spbp2", "spri3", "ssdr",  NULL,    NULL,    "lptp",
1302         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1303         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1304         "mvn",   "btd",   NULL,    "cmpn",  NULL,    "dtb",   NULL,    NULL,
1305         "easp1", "eawp1", "easp3", "eawp3", NULL,    NULL,    NULL,    NULL,
1306         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1307         "easp5", "eawp5", "easp7", "eawp7", NULL,    NULL,    NULL,    NULL,
1308         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1309         "epbp0", "epp1",  "epbp2", "epp3",  NULL,    NULL,    NULL,    NULL,
1310         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1311         "epbp4", "epp5",  "epbp6", "epp7",  NULL,    NULL,    NULL,    NULL,
1312         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1313         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1314         "emcall",    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1315         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1316         NULL,    NULL,    NULL,    "sareg", NULL,    NULL,    NULL,    "spl",
1317         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1318         NULL,    NULL,    NULL,    "lareg", NULL,    NULL,    NULL,    "lpl",
1319         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1320         "a9bd",  "a6bd",  "a4bd",  "abd",   NULL,    NULL,    NULL,    "awd",
1321         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1322         "s9bd",  "s6bd",  "s4bd",  "sbd",   NULL,    NULL,    NULL,    "swd",
1323         NULL,    NULL,    "camp",  NULL,    NULL,    NULL,    NULL,    NULL,
1324         "ara0",  "ara1",  "ara2",  "ara3",  "ara4",  "ara5",  "ara6",  "ara7",
1325         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    "sptp",
1326         "aar0",  "aar1",  "aar2",  "aar3",  "aar4",  "aar5",  "aar6",  "aar7",
1327         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1328         "trtn",  "trtf",  NULL,    NULL,    "tmoz",  "tpnz",  "ttn",   NULL,
1329         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1330         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1331         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1332         "arn0",  "arn1",  "arn2",  "arn3",  "arn4",  "arn5",  "arn6",  "arn7",
1333         "spbp4", "spri5", "spbp6", "spri7", NULL,    NULL,    NULL,    NULL,
1334         "nar0",  "nar1",  "nar2",  "nar3",  "nar4",  "nar5",  "nar6",  "nar7",
1335         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1336         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1337         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1338         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1339         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1340         "sar0",  "sar1",  "sar2",  "sar3",  "sar4",  "sar5",  "sar6",  "sar7",
1341         NULL,    NULL,    NULL,    NULL,    "sra",   NULL,    NULL,    NULL,
1342         "lar0",  "lar1",  "lar2",  "lar3",  "lar4",  "lar5",  "lar6",  "lar7",
1343         NULL,    NULL,    NULL,    NULL,    "lra",   NULL,    NULL,    NULL
1344 };
1345 #endif
1346 
1347 #ifndef QUIET_UNUSED
1348 char *opcodes2text[1024] = {
1349         // index by all 10 bits of all opcodes
1350         NULL,    NULL,    "mme",   NULL,    "drl",   NULL,    NULL,    NULL,
1351         "mme2",  NULL,    "mme3",  NULL,    NULL,    NULL,    "mme4",  NULL,
1352         NULL,    NULL,    "nop",   NULL,    "puls1", NULL,    "puls2", NULL,
1353         NULL,    NULL,    "cioc",  NULL,    NULL,    NULL,    NULL,    NULL,
1354         "adlx0", "mve",   "adlx1", NULL,    "adlx2", NULL,    "adlx3", NULL,
1355         "adlx4", "mvne",  "adlx5", NULL,    "adlx6", NULL,    "adlx7", NULL,
1356         NULL,    NULL,    NULL,    NULL,    "ldqc",  NULL,    "adl",   NULL,
1357         "ldac",  NULL,    "adla",  NULL,    "adlq",  NULL,    "adlaq", NULL,
1358         "asx0",  NULL,    "asx1",  NULL,    "asx2",  NULL,    "asx3",  NULL,
1359         "asx4",  NULL,    "asx5",  NULL,    "asx6",  NULL,    "asx7",  NULL,
1360         "adwp0", NULL,    "adwp1", NULL,    "adwp2", NULL,    "adwp3", NULL,
1361         "aos",   NULL,    "asa",   NULL,    "asq",   NULL,    "sscr",  NULL,
1362         "adx0",  "csl",   "adx1",  "csr",   "adx2",  NULL,    "adx3",  NULL,
1363         "adx4",  "sztl",  "adx5",  "sztr",  "adx6",  "cmpb",  "adx7",  NULL,
1364         NULL,    NULL,    "awca",  NULL,    "awcq",  NULL,    "lreg",  NULL,
1365         NULL,    NULL,    "ada",   NULL,    "adq",   NULL,    "adaq",  NULL,
1366         "cmpx0", "mlr",   "cmpx1", "mrl",   "cmpx2", NULL,    "cmpx3", NULL,
1367         "cmpx4", NULL,    "cmpx5", NULL,    "cmpx6", "cmpc",  "cmpx7", NULL,
1368         NULL,    NULL,    "cwl",   NULL,    NULL,    NULL,    NULL,    NULL,
1369         NULL,    NULL,    "cmpa",  NULL,    "cmpq",  NULL,    "cmpaq", NULL,
1370         "sblx0", "scd",   "sblx1", "scdr",  "sblx2", NULL,    "sblx3", NULL,
1371         "sblx4", "scm",   "sblx5", "scmr",  "sblx6", NULL,    "sblx7", NULL,
1372         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,
1373         NULL,    NULL,    "sbla",  NULL,    "sblq",  NULL,    "sblaq", NULL,
1374         "ssx0",  NULL,    "ssx1",  NULL,    "ssx2",  NULL,    "ssx3",  NULL,
1375         "ssx4",  NULL,    "ssx5",  NULL,    "ssx6",  NULL,    "ssx7",  NULL,
1376         "adwp4", NULL,    "adwp5", NULL,    "adwp6", NULL,    "adwp7", NULL,
1377         "sdbr",  "sptr",  "ssa",   NULL,    "ssq",   NULL,    NULL,    NULL,
1378         "sbx0",  "mvt",   "sbx1",  NULL,    "sbx2",  NULL,    "sbx3",  NULL,
1379         "sbx4",  "tct",   "sbx5",  "tctr",  "sbx6",  NULL,    "sbx7",  NULL,
1380         NULL,    NULL,    "swca",  NULL,    "swcq",  NULL,    "lpri",  "lptr",
1381         NULL,    NULL,    "sba",   NULL,    "sbq",   NULL,    "sbaq",  NULL,
1382         "cnax0", NULL,    "cnax1", NULL,    "cnax2", "ad2d",  "cnax3", "sb2d",
1383         "cnax4", NULL,    "cnax5", NULL,    "cnax6", "mp2d",  "cnax7", "dv2d",
1384         NULL,    NULL,    "cmk",   NULL,    "absa",  NULL,    "epaq",  NULL,
1385         "sznc",  NULL,    "cnaa",  NULL,    "cnaq",  NULL,    "cnaaq", NULL,
1386         "ldx0",  NULL,    "ldx1",  NULL,    "ldx2",  "ad3d",  "ldx3",  "sb3d",
1387         "ldx4",  NULL,    "ldx5",  NULL,    "ldx6",  "mp3d",  "ldx7",  "dv3d",
1388         "lbar",  NULL,    "rsw",   NULL,    "ldbr",  "lsdr",  "rmcm",  NULL,
1389         "szn",   NULL,    "lda",   NULL,    "ldq",   NULL,    "ldaq",  NULL,
1390         "orsx0", NULL,    "orsx1", NULL,    "orsx2", NULL,    "orsx3", NULL,
1391         "orsx4", NULL,    "orsx5", NULL,    "orsx6", NULL,    "orsx7", NULL,
1392         "spri0", "spbp0", "spbp1", "spri1", "spri2", "spbp2", "spbp3", "spri3",
1393         "spri",  "ssdr",  "orsa",  NULL,    "orsq",  NULL,    "lsdp",  "lptp",
1394         "orx0",  NULL,    "orx1",  NULL,    "orx2",  NULL,    "orx3",  NULL,
1395         "orx4",  NULL,    "orx5",  NULL,    "orx6",  NULL,    "orx7",  NULL,
1396         "tsp0",  NULL,    "tsp1",  NULL,    "tsp2",  NULL,    "tsp3",  NULL,
1397         NULL,    NULL,    "ora",   NULL,    "orq",   NULL,    "oraq",  NULL,
1398         "canx0", "mvn",   "canx1", "btd",   "canx2", NULL,    "canx3", "cmpn",
1399         "canx4", NULL,    "canx5", "dtb",   "canx6", NULL,    "canx7", NULL,
1400         "eawp0", "easp1", "easp0", "eawp1", "eawp2", "easp3", "easp2", "eawp3",
1401         NULL,    NULL,    "cana",  NULL,    "canq",  NULL,    "canaq", NULL,
1402         "lcx0",  NULL,    "lcx1",  NULL,    "lcx2",  NULL,    "lcx3",  NULL,
1403         "lcx4",  NULL,    "lcx5",  NULL,    "lcx6",  NULL,    "lcx7",  NULL,
1404         "eawp4", "easp5", "easp4", "eawp5", "eawp6", "easp7", "easp6", "eawp7",
1405         NULL,    NULL,    "lca",   NULL,    "lcq",   NULL,    "lcaq",  NULL,
1406         "ansx0", NULL,    "ansx1", NULL,    "ansx2", NULL,    "ansx3", NULL,
1407         "ansx4", NULL,    "ansx5", NULL,    "ansx6", NULL,    "ansx7", NULL,
1408         "epp0",  "epbp0", "epbp1", "epp1",  "epp2",  "epbp2", "epbp3", "epp3",
1409         "stac",  NULL,    "ansa",  NULL,    "ansq",  NULL,    "stcd",  NULL,
1410         "anx0",  NULL,    "anx1",  NULL,    "anx2",  NULL,    "anx3",  NULL,
1411         "anx4",  NULL,    "anx5",  NULL,    "anx6",  NULL,    "anx7",  NULL,
1412         "epp4",  "epbp4", "epbp5", "epp5",  "epp6",  "epbp6", "epbp7", "epp7",
1413         NULL,    NULL,    "ana",   NULL,    "anq",   NULL,    "anaq",  NULL,
1414         NULL,    NULL,    "mpf",   NULL,    "mpy",   NULL,    NULL,    NULL,
1415         NULL,    NULL,    "cmg",   NULL,    NULL,    NULL,    NULL,    NULL,
1416         NULL,    NULL,    "lde",   NULL,    NULL,    NULL,    "rscr",  NULL,
1417         NULL,    NULL,    "ade",   NULL,    NULL,    NULL,    NULL,    NULL,
1418         NULL,    "emcall","ufm",   NULL,    NULL,    NULL,    "dufm",  NULL,
1419         NULL,    NULL,    "fcmg",  NULL,    NULL,    NULL,    "dfcmg", NULL,
1420         "fszn",  NULL,    "fld",   NULL,    NULL,    NULL,    "dfld",  NULL,
1421         NULL,    NULL,    "ufa",   NULL,    NULL,    NULL,    "dufa",  NULL,
1422         "sxl0",  NULL,    "sxl1",  NULL,    "sxl2",  NULL,    "sxl3",  "sareg",
1423         "sxl4",  NULL,    "sxl5",  NULL,    "sxl6",  NULL,    "sxl7",  "spl",
1424         "stz",   NULL,    "smic",  NULL,    "scpr",  NULL,    NULL,    NULL,
1425         "stt",   NULL,    "fst",   NULL,    "ste",   NULL,    "dfst",  NULL,
1426         NULL,    NULL,    "fmp",   NULL,    NULL,    NULL,    "dfmp",  "lareg",
1427         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    "lpl",
1428         "fstr",  NULL,    "frd",   NULL,    "dfstr", NULL,    "dfrd",  NULL,
1429         NULL,    NULL,    "fad",   NULL,    NULL,    NULL,    "dfad",  NULL,
1430         "rpl",   "a9bd",  NULL,    "a6bd",  NULL,    "a4bd",  NULL,    "abd",
1431         NULL,    NULL,    "bcd",   NULL,    "div",   NULL,    "dvf",   "awd",
1432         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    "fneg",  NULL,
1433         NULL,    NULL,    "fcmp",  NULL,    NULL,    NULL,    "dfcmp", NULL,
1434         "rpt",   "s9bd",  NULL,    "s6bd",  NULL,    "s4bd",  NULL,    "sbd",
1435         NULL,    NULL,    "fdi",   NULL,    NULL,    NULL,    "dfdi",  "swd",
1436         NULL,    NULL,    "neg",   NULL,    "cams",  "camp",  "negl",  NULL,
1437         NULL,    NULL,    "ufs",   NULL,    NULL,    NULL,    "dufs",  NULL,
1438         "sprp0", "ara0",  "sprp1", "ara1",  "sprp2", "ara2",  "sprp3", "ara3",
1439         "sprp4", "ara4",  "sprp5", "ara5",  "sprp6", "ara6",  "sprp7", "ara7",
1440         "sbar",  NULL,    "stba",  NULL,    "stbq",  NULL,    "smcm",  NULL,
1441         "stc1",  NULL,    NULL,    NULL,    NULL,    NULL,    "ssdp",  "sptp",
1442         "rpd",   "aar0",  NULL,    "aar1",  NULL,    "aar2",  NULL,    "aar3",
1443         NULL,    "aar4",  "fdv",   "aar5",  NULL,    "aar6",  "dfdv",  "aar7",
1444         NULL,    NULL,    NULL,    NULL,    NULL,    NULL,    "fno",   NULL,
1445         NULL,    NULL,    "fsb",   NULL,    NULL,    NULL,    "dfsb",  NULL,
1446         "tze",   "trtn",  "tnz",   "trtf",  "tnc",   NULL,    "trc",   NULL,
1447         "tmi",   "tmoz",  "tpl",   "tpnz",  NULL,    "ttn",   "ttf",   NULL,
1448         "rtcd",  NULL,    NULL,    NULL,    NULL,    NULL,    "rcu",   NULL,
1449         "teo",   NULL,    "teu",   NULL,    "dis",   NULL,    "tov",   NULL,
1450         "eax0",  NULL,    "eax1",  NULL,    "eax2",  NULL,    "eax3",  NULL,
1451         "eax4",  NULL,    "eax5",  NULL,    "eax6",  NULL,    "eax7",  NULL,
1452         "ret",   NULL,    NULL,    NULL,    NULL,    NULL,    "rccl",  NULL,
1453         "ldi",   NULL,    "eaa",   NULL,    "eaq",   NULL,    "ldt",   NULL,
1454         "ersx0", "arn0",  "ersx1", "arn1",  "ersx2", "arn2",  "ersx3", "arn3",
1455         "ersx4", "arn4",  "ersx5", "arn5",  "ersx6", "arn6",  "ersx7", "arn7",
1456         "spri4", "spbp4", "spbp5", "spri5", "spri6", "spbp6", "spbp7", "spri7",
1457         "stacq", NULL,    "ersa",  NULL,    "ersq",  NULL,    "scu",   NULL,
1458         "erx0",  "nar0",  "erx1",  "nar1",  "erx2",  "nar2",  "erx3",  "nar3",
1459         "erx4",  "nar4",  "erx5",  "nar5",  "erx6",  "nar6",  "erx7",  "nar7",
1460         "tsp4",  NULL,    "tsp5",  NULL,    "tsp6",  NULL,    "tsp7",  NULL,
1461         "lcpr",  NULL,    "era",   NULL,    "erq",   NULL,    "eraq",  NULL,
1462         "tsx0",  NULL,    "tsx1",  NULL,    "tsx2",  NULL,    "tsx3",  NULL,
1463         "tsx4",  NULL,    "tsx5",  NULL,    "tsx6",  NULL,    "tsx7",  NULL,
1464         "tra",   NULL,    NULL,    NULL,    NULL,    NULL,    "call6", NULL,
1465         NULL,    NULL,    "tss",   NULL,    "xec",   NULL,    "xed",   NULL,
1466         "lxl0",  NULL,    "lxl1",  NULL,    "lxl2",  NULL,    "lxl3",  NULL,
1467         "lxl4",  NULL,    "lxl5",  NULL,    "lxl6",  NULL,    "lxl7",  NULL,
1468         NULL,    NULL,    "ars",   NULL,    "qrs",   NULL,    "lrs",   NULL,
1469         NULL,    NULL,    "als",   NULL,    "qls",   NULL,    "lls",   NULL,
1470         "stx0",  "sar0",  "stx1",  "sar1",  "stx2",  "sar2",  "stx3",  "sar3",
1471         "stx4",  "sar4",  "stx5",  "sar5",  "stx6",  "sar6",  "stx7",  "sar7",
1472         "stc2",  NULL,    "stca",  NULL,    "stcq",  NULL,    "sreg",  NULL,
1473         "sti",   "sra",   "sta",   NULL,    "stq",   NULL,    "staq",  NULL,
1474         "lprp0", "lar0",  "lprp1", "lar1",  "lprp2", "lar2",  "lprp3", "lar3",
1475         "lprp4", "lar4",  "lprp5", "lar5",  "lprp6", "lar6",  "lprp7", "lar7",
1476         NULL,    NULL,    "arl",   NULL,    "qrl",   NULL,    "lrl",   NULL,
1477         "gtb",   "lra",   "alr",   NULL,    "qlr",   NULL,    "llr",   NULL
1478 };
1479 #endif
1480 
1481 #ifdef PANEL
1482 word8 insGrp [02000] =
1483   {
1484 // nonEIS
1485        GRP_UNKN,  GRP_MISC,  GRP_MISC,  GRP_UNKN,  GRP_MISC,  GRP_PSC,   GRP_UNKN,  GRP_MISC,  // 000-007
1486        GRP_UNKN,  GRP_MISC,  GRP_MISC,  GRP_MISC,  GRP_UNKN,  GRP_PCS,   GRP_UNKN,  GRP_UNKN,  // 010-017
1487        GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   // 020-027
1488        GRP_UNKN,  GRP_UNKN,  GRP_FXDML, GRP_FXA,   GRP_FXDML, GRP_FXA,   GRP_FXA,   GRP_FXA,   // 030-037
1489        GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   // 040-047
1490        GRP_PRAA,  GRP_PRAA,  GRP_PRAA,  GRP_PRAA,  GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_PSC,   // 050-057
1491        GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   GRP_FXA,   // 060-067
1492        GRP_UNKN,  GRP_FXA,   GRP_FXA,   GRP_FXDML, GRP_UNKN,  GRP_FXA,   GRP_FXA,   GRP_FXA,   // 070-077
1493        GRP_FXC,   GRP_FXC,   GRP_FXC,   GRP_FXC,   GRP_FXC,   GRP_FXC,   GRP_FXC,   GRP_FXC,   // 100-107
1494        GRP_UNKN,  GRP_FXC,   GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_FXC,   GRP_FXC,   GRP_FXC,   // 110-117
1495        GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   // 120-127
1496        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_FXS,   GRP_FXS,   GRP_FXS,   // 130-137
1497        GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   // 140-147
1498        GRP_PRAA,  GRP_PRAA,  GRP_PRAA,  GRP_PRAA,  GRP_PRS,   GRP_FXS,   GRP_FXS,   GRP_UNKN,  // 150-157
1499        GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   GRP_FXS,   // 160-167
1500        GRP_UNKN,  GRP_FXS,   GRP_FXS,   GRP_PRDML, GRP_UNKN,  GRP_FXS,   GRP_FXS,   GRP_FXS,   // 170-177
1501        GRP_BCN,   GRP_BCN,   GRP_BCN,   GRP_BCN,   GRP_BCN,   GRP_BCN,   GRP_BCN,   GRP_BCN,   // 200-207
1502        GRP_UNKN,  GRP_FXC,   GRP_PM,    GRP_PRM,   GRP_FXI,   GRP_BCN,   GRP_BCN,   GRP_BCN,   // 210-217
1503        GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, // 220-227
1504        GRP_MISC,  GRP_PCS,   GRP_PRL,   GRP_PCS,   GRP_FXI,   GRP_FXDML, GRP_FXDML, GRP_FXDML, // 230-237
1505        GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    // 240-247
1506        GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_BO,    GRP_BO,    GRP_PRL,   // 250-257
1507        GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    GRP_BO,    // 260-267
1508        GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_UNKN,  GRP_BO,    GRP_BO,    GRP_BO,    // 270-277
1509        GRP_BCA,   GRP_BCA,   GRP_BCA,   GRP_BCA,   GRP_BCA,   GRP_BCA,   GRP_BCA,   GRP_BCA,   // 300-307
1510        GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_UNKN,  GRP_BCA,   GRP_BCA,   GRP_BCA,   // 310-317
1511        GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, // 320-327
1512        GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_UNKN,  GRP_FXDML, GRP_FXDML, GRP_FXDML, // 330-337
1513        GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    // 340-347
1514        GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_FXDMS, GRP_BA,    GRP_BA,    GRP_FXDMS, // 350-357
1515        GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    GRP_BA,    // 360-367
1516        GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_UNKN,  GRP_BA,    GRP_BA,    GRP_BA,    // 370-377
1517        GRP_UNKN,  GRP_FXM,   GRP_FXM,   GRP_UNKN,  GRP_UNKN,  GRP_FXC,   GRP_UNKN,  GRP_UNKN,  // 400-407
1518        GRP_UNKN,  GRP_FLI,   GRP_UNKN,  GRP_PCS,   GRP_UNKN,  GRP_FLI,   GRP_UNKN,  GRP_UNKN,  // 410-417
1519        GRP_UNKN,  GRP_FLM,   GRP_UNKN,  GRP_FLM,   GRP_UNKN,  GRP_FLC,   GRP_UNKN,  GRP_FLC,   // 420-427
1520        GRP_FLI,   GRP_FLDML, GRP_UNKN,  GRP_FLDML, GRP_UNKN,  GRP_FLA,   GRP_UNKN,  GRP_FLA,   // 430-437
1521        GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, // 440-447
1522        GRP_FXDMS, GRP_PSC,   GRP_PRS,   GRP_UNKN,  GRP_FXDMS, GRP_FLDMS, GRP_UNKN,  GRP_FLDMS, // 450-457
1523        GRP_UNKN,  GRP_FLM,   GRP_UNKN,  GRP_FLM,   GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 460-467
1524        GRP_FLDMS, GRP_FLR,   GRP_FLDMS, GRP_FLR,   GRP_UNKN,  GRP_FLA,   GRP_UNKN,  GRP_FLA,   // 470-477
1525        GRP_MISC,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_MISC,  GRP_UNKN,  GRP_FXD,   // 500-507
1526        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_FLN,   GRP_UNKN,  GRP_FLC,   GRP_UNKN,  GRP_FLC,   // 510-517
1527        GRP_MISC,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_FLD,   GRP_UNKN,  GRP_FLD,   // 520-527
1528        GRP_UNKN,  GRP_FXN,   GRP_PCAM,  GRP_FXN,   GRP_UNKN,  GRP_FLS,   GRP_UNKN,  GRP_FLS,   // 530-537
1529        GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, // 540-547
1530        GRP_MISC,  GRP_FXDMS, GRP_FXDMS, GRP_PSC,   GRP_FXDMS, GRP_UNKN,  GRP_FLI,   GRP_PRS,   // 550-557
1531        GRP_MISC,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_FLD,   GRP_UNKN,  GRP_FLD,   // 560-567
1532        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_FLNOR, GRP_UNKN,  GRP_FLS,   GRP_UNKN,  GRP_FLS,   // 570-577
1533        GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   // 600-607
1534        GRP_TRA,   GRP_UNKN,  GRP_UNKN,  GRP_PRL,   GRP_TRA,   GRP_TRA,   GRP_PM,    GRP_TRA,   // 610-617
1535        GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, // 620-627
1536        GRP_TRA,   GRP_UNKN,  GRP_UNKN,  GRP_MISC,  GRP_UNKN,  GRP_FXDML, GRP_FXDML, GRP_PRL,   // 630-637
1537        GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    // 640-647
1538        GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_PRDMS, GRP_FXDMS, GRP_BE,    GRP_BE,    GRP_PRS,   // 650-657
1539        GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    GRP_BE,    // 660-667
1540        GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_PRL,   GRP_BE,    GRP_BE,    GRP_BE,    // 670-677
1541        GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   GRP_TRA,   // 700-707
1542        GRP_TRA,   GRP_UNKN,  GRP_UNKN,  GRP_TRA,   GRP_UNKN,  GRP_TRA,   GRP_MISC,  GRP_MISC,  // 710-717
1543        GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, GRP_FXDML, // 720-727
1544        GRP_UNKN,  GRP_FXDMR, GRP_FXDMR, GRP_FXDMR, GRP_UNKN,  GRP_FXDMR, GRP_FXDMR, GRP_FXDMR, // 730-737
1545        GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, // 740-747
1546        GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, GRP_FXDMS, // 750-757
1547        GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, // 760-767
1548        GRP_UNKN,  GRP_FXDMR, GRP_FXDMR, GRP_FXDMR, GRP_MISC,  GRP_FXDMR, GRP_FXDMR, GRP_FXDMR, // 770-777
1549 // EIS
1550        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 000-007
1551        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 010-017
1552        GRP_EANM,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_ENM,   GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 020-027
1553        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 030-037
1554        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 040-047
1555        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 050-057
1556        GRP_EBCN,  GRP_EBCN,  GRP_UNKN,  GRP_UNKN,  GRP_EBSI,  GRP_EBSI,  GRP_EBCR,  GRP_UNKN,  // 060-067
1557        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 070-077
1558        GRP_EANM,  GRP_EANM,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_EANC,  GRP_UNKN,  // 100-107
1559        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 110-117
1560        GRP_EANC,  GRP_EANC,  GRP_UNKN,  GRP_UNKN,  GRP_EANC,  GRP_EANC,  GRP_UNKN,  GRP_UNKN,  // 120-127
1561        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 130-137
1562        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 140-147
1563        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_PRS,   GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 150-157
1564        GRP_EANM,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_EANC,  GRP_EANC,  GRP_UNKN,  GRP_UNKN,  // 160-167
1565        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_PRL,   GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 170-177
1566        GRP_UNKN,  GRP_UNKN,  GRP_EDA,   GRP_EDS,   GRP_UNKN,  GRP_UNKN,  GRP_EDM,   GRP_EDD,   // 200-207
1567        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 210-217
1568        GRP_UNKN,  GRP_UNKN,  GRP_EDA,   GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_EDM,   GRP_EDD,   // 220-227
1569        GRP_UNKN,  GRP_UNKN,  GRP_PRL,   GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 230-237
1570        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 240-247
1571        GRP_PRDMS, GRP_UNKN,  GRP_PRDMS, GRP_UNKN,  GRP_PRS,   GRP_UNKN,  GRP_UNKN,  GRP_PRL,   // 250-257
1572        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 260-267
1573        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 270-277
1574        GRP_ENM,   GRP_EDC,   GRP_UNKN,  GRP_ENC,   GRP_UNKN,  GRP_EDC,   GRP_UNKN,  GRP_UNKN,  // 300-307
1575        GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 310-317
1576        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 320-327
1577        GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 330-337
1578        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 340-347
1579        GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 350-357
1580        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 360-367
1581        GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_PRDML, GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 370-377
1582        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 400-407
1583        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 410-417
1584        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 420-427
1585        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 430-437
1586        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_EARS,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_EARS,  // 440-447
1587        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 450-457
1588        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_EARL,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_EARL,  // 460-467
1589        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 470-477
1590        GRP_EARSA, GRP_EARSA, GRP_EARSA, GRP_EARSA, GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_EARSA, // 500-507
1591        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 510-517
1592        GRP_EARSA, GRP_EARSA, GRP_EARSA, GRP_EARSA, GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_EARSA, // 520-527
1593        GRP_UNKN,  GRP_UNKN,  GRP_PCAM,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 530-537
1594        GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  // 540-547
1595        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_PRS,   // 550-557
1596        GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  // 560-567
1597        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 570-577
1598        GRP_TRA,   GRP_TRA,   GRP_UNKN,  GRP_UNKN,  GRP_TRA,   GRP_TRA,   GRP_UNKN,  GRP_UNKN,  // 600-607
1599        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 610-617
1600        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 620-627
1601        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 630-637
1602        GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  // 640-647
1603        GRP_PRDMS, GRP_UNKN,  GRP_PRDMS, GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 650-657
1604        GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  // 660-667
1605        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 670-677
1606        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 700-707
1607        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 710-717
1608        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 720-727
1609        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 730-737
1610        GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  GRP_EARS,  // 740-747
1611        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_MISC,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 750-757
1612        GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  GRP_EARL,  // 760-767
1613        GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  GRP_PRL,   GRP_UNKN,  GRP_UNKN,  GRP_UNKN,  // 770-777
1614   };
1615 #endif
1616