* m10300-opc.c: DSP instrutions which only write to one general
[external/binutils.git] / opcodes / m10300-opc.c
1 /* Assemble Matsushita MN10300 instructions.
2    Copyright (C) 1996, 1997 Free Software Foundation, Inc.
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
17
18 /* This file is formatted at > 80 columns.  Attempting to read it on a
19    screeen with less than 80 columns will be difficult.  */
20 #include "ansidecl.h"
21 #include "opcode/mn10300.h"
22
23 \f
24 const struct mn10300_operand mn10300_operands[] = {
25 #define UNUSED  0
26   {0, 0, 0}, 
27
28 /* dn register in the first register operand position.  */
29 #define DN0      (UNUSED+1)
30   {2, 0, MN10300_OPERAND_DREG},
31
32 /* dn register in the second register operand position.  */
33 #define DN1      (DN0+1)
34   {2, 2, MN10300_OPERAND_DREG},
35
36 /* dn register in the third register operand position.  */
37 #define DN2      (DN1+1)
38   {2, 4, MN10300_OPERAND_DREG},
39
40 /* dm register in the first register operand position.  */
41 #define DM0      (DN2+1)
42   {2, 0, MN10300_OPERAND_DREG},
43
44 /* dm register in the second register operand position.  */
45 #define DM1      (DM0+1)
46   {2, 2, MN10300_OPERAND_DREG},
47
48 /* dm register in the third register operand position.  */
49 #define DM2      (DM1+1)
50   {2, 4, MN10300_OPERAND_DREG},
51
52 /* an register in the first register operand position.  */
53 #define AN0      (DM2+1)
54   {2, 0, MN10300_OPERAND_AREG},
55
56 /* an register in the second register operand position.  */
57 #define AN1      (AN0+1)
58   {2, 2, MN10300_OPERAND_AREG},
59
60 /* an register in the third register operand position.  */
61 #define AN2      (AN1+1)
62   {2, 4, MN10300_OPERAND_AREG},
63
64 /* am register in the first register operand position.  */
65 #define AM0      (AN2+1)
66   {2, 0, MN10300_OPERAND_AREG},
67
68 /* am register in the second register operand position.  */
69 #define AM1      (AM0+1)
70   {2, 2, MN10300_OPERAND_AREG},
71
72 /* am register in the third register operand position.  */
73 #define AM2      (AM1+1)
74   {2, 4, MN10300_OPERAND_AREG},
75
76 /* 8 bit unsigned immediate which may promote to a 16bit
77    unsigned immediate.  */
78 #define IMM8    (AM2+1)
79   {8, 0, MN10300_OPERAND_PROMOTE},
80
81 /* 16 bit unsigned immediate which may promote to a 32bit
82    unsigned immediate.  */
83 #define IMM16    (IMM8+1)
84   {16, 0, MN10300_OPERAND_PROMOTE},
85
86 /* 16 bit pc-relative immediate which may promote to a 16bit
87    pc-relative immediate.  */
88 #define IMM16_PCREL    (IMM16+1)
89   {16, 0, MN10300_OPERAND_PCREL | MN10300_OPERAND_RELAX | MN10300_OPERAND_SIGNED},
90
91 /* 16bit unsigned dispacement in a memory operation which
92    may promote to a 32bit displacement.  */
93 #define IMM16_MEM    (IMM16_PCREL+1)
94   {16, 0, MN10300_OPERAND_PROMOTE | MN10300_OPERAND_MEMADDR},
95
96 /* 32bit immediate, high 16 bits in the main instruction
97    word, 16bits in the extension word. 
98
99    The "bits" field indicates how many bits are in the
100    main instruction word for MN10300_OPERAND_SPLIT!  */
101 #define IMM32    (IMM16_MEM+1)
102   {16, 0, MN10300_OPERAND_SPLIT},
103
104 /* 32bit pc-relative offset.  */
105 #define IMM32_PCREL    (IMM32+1)
106   {16, 0, MN10300_OPERAND_SPLIT | MN10300_OPERAND_PCREL},
107
108 /* 32bit memory offset.  */
109 #define IMM32_MEM    (IMM32_PCREL+1)
110   {16, 0, MN10300_OPERAND_SPLIT | MN10300_OPERAND_MEMADDR},
111
112 /* 32bit immediate, high 16 bits in the main instruction
113    word, 16bits in the extension word, low 16bits are left
114    shifted 8 places. 
115
116    The "bits" field indicates how many bits are in the
117    main instruction word for MN10300_OPERAND_SPLIT!  */
118 #define IMM32_LOWSHIFT8    (IMM32_MEM+1)
119   {16, 8, MN10300_OPERAND_SPLIT | MN10300_OPERAND_MEMADDR},
120
121 /* 32bit immediate, high 24 bits in the main instruction
122    word, 8 in the extension word.
123
124    The "bits" field indicates how many bits are in the
125    main instruction word for MN10300_OPERAND_SPLIT!  */
126 #define IMM32_HIGH24    (IMM32_LOWSHIFT8+1)
127   {24, 0, MN10300_OPERAND_SPLIT | MN10300_OPERAND_PCREL},
128
129 /* 32bit immediate, high 24 bits in the main instruction
130    word, 8 in the extension word, low 8 bits are left
131    shifted 16 places. 
132
133    The "bits" field indicates how many bits are in the
134    main instruction word for MN10300_OPERAND_SPLIT!  */
135 #define IMM32_HIGH24_LOWSHIFT16    (IMM32_HIGH24+1)
136   {24, 16, MN10300_OPERAND_SPLIT | MN10300_OPERAND_PCREL},
137
138 /* Stack pointer.  */
139 #define SP    (IMM32_HIGH24_LOWSHIFT16+1)
140   {8, 0, MN10300_OPERAND_SP},
141
142 /* Processor status word.  */
143 #define PSW    (SP+1)
144   {0, 0, MN10300_OPERAND_PSW},
145
146 /* MDR register.  */
147 #define MDR    (PSW+1)
148   {0, 0, MN10300_OPERAND_MDR},
149
150 /* Index register.  */
151 #define DI (MDR+1)
152   {2, 2, MN10300_OPERAND_DREG},
153
154 /* 8 bit signed displacement, may promote to 16bit signed dispacement.  */
155 #define SD8    (DI+1)
156   {8, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
157
158 /* 16 bit signed displacement, may promote to 32bit dispacement.  */
159 #define SD16    (SD8+1)
160   {16, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
161
162 /* 8 bit signed displacement that can not promote.  */
163 #define SD8N    (SD16+1)
164   {8, 0, MN10300_OPERAND_SIGNED},
165
166 /* 8 bit pc-relative displacement.  */
167 #define SD8N_PCREL    (SD8N+1)
168   {8, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PCREL | MN10300_OPERAND_RELAX},
169
170 /* 8 bit signed displacement shifted left 8 bits in the instruction.  */
171 #define SD8N_SHIFT8    (SD8N_PCREL+1)
172   {8, 8, MN10300_OPERAND_SIGNED},
173
174 /* 8 bit signed immediate which may promote to 16bit signed immediate.  */
175 #define SIMM8    (SD8N_SHIFT8+1)
176   {8, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
177
178 /* 16 bit signed immediate which may promote to 32bit  immediate.  */
179 #define SIMM16    (SIMM8+1)
180   {16, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
181
182 /* Either an open paren or close paren.  */
183 #define PAREN   (SIMM16+1)
184   {0, 0, MN10300_OPERAND_PAREN}, 
185
186 /* dn register that appears in the first and second register positions.  */
187 #define DN01     (PAREN+1)
188   {2, 0, MN10300_OPERAND_DREG | MN10300_OPERAND_REPEATED},
189
190 /* an register that appears in the first and second register positions.  */
191 #define AN01     (DN01+1)
192   {2, 0, MN10300_OPERAND_AREG | MN10300_OPERAND_REPEATED},
193
194 /* 16bit pc-relative displacement which may promote to 32bit pc-relative
195    displacement.  */
196 #define D16_SHIFT (AN01+1)
197   {16, 8, MN10300_OPERAND_PCREL | MN10300_OPERAND_RELAX | MN10300_OPERAND_SIGNED},
198
199 /* 8 bit immediate found in the extension word.  */
200 #define IMM8E    (D16_SHIFT+1)
201   {8, 0, MN10300_OPERAND_EXTENDED},
202
203 /* Register list found in the extension word shifted 8 bits left.  */
204 #define REGSE_SHIFT8    (IMM8E+1)
205   {8, 8, MN10300_OPERAND_EXTENDED | MN10300_OPERAND_REG_LIST},
206
207 /* Register list shifted 8 bits left.  */
208 #define REGS_SHIFT8 (REGSE_SHIFT8 + 1)
209   {8, 8, MN10300_OPERAND_REG_LIST},
210
211 /* Reigster list.  */
212 #define REGS    (REGS_SHIFT8+1)
213   {8, 0, MN10300_OPERAND_REG_LIST},
214
215 /* start-sanitize-am33 */
216 /* UStack pointer.  */
217 #define USP    (REGS+1)
218   {0, 0, MN10300_OPERAND_USP},
219
220 /* SStack pointer.  */
221 #define SSP    (USP+1)
222   {0, 0, MN10300_OPERAND_SSP},
223
224 /* MStack pointer.  */
225 #define MSP    (SSP+1)
226   {0, 0, MN10300_OPERAND_MSP},
227
228 /* PC .  */
229 #define PC    (MSP+1)
230   {0, 0, MN10300_OPERAND_PC},
231
232 /* 4 bit immediate for syscall.  */
233 #define IMM4    (PC+1)
234   {4, 0, 0},
235
236 /* Processor status word.  */
237 #define EPSW    (IMM4+1)
238   {0, 0, MN10300_OPERAND_EPSW},
239
240 /* rn register in the first register operand position.  */
241 #define RN0      (EPSW+1)
242   {4, 0, MN10300_OPERAND_RREG},
243
244 /* rn register in the fourth register operand position.  */
245 #define RN2      (RN0+1)
246   {4, 4, MN10300_OPERAND_RREG},
247
248 /* rm register in the first register operand position.  */
249 #define RM0      (RN2+1)
250   {4, 0, MN10300_OPERAND_RREG},
251
252 /* rm register in the second register operand position.  */
253 #define RM1      (RM0+1)
254   {4, 2, MN10300_OPERAND_RREG},
255
256 /* rm register in the third register operand position.  */
257 #define RM2      (RM1+1)
258   {4, 4, MN10300_OPERAND_RREG},
259
260 #define RN02      (RM2+1)
261   {4, 0, MN10300_OPERAND_RREG | MN10300_OPERAND_REPEATED},
262
263 #define XRN0      (RN02+1)
264   {4, 0, MN10300_OPERAND_XRREG},
265
266 #define XRM2      (XRN0+1)
267   {4, 4, MN10300_OPERAND_XRREG},
268
269 /* + for autoincrement */
270 #define PLUS    (XRM2+1)
271   {0, 0, MN10300_OPERAND_PLUS}, 
272
273 #define XRN02      (PLUS+1)
274   {4, 0, MN10300_OPERAND_XRREG | MN10300_OPERAND_REPEATED},
275
276 /* Ick */
277 #define RD0      (XRN02+1)
278   {4, -8, MN10300_OPERAND_RREG},
279
280 #define RD2      (RD0+1)
281   {4, -4, MN10300_OPERAND_RREG},
282
283 /* 8 unsigned dispacement in a memory operation which
284    may promote to a 32bit displacement.  */
285 #define IMM8_MEM    (RD2+1)
286   {8, 0, MN10300_OPERAND_PROMOTE | MN10300_OPERAND_MEMADDR},
287
288 /* Index register.  */
289 #define RI (IMM8_MEM+1)
290   {4, 4, MN10300_OPERAND_RREG},
291
292 /* 24 bit signed displacement, may promote to 32bit dispacement.  */
293 #define SD24    (RI+1)
294   {8, 0, MN10300_OPERAND_24BIT | MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
295
296 /* 24 bit unsigned immediate which may promote to a 32bit
297    unsigned immediate.  */
298 #define IMM24    (SD24+1)
299   {8, 0, MN10300_OPERAND_24BIT | MN10300_OPERAND_PROMOTE},
300
301 /* 24 bit signed immediate which may promote to a 32bit
302    signed immediate.  */
303 #define SIMM24    (IMM24+1)
304   {8, 0, MN10300_OPERAND_24BIT | MN10300_OPERAND_PROMOTE | MN10300_OPERAND_SIGNED},
305
306 /* 16bit unsigned dispacement in a memory operation which
307    may promote to a 32bit displacement.  */
308 #define IMM24_MEM    (SIMM24+1)
309   {8, 0, MN10300_OPERAND_24BIT | MN10300_OPERAND_PROMOTE | MN10300_OPERAND_MEMADDR},
310 /* 32bit immediate, high 24 bits in the main instruction
311    word, 8 in the extension word.
312
313    The "bits" field indicates how many bits are in the
314    main instruction word for MN10300_OPERAND_SPLIT!  */
315 #define IMM32_HIGH8    (IMM24_MEM+1)
316   {8, 0, MN10300_OPERAND_SPLIT},
317
318 /* Similarly, but a memory address.  */
319 #define IMM32_HIGH8_MEM  (IMM32_HIGH8+1)
320   {8, 0, MN10300_OPERAND_SPLIT | MN10300_OPERAND_MEMADDR},
321
322 /* rm register in the seventh register operand position.  */
323 #define RM6      (IMM32_HIGH8_MEM+1)
324   {4, 12, MN10300_OPERAND_RREG},
325
326 /* rm register in the fifth register operand position.  */
327 #define RN4      (RM6+1)
328   {4, 8, MN10300_OPERAND_RREG},
329
330 /* 4 bit immediate for dsp instructions.  */
331 #define IMM4_2    (RN4+1)
332   {4, 4, 0},
333
334 /* 4 bit immediate for dsp instructions.  */
335 #define SIMM4_2    (IMM4_2+1)
336   {4, 4, MN10300_OPERAND_SIGNED},
337
338 /* 4 bit immediate for dsp instructions.  */
339 #define SIMM4_6    (SIMM4_2+1)
340   {4, 12, MN10300_OPERAND_SIGNED},
341 /* end-sanitize-am33 */
342
343 } ; 
344
345 #define MEM(ADDR) PAREN, ADDR, PAREN 
346 #define MEMINC(ADDR) PAREN, ADDR, PLUS, PAREN 
347 #define MEMINC2(ADDR,INC) PAREN, ADDR, PLUS, INC, PAREN 
348 #define MEM2(ADDR1,ADDR2) PAREN, ADDR1, ADDR2, PAREN 
349 \f
350 /* The opcode table.
351
352    The format of the opcode table is:
353
354    NAME         OPCODE          MASK    MATCH_MASK, FORMAT, PROCESSOR   { OPERANDS }
355
356    NAME is the name of the instruction.
357    OPCODE is the instruction opcode.
358    MASK is the opcode mask; this is used to tell the disassembler
359      which bits in the actual opcode must match OPCODE.
360    OPERANDS is the list of operands.
361
362    The disassembler reads the table in order and prints the first
363    instruction which matches, so this table is sorted to put more
364    specific instructions before more general instructions.  It is also
365    sorted by major opcode.  */
366
367 const struct mn10300_opcode mn10300_opcodes[] = {
368 { "mov",        0x8000,      0xf000,      0,    FMT_S1, 0,      {SIMM8, DN01}},
369 { "mov",        0x80,        0xf0,        0x3,  FMT_S0, 0,      {DM1, DN0}},
370 { "mov",        0xf1e0,      0xfff0,      0,    FMT_D0, 0,      {DM1, AN0}},
371 { "mov",        0xf1d0,      0xfff0,      0,    FMT_D0, 0,      {AM1, DN0}},
372 { "mov",        0x9000,      0xf000,      0,    FMT_S1, 0,      {IMM8, AN01}},
373 { "mov",        0x90,        0xf0,        0x3,  FMT_S0, 0,      {AM1, AN0}},
374 { "mov",        0x3c,        0xfc,        0,    FMT_S0, 0,      {SP, AN0}},
375 { "mov",        0xf2f0,      0xfff3,      0,    FMT_D0, 0,      {AM1, SP}},
376 { "mov",        0xf2e4,      0xfffc,      0,    FMT_D0, 0,      {PSW, DN0}},
377 { "mov",        0xf2f3,      0xfff3,      0,    FMT_D0, 0,      {DM1, PSW}},
378 { "mov",        0xf2e0,      0xfffc,      0,    FMT_D0, 0,      {MDR, DN0}},
379 { "mov",        0xf2f2,      0xfff3,      0,    FMT_D0, 0,      {DM1, MDR}},
380 { "mov",        0x70,        0xf0,        0,    FMT_S0, 0,      {MEM(AM0), DN1}},
381 { "mov",        0x5800,      0xfcff,      0,    FMT_S1, 0,      {MEM(SP), DN0}},
382 { "mov",        0x300000,    0xfc0000,    0,    FMT_S2, 0,      {MEM(IMM16_MEM), DN0}},
383 { "mov",        0xf000,      0xfff0,      0,    FMT_D0, 0,      {MEM(AM0), AN1}},
384 { "mov",        0x5c00,      0xfcff,      0,    FMT_S1, 0,      {MEM(SP), AN0}},
385 { "mov",        0xfaa00000,  0xfffc0000,  0,    FMT_D2, 0,      {MEM(IMM16_MEM), AN0}},
386 { "mov",        0x60,        0xf0,        0,    FMT_S0, 0,      {DM1, MEM(AN0)}},
387 { "mov",        0x4200,      0xf3ff,      0,    FMT_S1, 0,      {DM1, MEM(SP)}},
388 { "mov",        0x010000,    0xf30000,    0,    FMT_S2, 0,      {DM1, MEM(IMM16_MEM)}},
389 { "mov",        0xf010,      0xfff0,      0,    FMT_D0, 0,      {AM1, MEM(AN0)}},
390 { "mov",        0x4300,      0xf3ff,      0,    FMT_S1, 0,      {AM1, MEM(SP)}},
391 { "mov",        0xfa800000,  0xfff30000,  0,    FMT_D2, 0,      {AM1, MEM(IMM16_MEM)}},
392 { "mov",        0x5c00,      0xfc00,      0,    FMT_S1, 0,      {MEM2(IMM8, SP), AN0}},
393 { "mov",        0xf80000,    0xfff000,    0,    FMT_D1, 0,      {MEM2(SD8, AM0), DN1}},
394 { "mov",        0xfa000000,  0xfff00000,  0,    FMT_D2, 0,      {MEM2(SD16, AM0), DN1}},
395 { "mov",        0x5800,      0xfc00,      0,    FMT_S1, 0,      {MEM2(IMM8, SP), DN0}},
396 { "mov",        0xfab40000,  0xfffc0000,  0,    FMT_D2, 0,      {MEM2(IMM16, SP), DN0}},
397 { "mov",        0xf300,      0xffc0,      0,    FMT_D0, 0,      {MEM2(DI, AM0), DN2}},
398 { "mov",        0xf82000,    0xfff000,    0,    FMT_D1, 0,      {MEM2(SD8,AM0), AN1}},
399 { "mov",        0xfa200000,  0xfff00000,  0,    FMT_D2, 0,      {MEM2(SD16, AM0), AN1}},
400 { "mov",        0xfab00000,  0xfffc0000,  0,    FMT_D2, 0,      {MEM2(IMM16, SP), AN0}},
401 { "mov",        0xf380,      0xffc0,      0,    FMT_D0, 0,      {MEM2(DI, AM0), AN2}},
402 { "mov",        0x4300,      0xf300,      0,    FMT_S1, 0,      {AM1, MEM2(IMM8, SP)}},
403 { "mov",        0xf81000,    0xfff000,    0,    FMT_D1, 0,      {DM1, MEM2(SD8, AN0)}},
404 { "mov",        0xfa100000,  0xfff00000,  0,    FMT_D2, 0,      {DM1, MEM2(SD16, AN0)}},
405 { "mov",        0x4200,      0xf300,      0,    FMT_S1, 0,      {DM1, MEM2(IMM8, SP)}},
406 { "mov",        0xfa910000,  0xfff30000,  0,    FMT_D2, 0,      {DM1, MEM2(IMM16, SP)}},
407 { "mov",        0xf340,      0xffc0,      0,    FMT_D0, 0,      {DM2, MEM2(DI, AN0)}},
408 { "mov",        0xf83000,    0xfff000,    0,    FMT_D1, 0,      {AM1, MEM2(SD8, AN0)}},
409 { "mov",        0xfa300000,  0xfff00000,  0,    FMT_D2, 0,      {AM1, MEM2(SD16, AN0)}},
410 { "mov",        0xfa900000,  0xfff30000,  0,    FMT_D2, 0,      {AM1, MEM2(IMM16, SP)}},
411 { "mov",        0xf3c0,      0xffc0,      0,    FMT_D0, 0,      {AM2, MEM2(DI, AN0)}},
412
413 /* start-sanitize-am33 */
414 { "mov",        0xf020,      0xfffc,      0,    FMT_D0, AM33,   {USP, AN0}},
415 { "mov",        0xf024,      0xfffc,      0,    FMT_D0, AM33,   {SSP, AN0}},
416 { "mov",        0xf028,      0xfffc,      0,    FMT_D0, AM33,   {MSP, AN0}},
417 { "mov",        0xf02c,      0xfffc,      0,    FMT_D0, AM33,   {PC, AN0}},
418 { "mov",        0xf030,      0xfff3,      0,    FMT_D0, AM33,   {AN1, USP}},
419 { "mov",        0xf031,      0xfff3,      0,    FMT_D0, AM33,   {AN1, SSP}},
420 { "mov",        0xf032,      0xfff3,      0,    FMT_D0, AM33,   {AN1, MSP}},
421 { "mov",        0xf2ec,      0xfffc,      0,    FMT_D0, AM33,   {EPSW, DN0}},
422 { "mov",        0xf2f1,      0xfff3,      0,    FMT_D0, AM33,   {DM1, EPSW}},
423 { "mov",        0xf500,      0xffc0,      0,    FMT_D0, AM33,   {AM2, RN0}},
424 { "mov",        0xf540,      0xffc0,      0,    FMT_D0, AM33,   {DM2, RN0}},
425 { "mov",        0xf580,      0xffc0,      0,    FMT_D0, AM33,   {RM1, AN0}},
426 { "mov",        0xf5c0,      0xffc0,      0,    FMT_D0, AM33,   {RM1, DN0}},
427 { "mov",        0xf90800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
428 { "mov",        0xf9e800,    0xffff00,    0,    FMT_D6, AM33,   {XRM2, RN0}},
429 { "mov",        0xf9f800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, XRN0}},
430 { "mov",        0xf90a00,    0xffff00,    0,    FMT_D6, AM33,   {MEM(RM0), RN2}},
431 { "mov",        0xf98a00,    0xffff0f,    0,    FMT_D6, AM33,   {MEM(SP), RN2}},
432 { "mov",        0xf96a00,    0xffff00,    0x12, FMT_D6, AM33,   {MEMINC(RM0), RN2}},
433 { "mov",        0xfb0e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM(IMM8_MEM), RN2}},
434 { "mov",        0xfd0e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM(IMM24_MEM), RN2}},
435 { "mov",        0xf91a00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, MEM(RN0)}},
436 { "mov",        0xf99a00,    0xffff0f,    0,    FMT_D6, AM33,   {RM2, MEM(SP)}},
437 { "mov",        0xf97a00,    0xffff00,    0x5,  FMT_D6, AM33,   {RM2, MEMINC(RN0)}},
438 { "mov",        0xfb1e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM(IMM8_MEM)}},
439 { "mov",        0xfd1e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM(IMM24_MEM)}},
440 { "mov",        0xfb0a0000,  0xffff0000,  0,    FMT_D7, AM33,   {MEM2(SD8, RM0), RN2}},
441 { "mov",        0xfd0a0000,  0xffff0000,  0,    FMT_D8, AM33,   {MEM2(SD24, RM0), RN2}},
442 { "mov",        0xfb8e0000,  0xffff000f,  0,    FMT_D7, AM33,   {MEM2(RI, RM0), RD2}},
443 { "mov",        0xfb1a0000,  0xffff0000,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, RN0)}},
444 { "mov",        0xfd1a0000,  0xffff0000,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, RN0)}},
445 { "mov",        0xfb8a0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM2(SD8, SP), RN2}},
446 { "mov",        0xfd8a0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM2(SD24, SP), RN2}},
447 { "mov",        0xfb9a0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, SP)}},
448 { "mov",        0xfd9a0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, SP)}},
449 { "mov",        0xfb9e0000,  0xffff000f,  0,    FMT_D7, AM33,   {RD2, MEM2(RI, RN0)}},
450 { "mov",        0xfb6a0000,  0xffff0000,  0x22, FMT_D7, AM33,   {MEMINC2 (RM0, SIMM8), RN2}},
451 { "mov",        0xfb7a0000,  0xffff0000,  0x5,  FMT_D7, AM33,   {RM2, MEMINC2 (RN0, SIMM8)}},
452 { "mov",        0xfd6a0000,  0xffff0000,  0x22, FMT_D8, AM33,   {MEMINC2 (RM0, IMM24), RN2}},
453 { "mov",        0xfd7a0000,  0xffff0000,  0x5,  FMT_D8, AM33,   {RM2, MEMINC2 (RN0, IMM24)}},
454 { "mov",        0xfe6a0000,  0xffff0000,  0x22, FMT_D9, AM33,   {MEMINC2 (RM0, IMM32_HIGH8), RN2}},
455 { "mov",        0xfe7a0000,  0xffff0000,  0x5,  FMT_D9, AM33,   {RN2, MEMINC2 (RM0, IMM32_HIGH8)}},
456 /* end-sanitize-am33 */
457 /* These must come after most of the other move instructions to avoid matching
458    a symbolic name with IMMxx operands.  Ugh.  */
459 { "mov",        0x2c0000,    0xfc0000,    0,    FMT_S2, 0,      {SIMM16, DN0}},
460 { "mov",        0xfccc0000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
461 { "mov",        0x240000,    0xfc0000,    0,    FMT_S2, 0,      {IMM16, AN0}},
462 { "mov",        0xfcdc0000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, AN0}},
463 { "mov",        0xfca40000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM(IMM32_MEM), DN0}},
464 { "mov",        0xfca00000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM(IMM32_MEM), AN0}},
465 { "mov",        0xfc810000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM(IMM32_MEM)}},
466 { "mov",        0xfc800000,  0xfff30000,  0,    FMT_D4, 0,      {AM1, MEM(IMM32_MEM)}},
467 { "mov",        0xfc000000,  0xfff00000,  0,    FMT_D4, 0,      {MEM2(IMM32,AM0), DN1}},
468 { "mov",        0xfcb40000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM2(IMM32, SP), DN0}},
469 { "mov",        0xfc200000,  0xfff00000,  0,    FMT_D4, 0,      {MEM2(IMM32,AM0), AN1}},
470 { "mov",        0xfcb00000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM2(IMM32, SP), AN0}},
471 { "mov",        0xfc100000,  0xfff00000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32,AN0)}},
472 { "mov",        0xfc910000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32, SP)}},
473 { "mov",        0xfc300000,  0xfff00000,  0,    FMT_D4, 0,      {AM1, MEM2(IMM32,AN0)}},
474 { "mov",        0xfc900000,  0xfff30000,  0,    FMT_D4, 0,      {AM1, MEM2(IMM32, SP)}},
475 /* These non-promoting variants need to come after all the other memory
476    moves.  */
477 { "mov",        0xf8f000,    0xfffc00,    0,    FMT_D1, AM30,   {MEM2(SD8N, AM0), SP}},
478 { "mov",        0xf8f400,    0xfffc00,    0,    FMT_D1, AM30,   {SP, MEM2(SD8N, AN0)}},
479 /* start-sanitize-am33 */
480 /* These are the same as the previous non-promoting versions.  The am33
481    does not have restrictions on the offsets used to load/store the stack
482    pointer.  */
483 { "mov",        0xf8f000,    0xfffc00,    0,    FMT_D1, AM33,   {MEM2(SD8, AM0), SP}},
484 { "mov",        0xf8f400,    0xfffc00,    0,    FMT_D1, AM33,   {SP, MEM2(SD8, AN0)}},
485 /* These must come last so that we favor shorter move instructions for
486    loading immediates into d0-d3/a0-a3.  */
487 { "mov",        0xfb080000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
488 { "mov",        0xfd080000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
489 { "mov",        0xfe080000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
490 { "mov",        0xfbf80000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, XRN02}},
491 { "mov",        0xfdf80000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, XRN02}},
492 { "mov",        0xfef80000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, XRN02}},
493 { "mov",        0xfe0e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM(IMM32_HIGH8_MEM), RN2}},
494 { "mov",        0xfe1e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM(IMM32_HIGH8_MEM)}},
495 { "mov",        0xfe0a0000,  0xffff0000,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8,RM0), RN2}},
496 { "mov",        0xfe1a0000,  0xffff0000,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, RN0)}},
497 { "mov",        0xfe8a0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8, SP), RN2}},
498 { "mov",        0xfe9a0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, SP)}},
499 /* end-sanitize-am33 */
500
501 /* start-sanitize-am33 */
502 { "movu",       0xfb180000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
503 { "movu",       0xfd180000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
504 { "movu",       0xfe180000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
505 /* end-sanitize-am33 */
506
507 /* start-sanitize-am33 */
508 { "mcst9",      0xf630,      0xfff0,      0,    FMT_D0, AM33,   {DN01}},
509 { "mcst48",     0xf660,      0xfff0,      0,    FMT_D0, AM33,   {DN01}},
510 { "swap",       0xf680,      0xfff0,      0,    FMT_D0, AM33,   {DM1, DN0}},
511 { "swap",       0xf9cb00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
512 { "swaph",      0xf690,      0xfff0,      0,    FMT_D0, AM33,   {DM1, DN0}},
513 { "swaph",      0xf9db00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
514 { "getchx",     0xf6c0,      0xfff0,      0,    FMT_D0, AM33,   {DN01}},
515 { "getclx",     0xf6d0,      0xfff0,      0,    FMT_D0, AM33,   {DN01}},
516 { "mac",        0xfb0f0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
517 { "mac",        0xf90b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
518 { "mac",        0xfb0b0000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
519 { "mac",        0xfd0b0000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
520 { "mac",        0xfe0b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
521 { "macu",       0xfb1f0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
522 { "macu",       0xf91b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
523 { "macu",       0xfb1b0000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
524 { "macu",       0xfd1b0000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
525 { "macu",       0xfe1b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
526 { "macb",       0xfb2f0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
527 { "macb",       0xf92b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
528 { "macb",       0xfb2b0000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
529 { "macb",       0xfd2b0000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
530 { "macb",       0xfe2b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
531 { "macbu",      0xfb3f0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
532 { "macbu",      0xf93b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
533 { "macbu",      0xfb3b0000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
534 { "macbu",      0xfd3b0000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
535 { "macbu",      0xfe3b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
536 { "mach",       0xfb4f0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
537 { "mach",       0xf94b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
538 { "mach",       0xfb4b0000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
539 { "mach",       0xfd4b0000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
540 { "mach",       0xfe4b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
541 { "machu",      0xfb5f0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
542 { "machu",      0xf95b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
543 { "machu",      0xfb5b0000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
544 { "machu",      0xfd5b0000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
545 { "machu",      0xfe5b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
546 { "dmach",      0xfb6f0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
547 { "dmach",      0xf96b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
548 { "dmach",      0xfe6b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
549 { "dmachu",     0xfb7f0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
550 { "dmachu",     0xf97b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
551 { "dmachu",     0xfe7b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
552 { "dmulh",      0xfb8f0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
553 { "dmulh",      0xf98b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
554 { "dmulh",      0xfe8b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
555 { "dmulhu",     0xfb9f0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
556 { "dmulhu",     0xf99b00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
557 { "dmulhu",     0xfe9b0000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
558 { "mcste",      0xf9bb00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
559 { "mcste",      0xfbbb0000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
560 { "swhw",       0xf9eb00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
561 /* end-sanitize-am33 */
562
563 { "movbu",      0xf040,      0xfff0,      0,    FMT_D0, 0,      {MEM(AM0), DN1}},
564 { "movbu",      0xf84000,    0xfff000,    0,    FMT_D1, 0,      {MEM2(SD8, AM0), DN1}},
565 { "movbu",      0xfa400000,  0xfff00000,  0,    FMT_D2, 0,      {MEM2(SD16, AM0), DN1}},
566 { "movbu",      0xf8b800,    0xfffcff,    0,    FMT_D1, 0,      {MEM(SP), DN0}},
567 { "movbu",      0xf8b800,    0xfffc00,    0,    FMT_D1, 0,      {MEM2(IMM8, SP), DN0}},
568 { "movbu",      0xfab80000,  0xfffc0000,  0,    FMT_D2, 0,      {MEM2(IMM16, SP), DN0}},
569 { "movbu",      0xf400,      0xffc0,      0,    FMT_D0, 0,      {MEM2(DI, AM0), DN2}},
570 { "movbu",      0x340000,    0xfc0000,    0,    FMT_S2, 0,      {MEM(IMM16_MEM), DN0}},
571 { "movbu",      0xf050,      0xfff0,      0,    FMT_D0, 0,      {DM1, MEM(AN0)}},
572 { "movbu",      0xf85000,    0xfff000,    0,    FMT_D1, 0,      {DM1, MEM2(SD8, AN0)}},
573 { "movbu",      0xfa500000,  0xfff00000,  0,    FMT_D2, 0,      {DM1, MEM2(SD16, AN0)}},
574 { "movbu",      0xf89200,    0xfff3ff,    0,    FMT_D1, 0,      {DM1, MEM(SP)}},
575 { "movbu",      0xf89200,    0xfff300,    0,    FMT_D1, 0,      {DM1, MEM2(IMM8, SP)}},
576 { "movbu",      0xfa920000,  0xfff30000,  0,    FMT_D2, 0,      {DM1, MEM2(IMM16, SP)}},
577 { "movbu",      0xf440,      0xffc0,      0,    FMT_D0, 0,      {DM2, MEM2(DI, AN0)}},
578 { "movbu",      0x020000,    0xf30000,    0,    FMT_S2, 0,      {DM1, MEM(IMM16_MEM)}},
579 /* start-sanitize-am33 */
580 { "movbu",      0xf92a00,    0xffff00,    0,    FMT_D6, AM33,   {MEM(RM0), RN2}},
581 { "movbu",      0xf93a00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, MEM(RN0)}},
582 { "movbu",      0xf9aa00,    0xffff0f,    0,    FMT_D6, AM33,   {MEM(SP), RN2}},
583 { "movbu",      0xf9ba00,    0xffff0f,    0,    FMT_D6, AM33,   {RM2, MEM(SP)}},
584 { "movbu",      0xfb2a0000,  0xffff0000,  0,    FMT_D7, AM33,   {MEM2(SD8, RM0), RN2}},
585 { "movbu",      0xfd2a0000,  0xffff0000,  0,    FMT_D8, AM33,   {MEM2(SD24, RM0), RN2}},
586 { "movbu",      0xfb3a0000,  0xffff0000,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, RN0)}},
587 { "movbu",      0xfd3a0000,  0xffff0000,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, RN0)}},
588 { "movbu",      0xfbaa0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM2(SD8, SP), RN2}},
589 { "movbu",      0xfdaa0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM2(SD24, SP), RN2}},
590 { "movbu",      0xfbba0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, SP)}},
591 { "movbu",      0xfdba0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, SP)}},
592 { "movbu",      0xfb2e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM(IMM8_MEM), RN2}},
593 { "movbu",      0xfd2e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM(IMM24_MEM), RN2}},
594 { "movbu",      0xfb3e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM(IMM8_MEM)}},
595 { "movbu",      0xfd3e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM(IMM24_MEM)}},
596 { "movbu",      0xfbae0000,  0xffff000f,  0,    FMT_D7, AM33,   {MEM2(RI, RM0), RD2}},
597 { "movbu",      0xfbbe0000,  0xffff000f,  0,    FMT_D7, AM33,   {RD2, MEM2(RI, RN0)}},
598 /* end-sanitize-am33 */
599 { "movbu",      0xfc400000,  0xfff00000,  0,    FMT_D4, 0,      {MEM2(IMM32,AM0), DN1}},
600 { "movbu",      0xfcb80000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM2(IMM32, SP), DN0}},
601 { "movbu",      0xfca80000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM(IMM32_MEM), DN0}},
602 { "movbu",      0xfc500000,  0xfff00000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32,AN0)}},
603 { "movbu",      0xfc920000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32, SP)}},
604 { "movbu",      0xfc820000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM(IMM32_MEM)}},
605 /* start-sanitize-am33 */
606 { "movbu",      0xfe2a0000,  0xffff0000,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8,RM0), RN2}},
607 { "movbu",      0xfe3a0000,  0xffff0000,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, RN0)}},
608 { "movbu",      0xfeaa0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8,SP), RN2}},
609 { "movbu",      0xfeba0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, SP)}},
610 { "movbu",      0xfe2e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM(IMM32_HIGH8_MEM), RN2}},
611 { "movbu",      0xfe3e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM(IMM32_HIGH8_MEM)}},
612 /* end-sanitize-am33 */
613
614 { "movhu",      0xf060,      0xfff0,      0,    FMT_D0, 0,      {MEM(AM0), DN1}},
615 { "movhu",      0xf86000,    0xfff000,    0,    FMT_D1, 0,      {MEM2(SD8, AM0), DN1}},
616 { "movhu",      0xfa600000,  0xfff00000,  0,    FMT_D2, 0,      {MEM2(SD16, AM0), DN1}},
617 { "movhu",      0xf8bc00,    0xfffcff,    0,    FMT_D1, 0,      {MEM(SP), DN0}},
618 { "movhu",      0xf8bc00,    0xfffc00,    0,    FMT_D1, 0,      {MEM2(IMM8, SP), DN0}},
619 { "movhu",      0xfabc0000,  0xfffc0000,  0,    FMT_D2, 0,      {MEM2(IMM16, SP), DN0}},
620 { "movhu",      0xf480,      0xffc0,      0,    FMT_D0, 0,      {MEM2(DI, AM0), DN2}},
621 { "movhu",      0x380000,    0xfc0000,    0,    FMT_S2, 0,      {MEM(IMM16_MEM), DN0}},
622 { "movhu",      0xf070,      0xfff0,      0,    FMT_D0, 0,      {DM1, MEM(AN0)}},
623 { "movhu",      0xf87000,    0xfff000,    0,    FMT_D1, 0,      {DM1, MEM2(SD8, AN0)}},
624 { "movhu",      0xfa700000,  0xfff00000,  0,    FMT_D2, 0,      {DM1, MEM2(SD16, AN0)}},
625 { "movhu",      0xf89300,    0xfff3ff,    0,    FMT_D1, 0,      {DM1, MEM(SP)}},
626 { "movhu",      0xf89300,    0xfff300,    0,    FMT_D1, 0,      {DM1, MEM2(IMM8, SP)}},
627 { "movhu",      0xfa930000,  0xfff30000,  0,    FMT_D2, 0,      {DM1, MEM2(IMM16, SP)}},
628 { "movhu",      0xf4c0,      0xffc0,      0,    FMT_D0, 0,      {DM2, MEM2(DI, AN0)}},
629 { "movhu",      0x030000,    0xf30000,    0,    FMT_S2, 0,      {DM1, MEM(IMM16_MEM)}},
630 /* start-sanitize-am33 */
631 { "movhu",      0xf94a00,    0xffff00,    0,    FMT_D6, AM33,   {MEM(RM0), RN2}},
632 { "movhu",      0xf95a00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, MEM(RN0)}},
633 { "movhu",      0xf9ca00,    0xffff0f,    0,    FMT_D6, AM33,   {MEM(SP), RN2}},
634 { "movhu",      0xf9da00,    0xffff0f,    0,    FMT_D6, AM33,   {RM2, MEM(SP)}},
635 { "movhu",      0xf9ea00,    0xffff00,    0x12, FMT_D6, AM33,   {MEMINC(RM0), RN2}},
636 { "movhu",      0xf9fa00,    0xffff00,    0x5,  FMT_D6, AM33,   {RM2, MEMINC(RN0)}},
637 { "movhu",      0xfb4a0000,  0xffff0000,  0,    FMT_D7, AM33,   {MEM2(SD8, RM0), RN2}},
638 { "movhu",      0xfd4a0000,  0xffff0000,  0,    FMT_D8, AM33,   {MEM2(SD24, RM0), RN2}},
639 { "movhu",      0xfb5a0000,  0xffff0000,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, RN0)}},
640 { "movhu",      0xfd5a0000,  0xffff0000,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, RN0)}},
641 { "movhu",      0xfbca0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM2(SD8, SP), RN2}},
642 { "movhu",      0xfdca0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM2(SD24, SP), RN2}},
643 { "movhu",      0xfbda0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, SP)}},
644 { "movhu",      0xfdda0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, SP)}},
645 { "movhu",      0xfb4e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM(IMM8_MEM), RN2}},
646 { "movhu",      0xfd4e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM(IMM24_MEM), RN2}},
647 { "movhu",      0xfbce0000,  0xffff000f,  0,    FMT_D7, AM33,   {MEM2(RI, RM0), RD2}},
648 { "movhu",      0xfbde0000,  0xffff000f,  0,    FMT_D7, AM33,   {RD2, MEM2(RI, RN0)}},
649 /* end-sanitize-am33 */
650 { "movhu",      0xfc600000,  0xfff00000,  0,    FMT_D4, 0,      {MEM2(IMM32,AM0), DN1}},
651 { "movhu",      0xfcbc0000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM2(IMM32, SP), DN0}},
652 { "movhu",      0xfcac0000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM(IMM32_MEM), DN0}},
653 { "movhu",      0xfc700000,  0xfff00000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32,AN0)}},
654 { "movhu",      0xfc930000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32, SP)}},
655 { "movhu",      0xfc830000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM(IMM32_MEM)}},
656 /* start-sanitize-am33 */
657 { "movhu",      0xfe4a0000,  0xffff0000,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8,RM0), RN2}},
658 { "movhu",      0xfe5a0000,  0xffff0000,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, RN0)}},
659 { "movhu",      0xfeca0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8, SP), RN2}},
660 { "movhu",      0xfeda0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, SP)}},
661 { "movhu",      0xfe4e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM(IMM32_HIGH8_MEM), RN2}},
662 { "movhu",      0xfb5e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM(IMM8_MEM)}},
663 { "movhu",      0xfd5e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM(IMM24_MEM)}},
664 { "movhu",      0xfe5e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM(IMM32_HIGH8_MEM)}},
665 { "movhu",      0xfbea0000,  0xffff0000,  0x22, FMT_D7, AM33,   {MEMINC2 (RM0, SIMM8), RN2}},
666 { "movhu",      0xfbfa0000,  0xffff0000,  0x5,  FMT_D7, AM33,   {RM2, MEMINC2 (RN0, SIMM8)}},
667 { "movhu",      0xfdea0000,  0xffff0000,  0x22, FMT_D8, AM33,   {MEMINC2 (RM0, IMM24), RN2}},
668 { "movhu",      0xfdfa0000,  0xffff0000,  0x5,  FMT_D8, AM33,   {RM2, MEMINC2 (RN0, IMM24)}},
669 { "movhu",      0xfeea0000,  0xffff0000,  0x22, FMT_D9, AM33,   {MEMINC2 (RM0, IMM32_HIGH8), RN2}},
670 { "movhu",      0xfefa0000,  0xffff0000,  0x5,  FMT_D9, AM33,   {RN2, MEMINC2 (RM0, IMM32_HIGH8)}},
671 /* end-sanitize-am33 */
672
673 { "ext",        0xf2d0,      0xfffc,      0,    FMT_D0, 0,      {DN0}},
674 /* start-sanitize-am33 */
675 { "ext",        0xf91800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
676 /* end-sanitize-am33 */
677
678 /* start-sanitize-am33 */
679 { "extb",       0xf92800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
680 /* end-sanitize-am33 */
681 { "extb",       0x10,        0xfc,        0,    FMT_S0, 0,      {DN0}},
682 /* start-sanitize-am33 */
683 { "extb",       0xf92800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
684 /* end-sanitize-am33 */
685
686 /* start-sanitize-am33 */
687 { "extbu",      0xf93800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
688 /* end-sanitize-am33 */
689 { "extbu",      0x14,        0xfc,        0,    FMT_S0, 0,      {DN0}},
690 /* start-sanitize-am33 */
691 { "extbu",      0xf93800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
692 /* end-sanitize-am33 */
693
694 /* start-sanitize-am33 */
695 { "exth",       0xf94800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
696 /* end-sanitize-am33 */
697 { "exth",       0x18,        0xfc,        0,    FMT_S0, 0,      {DN0}},
698 /* start-sanitize-am33 */
699 { "exth",       0xf94800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
700 /* end-sanitize-am33 */
701
702 /* start-sanitize-am33 */
703 { "exthu",      0xf95800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
704 /* end-sanitize-am33 */
705 { "exthu",      0x1c,        0xfc,        0,    FMT_S0, 0,      {DN0}},
706 /* start-sanitize-am33 */
707 { "exthu",      0xf95800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
708 /* end-sanitize-am33 */
709
710 { "movm",       0xce00,      0xff00,      0,    FMT_S1, 0,      {MEM(SP), REGS}},
711 { "movm",       0xcf00,      0xff00,      0,    FMT_S1, 0,      {REGS, MEM(SP)}},
712 /* start-sanitize-am33 */
713 { "movm",       0xf8ce00,    0xffff00,    0,    FMT_D1, AM33,   {MEM(USP), REGS}},
714 { "movm",       0xf8cf00,    0xffff00,    0,    FMT_D1, AM33,   {REGS, MEM(USP)}},
715 /* end-sanitize-am33 */
716
717 { "clr",        0x00,        0xf3,        0,    FMT_S0, 0,      {DN1}},
718 /* start-sanitize-am33 */
719 { "clr",        0xf96800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
720 /* end-sanitize-am33 */
721
722 /* start-sanitize-am33 */
723 { "add",        0xfb7c0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
724 /* end-sanitize-am33 */
725 { "add",        0xe0,        0xf0,        0,    FMT_S0, 0,      {DM1, DN0}},
726 { "add",        0xf160,      0xfff0,      0,    FMT_D0, 0,      {DM1, AN0}},
727 { "add",        0xf150,      0xfff0,      0,    FMT_D0, 0,      {AM1, DN0}},
728 { "add",        0xf170,      0xfff0,      0,    FMT_D0, 0,      {AM1, AN0}},
729 { "add",        0x2800,      0xfc00,      0,    FMT_S1, 0,      {SIMM8, DN0}},
730 { "add",        0xfac00000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
731 { "add",        0x2000,      0xfc00,      0,    FMT_S1, 0,      {SIMM8, AN0}},
732 { "add",        0xfad00000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, AN0}},
733 { "add",        0xf8fe00,    0xffff00,    0,    FMT_D1, 0,      {SIMM8, SP}},
734 { "add",        0xfafe0000,  0xffff0000,  0,    FMT_D2, 0,      {SIMM16, SP}},
735 /* start-sanitize-am33 */
736 { "add",        0xf97800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
737 /* end-sanitize-am33 */
738 { "add",        0xfcc00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
739 { "add",        0xfcd00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, AN0}},
740 { "add",        0xfcfe0000,  0xffff0000,  0,    FMT_D4, 0,      {IMM32, SP}},
741 /* start-sanitize-am33 */
742 { "add",        0xfb780000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
743 { "add",        0xfd780000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
744 { "add",        0xfe780000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
745 /* end-sanitize-am33 */
746
747 /* start-sanitize-am33 */
748 { "addc",       0xfb8c0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
749 /* end-sanitize-am33 */
750 { "addc",       0xf140,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
751 /* start-sanitize-am33 */
752 { "addc",       0xf98800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
753 { "addc",       0xfb880000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
754 { "addc",       0xfd880000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
755 { "addc",       0xfe880000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
756 /* end-sanitize-am33 */
757
758 /* start-sanitize-am33 */
759 { "sub",        0xfb9c0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
760 /* end-sanitize-am33 */
761 { "sub",        0xf100,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
762 { "sub",        0xf120,      0xfff0,      0,    FMT_D0, 0,      {DM1, AN0}},
763 { "sub",        0xf110,      0xfff0,      0,    FMT_D0, 0,      {AM1, DN0}},
764 { "sub",        0xf130,      0xfff0,      0,    FMT_D0, 0,      {AM1, AN0}},
765 /* start-sanitize-am33 */
766 { "sub",        0xf99800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
767 /* end-sanitize-am33 */
768 { "sub",        0xfcc40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
769 { "sub",        0xfcd40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, AN0}},
770 /* start-sanitize-am33 */
771 { "sub",        0xfb980000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
772 { "sub",        0xfd980000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
773 { "sub",        0xfe980000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
774 /* end-sanitize-am33 */
775
776 /* start-sanitize-am33 */
777 { "subc",       0xfa8c0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
778 /* end-sanitize-am33 */
779 { "subc",       0xf180,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
780 /* start-sanitize-am33 */
781 { "subc",       0xf9a800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
782 { "subc",       0xfba80000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
783 { "subc",       0xfda80000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
784 { "subc",       0xfea80000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
785 /* end-sanitize-am33 */
786
787 /* start-sanitize-am33 */
788 { "mul",        0xfbad0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
789 /* end-sanitize-am33 */
790 { "mul",        0xf240,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
791 /* start-sanitize-am33 */
792 { "mul",        0xf9a900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
793 { "mul",        0xfba90000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
794 { "mul",        0xfda90000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
795 { "mul",        0xfea90000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
796 /* end-sanitize-am33 */
797
798 /* start-sanitize-am33 */
799 { "mulu",       0xfbbd0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
800 /* end-sanitize-am33 */
801 { "mulu",       0xf250,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
802 /* start-sanitize-am33 */
803 { "mulu",       0xf9b900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
804 { "mulu",       0xfbb90000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
805 { "mulu",       0xfdb90000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
806 { "mulu",       0xfeb90000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
807 /* end-sanitize-am33 */
808
809 { "div",        0xf260,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
810 /* start-sanitize-am33 */
811 { "div",        0xf9c900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
812 /* end-sanitize-am33 */
813
814 { "divu",       0xf270,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
815 /* start-sanitize-am33 */
816 { "divu",       0xf9d900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
817 /* end-sanitize-am33 */
818
819 { "inc",        0x40,        0xf3,        0,    FMT_S0, 0,      {DN1}},
820 { "inc",        0x41,        0xf3,        0,    FMT_S0, 0,      {AN1}},
821 /* start-sanitize-am33 */
822 { "inc",        0xf9b800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
823 /* end-sanitize-am33 */
824
825 { "inc4",       0x50,        0xfc,        0,    FMT_S0, 0,      {AN0}},
826 /* start-sanitize-am33 */
827 { "inc4",       0xf9c800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
828 /* end-sanitize-am33 */
829
830 { "cmp",        0xa000,      0xf000,      0,    FMT_S1, 0,      {SIMM8, DN01}},
831 { "cmp",        0xa0,        0xf0,        0x3,  FMT_S0, 0,      {DM1, DN0}},
832 { "cmp",        0xf1a0,      0xfff0,      0,    FMT_D0, 0,      {DM1, AN0}},
833 { "cmp",        0xf190,      0xfff0,      0,    FMT_D0, 0,      {AM1, DN0}},
834 { "cmp",        0xb000,      0xf000,      0,    FMT_S1, 0,      {IMM8, AN01}},
835 { "cmp",        0xb0,        0xf0,        0x3,  FMT_S0, 0,      {AM1, AN0}},
836 { "cmp",        0xfac80000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
837 { "cmp",        0xfad80000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, AN0}},
838 /* start-sanitize-am33 */
839 { "cmp",        0xf9d800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
840 /* end-sanitize-am33 */
841 { "cmp",        0xfcc80000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
842 { "cmp",        0xfcd80000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, AN0}},
843 /* start-sanitize-am33 */
844 { "cmp",        0xfbd80000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
845 { "cmp",        0xfdd80000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
846 { "cmp",        0xfed80000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
847 /* end-sanitize-am33 */
848
849 /* start-sanitize-am33 */
850 { "and",        0xfb0d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
851 /* end-sanitize-am33 */
852 { "and",        0xf200,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
853 { "and",        0xf8e000,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
854 { "and",        0xfae00000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
855 { "and",        0xfafc0000,  0xffff0000,  0,    FMT_D2, 0,      {IMM16, PSW}},
856 /* start-sanitize-am33 */
857 { "and",        0xfcfc0000,  0xffff0000,  0,    FMT_D4, AM33,   {IMM32, EPSW}},
858 { "and",        0xf90900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
859 /* end-sanitize-am33 */
860 { "and",        0xfce00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
861 /* start-sanitize-am33 */
862 { "and",        0xfb090000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
863 { "and",        0xfd090000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
864 { "and",        0xfe090000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
865 /* end-sanitize-am33 */
866
867 /* start-sanitize-am33 */
868 { "or",         0xfb1d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
869 /* end-sanitize-am33 */
870 { "or",         0xf210,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
871 { "or",         0xf8e400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
872 { "or",         0xfae40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
873 { "or",         0xfafd0000,  0xffff0000,  0,    FMT_D2, 0,      {IMM16, PSW}},
874 /* start-sanitize-am33 */
875 { "or",         0xfcfd0000,  0xffff0000,  0,    FMT_D4, AM33,   {IMM32, EPSW}},
876 { "or",         0xf91900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
877 /* end-sanitize-am33 */
878 { "or",         0xfce40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
879 /* start-sanitize-am33 */
880 { "or",         0xfb190000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
881 { "or",         0xfd190000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
882 { "or",         0xfe190000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
883 /* end-sanitize-am33 */
884
885 /* start-sanitize-am33 */
886 { "xor",        0xfb2d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
887 /* end-sanitize-am33 */
888 { "xor",        0xf220,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
889 { "xor",        0xfae80000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
890 /* start-sanitize-am33 */
891 { "xor",        0xf92900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
892 /* end-sanitize-am33 */
893 { "xor",        0xfce80000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
894 /* start-sanitize-am33 */
895 { "xor",        0xfb290000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
896 { "xor",        0xfd290000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
897 { "xor",        0xfe290000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
898 /* end-sanitize-am33 */
899
900 { "not",        0xf230,      0xfffc,      0,    FMT_D0, 0,      {DN0}},
901 /* start-sanitize-am33 */
902 { "not",        0xf93900,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
903 /* end-sanitize-am33 */
904
905 { "btst",       0xf8ec00,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
906 { "btst",       0xfaec0000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
907 { "btst",       0xfcec0000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
908 /* start-sanitize-am33 */
909 /* Place these before the ones with IMM8E and SD8N_SHIFT8 since we want the
910    them to match last since they do not promote.  */
911 { "btst",       0xfbe90000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
912 { "btst",       0xfde90000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
913 { "btst",       0xfee90000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
914 /* end-sanitize-am33 */
915 { "btst",       0xfe020000,  0xffff0000,  0,    FMT_D5, 0,      {IMM8E, MEM(IMM32_LOWSHIFT8)}},
916 { "btst",       0xfaf80000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM8, MEM2(SD8N_SHIFT8, AN0)}},
917
918 { "bset",       0xf080,      0xfff0,      0,    FMT_D0, 0,      {DM1, MEM(AN0)}},
919 { "bset",       0xfe000000,  0xffff0000,  0,    FMT_D5, 0,      {IMM8E, MEM(IMM32_LOWSHIFT8)}},
920 { "bset",       0xfaf00000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM8, MEM2(SD8N_SHIFT8, AN0)}},
921
922 { "bclr",       0xf090,      0xfff0,      0,    FMT_D0, 0,      {DM1, MEM(AN0)}},
923 { "bclr",       0xfe010000,  0xffff0000,  0,    FMT_D5, 0,      {IMM8E, MEM(IMM32_LOWSHIFT8)}},
924 { "bclr",       0xfaf40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM8, MEM2(SD8N_SHIFT8,AN0)}},
925
926 /* start-sanitize-am33 */
927 { "asr",        0xfb4d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
928 /* end-sanitize-am33 */
929 { "asr",        0xf2b0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
930 { "asr",        0xf8c800,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
931 /* start-sanitize-am33 */
932 { "asr",        0xf94900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
933 { "asr",        0xfb490000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
934 { "asr",        0xfd490000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
935 { "asr",        0xfe490000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
936 /* end-sanitize-am33 */
937 { "asr",        0xf8c801,    0xfffcff,    0,    FMT_D1, 0,      {DN0}},
938 /* start-sanitize-am33 */
939 { "asr",        0xfb490001,  0xffff00ff,  0,    FMT_D7, AM33,   {RN02}},
940 /* end-sanitize-am33 */
941
942 /* start-sanitize-am33 */
943 { "lsr",        0xfb5d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
944 /* end-sanitize-am33 */
945 { "lsr",        0xf2a0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
946 { "lsr",        0xf8c400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
947 /* start-sanitize-am33 */
948 { "lsr",        0xf95900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
949 { "lsr",        0xfb590000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
950 { "lsr",        0xfd590000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
951 { "lsr",        0xfe590000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
952 /* end-sanitize-am33 */
953 { "lsr",        0xf8c401,    0xfffcff,    0,    FMT_D1, 0,      {DN0}},
954 /* start-sanitize-am33 */
955 { "lsr",        0xfb590001,  0xffff00ff,  0,    FMT_D7, AM33,   {RN02}},
956 /* end-sanitize-am33 */
957
958 /* start-sanitize-am33 */
959 { "asl",        0xfb6d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
960 /* end-sanitize-am33 */
961 { "asl",        0xf290,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
962 { "asl",        0xf8c000,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
963 /* start-sanitize-am33 */
964 { "asl",        0xf96900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
965 { "asl",        0xfb690000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
966 { "asl",        0xfd690000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
967 { "asl",        0xfe690000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
968 /* end-sanitize-am33 */
969 { "asl",        0xf8c001,    0xfffcff,    0,    FMT_D1, 0,      {DN0}},
970 /* start-sanitize-am33 */
971 { "asl",        0xfb690001,  0xffff00ff,  0,    FMT_D7, AM33,   {RN02}},
972 /* end-sanitize-am33 */
973
974 { "asl2",       0x54,        0xfc,        0,    FMT_S0, 0,      {DN0}},
975 /* start-sanitize-am33 */
976 { "asl2",       0xf97900,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
977 /* end-sanitize-am33 */
978
979 { "ror",        0xf284,      0xfffc,      0,    FMT_D0, 0,      {DN0}},
980 /* start-sanitize-am33 */
981 { "ror",        0xf98900,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
982 /* end-sanitize-am33 */
983
984 { "rol",        0xf280,      0xfffc,      0,    FMT_D0, 0,      {DN0}},
985 /* start-sanitize-am33 */
986 { "rol",        0xf99900,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
987 /* end-sanitize-am33 */
988
989 { "beq",        0xc800,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
990 { "bne",        0xc900,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
991 { "bgt",        0xc100,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
992 { "bge",        0xc200,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
993 { "ble",        0xc300,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
994 { "blt",        0xc000,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
995 { "bhi",        0xc500,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
996 { "bcc",        0xc600,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
997 { "bls",        0xc700,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
998 { "bcs",        0xc400,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
999 { "bvc",        0xf8e800,    0xffff00,    0,    FMT_D1, 0,      {SD8N_PCREL}},
1000 { "bvs",        0xf8e900,    0xffff00,    0,    FMT_D1, 0,      {SD8N_PCREL}},
1001 { "bnc",        0xf8ea00,    0xffff00,    0,    FMT_D1, 0,      {SD8N_PCREL}},
1002 { "bns",        0xf8eb00,    0xffff00,    0,    FMT_D1, 0,      {SD8N_PCREL}},
1003 { "bra",        0xca00,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
1004
1005 { "leq",        0xd8,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1006 { "lne",        0xd9,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1007 { "lgt",        0xd1,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1008 { "lge",        0xd2,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1009 { "lle",        0xd3,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1010 { "llt",        0xd0,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1011 { "lhi",        0xd5,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1012 { "lcc",        0xd6,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1013 { "lls",        0xd7,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1014 { "lcs",        0xd4,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1015 { "lra",        0xda,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1016 { "setlb",      0xdb,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1017
1018 { "jmp",        0xf0f4,      0xfffc,      0,    FMT_D0, 0,      {PAREN,AN0,PAREN}},
1019 { "jmp",        0xcc0000,    0xff0000,    0,    FMT_S2, 0,      {IMM16_PCREL}},
1020 { "jmp",        0xdc000000,  0xff000000,  0,    FMT_S4, 0,      {IMM32_HIGH24}},
1021 { "call",       0xcd000000,  0xff000000,  0,    FMT_S4, 0,      {D16_SHIFT,REGS,IMM8E}},
1022 { "call",       0xdd000000,  0xff000000,  0,    FMT_S6, 0,      {IMM32_HIGH24_LOWSHIFT16, REGSE_SHIFT8,IMM8E}},
1023 { "calls",      0xf0f0,      0xfffc,      0,    FMT_D0, 0,      {PAREN,AN0,PAREN}},
1024 { "calls",      0xfaff0000,  0xffff0000,  0,    FMT_D2, 0,      {IMM16_PCREL}},
1025 { "calls",      0xfcff0000,  0xffff0000,  0,    FMT_D4, 0,      {IMM32_PCREL}},
1026
1027 { "ret",        0xdf0000,    0xff0000,    0,    FMT_S2, 0,      {REGS_SHIFT8, IMM8}},
1028 { "retf",       0xde0000,    0xff0000,    0,    FMT_S2, 0,      {REGS_SHIFT8, IMM8}},
1029 { "rets",       0xf0fc,      0xffff,      0,    FMT_D0, 0,      {UNUSED}},
1030 { "rti",        0xf0fd,      0xffff,      0,    FMT_D0, 0,      {UNUSED}},
1031 { "trap",       0xf0fe,      0xffff,      0,    FMT_D0, 0,      {UNUSED}},
1032 { "rtm",        0xf0ff,      0xffff,      0,    FMT_D0, 0,      {UNUSED}},
1033 { "nop",        0xcb,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1034
1035 /* UDF instructions.  */
1036 { "udf00",      0xf600,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1037 { "udf00",      0xf90000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1038 { "udf00",      0xfb000000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1039 { "udf00",      0xfd000000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1040 { "udf01",      0xf610,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1041 { "udf01",      0xf91000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1042 { "udf01",      0xfb100000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1043 { "udf01",      0xfd100000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1044 { "udf02",      0xf620,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1045 { "udf02",      0xf92000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1046 { "udf02",      0xfb200000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1047 { "udf02",      0xfd200000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1048 { "udf03",      0xf630,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1049 { "udf03",      0xf93000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1050 { "udf03",      0xfb300000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1051 { "udf03",      0xfd300000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1052 { "udf04",      0xf640,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1053 { "udf04",      0xf94000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1054 { "udf04",      0xfb400000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1055 { "udf04",      0xfd400000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1056 { "udf05",      0xf650,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1057 { "udf05",      0xf95000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1058 { "udf05",      0xfb500000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1059 { "udf05",      0xfd500000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1060 { "udf06",      0xf660,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1061 { "udf06",      0xf96000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1062 { "udf06",      0xfb600000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1063 { "udf06",      0xfd600000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1064 { "udf07",      0xf670,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1065 { "udf07",      0xf97000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1066 { "udf07",      0xfb700000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1067 { "udf07",      0xfd700000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1068 { "udf08",      0xf680,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1069 { "udf08",      0xf98000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1070 { "udf08",      0xfb800000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1071 { "udf08",      0xfd800000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1072 { "udf09",      0xf690,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1073 { "udf09",      0xf99000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1074 { "udf09",      0xfb900000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1075 { "udf09",      0xfd900000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1076 { "udf10",      0xf6a0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1077 { "udf10",      0xf9a000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1078 { "udf10",      0xfba00000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1079 { "udf10",      0xfda00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1080 { "udf11",      0xf6b0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1081 { "udf11",      0xf9b000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1082 { "udf11",      0xfbb00000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1083 { "udf11",      0xfdb00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1084 { "udf12",      0xf6c0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1085 { "udf12",      0xf9c000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1086 { "udf12",      0xfbc00000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1087 { "udf12",      0xfdc00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1088 { "udf13",      0xf6d0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1089 { "udf13",      0xf9d000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1090 { "udf13",      0xfbd00000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1091 { "udf13",      0xfdd00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1092 { "udf14",      0xf6e0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1093 { "udf14",      0xf9e000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1094 { "udf14",      0xfbe00000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1095 { "udf14",      0xfde00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1096 { "udf15",      0xf6f0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1097 { "udf15",      0xf9f000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
1098 { "udf15",      0xfbf00000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
1099 { "udf15",      0xfdf00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1100 { "udf20",      0xf500,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1101 { "udf21",      0xf510,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1102 { "udf22",      0xf520,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1103 { "udf23",      0xf530,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1104 { "udf24",      0xf540,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1105 { "udf25",      0xf550,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1106 { "udf26",      0xf560,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1107 { "udf27",      0xf570,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1108 { "udf28",      0xf580,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1109 { "udf29",      0xf590,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1110 { "udf30",      0xf5a0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1111 { "udf31",      0xf5b0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1112 { "udf32",      0xf5c0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1113 { "udf33",      0xf5d0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1114 { "udf34",      0xf5e0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1115 { "udf35",      0xf5f0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
1116 { "udfu00",     0xf90400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1117 { "udfu00",     0xfb040000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1118 { "udfu00",     0xfd040000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1119 { "udfu01",     0xf91400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1120 { "udfu01",     0xfb140000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1121 { "udfu01",     0xfd140000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1122 { "udfu02",     0xf92400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1123 { "udfu02",     0xfb240000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1124 { "udfu02",     0xfd240000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1125 { "udfu03",     0xf93400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1126 { "udfu03",     0xfb340000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1127 { "udfu03",     0xfd340000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1128 { "udfu04",     0xf94400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1129 { "udfu04",     0xfb440000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1130 { "udfu04",     0xfd440000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1131 { "udfu05",     0xf95400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1132 { "udfu05",     0xfb540000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1133 { "udfu05",     0xfd540000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1134 { "udfu06",     0xf96400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1135 { "udfu06",     0xfb640000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1136 { "udfu06",     0xfd640000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1137 { "udfu07",     0xf97400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1138 { "udfu07",     0xfb740000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1139 { "udfu07",     0xfd740000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1140 { "udfu08",     0xf98400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1141 { "udfu08",     0xfb840000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1142 { "udfu08",     0xfd840000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1143 { "udfu09",     0xf99400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1144 { "udfu09",     0xfb940000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1145 { "udfu09",     0xfd940000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1146 { "udfu10",     0xf9a400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1147 { "udfu10",     0xfba40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1148 { "udfu10",     0xfda40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1149 { "udfu11",     0xf9b400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1150 { "udfu11",     0xfbb40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1151 { "udfu11",     0xfdb40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1152 { "udfu12",     0xf9c400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1153 { "udfu12",     0xfbc40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1154 { "udfu12",     0xfdc40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1155 { "udfu13",     0xf9d400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1156 { "udfu13",     0xfbd40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1157 { "udfu13",     0xfdd40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1158 { "udfu14",     0xf9e400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1159 { "udfu14",     0xfbe40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1160 { "udfu14",     0xfde40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1161 { "udfu15",     0xf9f400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
1162 { "udfu15",     0xfbf40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
1163 { "udfu15",     0xfdf40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
1164
1165 { "putx",       0xf500,      0xfff0,      0,    FMT_D0, AM30,   {DN01}},
1166 { "getx",       0xf6f0,      0xfff0,      0,    FMT_D0, AM30,   {DN01}},
1167 { "mulq",       0xf600,      0xfff0,      0,    FMT_D0, AM30,   {DM1, DN0}},
1168 { "mulq",       0xf90000,    0xfffc00,    0,    FMT_D1, AM30,   {SIMM8, DN0}},
1169 { "mulq",       0xfb000000,  0xfffc0000,  0,    FMT_D2, AM30,   {SIMM16, DN0}},
1170 { "mulq",       0xfd000000,  0xfffc0000,  0,    FMT_D4, AM30,   {IMM32, DN0}},
1171 { "mulqu",      0xf610,      0xfff0,      0,    FMT_D0, AM30,   {DM1, DN0}},
1172 { "mulqu",      0xf91400,    0xfffc00,    0,    FMT_D1, AM30,   {SIMM8, DN0}},
1173 { "mulqu",      0xfb140000,  0xfffc0000,  0,    FMT_D2, AM30,   {SIMM16, DN0}},
1174 { "mulqu",      0xfd140000,  0xfffc0000,  0,    FMT_D4, AM30,   {IMM32, DN0}},
1175 { "sat16",      0xf640,      0xfff0,      0,    FMT_D0, AM30,   {DM1, DN0}},
1176 /* start-sanitize-am33 */
1177 { "sat16",      0xf9ab00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
1178 /* end-sanitize-am33 */
1179
1180 { "sat24",      0xf650,      0xfff0,      0,    FMT_D0, AM30,   {DM1, DN0}},
1181 /* start-sanitize-am33 */
1182 { "sat24",      0xfbaf0000,  0xffff00ff,  0,    FMT_D7, AM33,   {RM2, RN0}},
1183 /* end-sanitize-am33 */
1184
1185 /* start-sanitize-am33 */
1186 { "bsch",       0xfbff0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
1187 /* end-sanitize-am33 */
1188 { "bsch",       0xf670,      0xfff0,      0,    FMT_D0, AM30,   {DM1, DN0}},
1189 /* start-sanitize-am33 */
1190 { "bsch",       0xf9fb00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
1191 /* end-sanitize-am33 */
1192
1193 /* Extension.  We need some instruction to trigger "emulated syscalls"
1194    for our simulator.  */
1195 /* start-sanitize-am33 */
1196 { "syscall",    0xf0e0,      0xfff0,      0,    FMT_D0, AM33,   {IMM4}},
1197 /* end-sanitize-am33 */
1198 { "syscall",    0xf0c0,      0xffff,      0,    FMT_D0, 0,      {UNUSED}},
1199
1200 /* Extension.  When talking to the simulator, gdb requires some instruction
1201    that will trigger a "breakpoint" (really just an instruction that isn't
1202    otherwise used by the tools.  This instruction must be the same size
1203    as the smallest instruction on the target machine.  In the case of the
1204    mn10x00 the "break" instruction must be one byte.  0xff is available on
1205    both mn10x00 architectures.  */
1206 { "break",      0xff,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
1207
1208 /* start-sanitize-am33 */
1209 { "add_add",    0xf7000000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1210 { "add_add",    0xf7100000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1211 { "add_add",    0xf7040000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1212 { "add_add",    0xf7140000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1213 { "add_sub",    0xf7200000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1214 { "add_sub",    0xf7300000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1215 { "add_sub",    0xf7240000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1216 { "add_sub",    0xf7340000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1217 { "add_cmp",    0xf7400000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1218 { "add_cmp",    0xf7500000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1219 { "add_cmp",    0xf7440000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1220 { "add_cmp",    0xf7540000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1221 { "add_mov",    0xf7600000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1222 { "add_mov",    0xf7700000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1223 { "add_mov",    0xf7640000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1224 { "add_mov",    0xf7740000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1225 { "add_asr",    0xf7800000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1226 { "add_asr",    0xf7900000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1227 { "add_asr",    0xf7840000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1228 { "add_asr",    0xf7940000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1229 { "add_lsr",    0xf7a00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1230 { "add_lsr",    0xf7b00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1231 { "add_lsr",    0xf7a40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1232 { "add_lsr",    0xf7b40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1233 { "add_asl",    0xf7c00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1234 { "add_asl",    0xf7d00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1235 { "add_asl",    0xf7c40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1236 { "add_asl",    0xf7d40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1237 { "cmp_add",    0xf7010000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1238 { "cmp_add",    0xf7110000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1239 { "cmp_add",    0xf7050000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1240 { "cmp_add",    0xf7150000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1241 { "cmp_sub",    0xf7210000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1242 { "cmp_sub",    0xf7310000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1243 { "cmp_sub",    0xf7250000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1244 { "cmp_sub",    0xf7350000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1245 { "cmp_mov",    0xf7610000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1246 { "cmp_mov",    0xf7710000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1247 { "cmp_mov",    0xf7650000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1248 { "cmp_mov",    0xf7750000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1249 { "cmp_asr",    0xf7810000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1250 { "cmp_asr",    0xf7910000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1251 { "cmp_asr",    0xf7850000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1252 { "cmp_asr",    0xf7950000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1253 { "cmp_lsr",    0xf7a10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1254 { "cmp_lsr",    0xf7b10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1255 { "cmp_lsr",    0xf7a50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1256 { "cmp_lsr",    0xf7b50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1257 { "cmp_asl",    0xf7c10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1258 { "cmp_asl",    0xf7d10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1259 { "cmp_asl",    0xf7c50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1260 { "cmp_asl",    0xf7d50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1261 { "sub_add",    0xf7020000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1262 { "sub_add",    0xf7120000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1263 { "sub_add",    0xf7060000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1264 { "sub_add",    0xf7160000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1265 { "sub_sub",    0xf7220000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1266 { "sub_sub",    0xf7320000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1267 { "sub_sub",    0xf7260000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1268 { "sub_sub",    0xf7360000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1269 { "sub_cmp",    0xf7420000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1270 { "sub_cmp",    0xf7520000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1271 { "sub_cmp",    0xf7460000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1272 { "sub_cmp",    0xf7560000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1273 { "sub_mov",    0xf7620000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1274 { "sub_mov",    0xf7720000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1275 { "sub_mov",    0xf7660000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1276 { "sub_mov",    0xf7760000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1277 { "sub_asr",    0xf7820000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1278 { "sub_asr",    0xf7920000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1279 { "sub_asr",    0xf7860000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1280 { "sub_asr",    0xf7960000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1281 { "sub_lsr",    0xf7a20000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1282 { "sub_lsr",    0xf7b20000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1283 { "sub_lsr",    0xf7a60000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1284 { "sub_lsr",    0xf7b60000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1285 { "sub_asl",    0xf7c20000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1286 { "sub_asl",    0xf7d20000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1287 { "sub_asl",    0xf7c60000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1288 { "sub_asl",    0xf7d60000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1289 { "mov_add",    0xf7030000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1290 { "mov_add",    0xf7130000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1291 { "mov_add",    0xf7070000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1292 { "mov_add",    0xf7170000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1293 { "mov_sub",    0xf7230000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1294 { "mov_sub",    0xf7330000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1295 { "mov_sub",    0xf7270000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1296 { "mov_sub",    0xf7370000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1297 { "mov_cmp",    0xf7430000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1298 { "mov_cmp",    0xf7530000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1299 { "mov_cmp",    0xf7470000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1300 { "mov_cmp",    0xf7570000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1301 { "mov_mov",    0xf7630000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1302 { "mov_mov",    0xf7730000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1303 { "mov_mov",    0xf7670000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1304 { "mov_mov",    0xf7770000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
1305 { "mov_asr",    0xf7830000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1306 { "mov_asr",    0xf7930000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1307 { "mov_asr",    0xf7870000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1308 { "mov_asr",    0xf7970000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1309 { "mov_lsr",    0xf7a30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1310 { "mov_lsr",    0xf7b30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1311 { "mov_lsr",    0xf7a70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1312 { "mov_lsr",    0xf7b70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1313 { "mov_asl",    0xf7c30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1314 { "mov_asl",    0xf7d30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1315 { "mov_asl",    0xf7c70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
1316 { "mov_asl",    0xf7d70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
1317 { "and_add",    0xf7080000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1318 { "and_add",    0xf7180000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1319 { "and_sub",    0xf7280000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1320 { "and_sub",    0xf7380000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1321 { "and_cmp",    0xf7480000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1322 { "and_cmp",    0xf7580000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1323 { "and_mov",    0xf7680000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1324 { "and_mov",    0xf7780000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1325 { "and_asr",    0xf7880000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1326 { "and_asr",    0xf7980000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1327 { "and_lsr",    0xf7a80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1328 { "and_lsr",    0xf7b80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1329 { "and_asl",    0xf7c80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1330 { "and_asl",    0xf7d80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1331 { "dmach_add",  0xf7090000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1332 { "dmach_add",  0xf7190000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1333 { "dmach_sub",  0xf7290000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1334 { "dmach_sub",  0xf7390000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1335 { "dmach_cmp",  0xf7490000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1336 { "dmach_cmp",  0xf7590000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1337 { "dmach_mov",  0xf7690000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1338 { "dmach_mov",  0xf7790000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1339 { "dmach_asr",  0xf7890000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1340 { "dmach_asr",  0xf7990000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1341 { "dmach_lsr",  0xf7a90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1342 { "dmach_lsr",  0xf7b90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1343 { "dmach_asl",  0xf7c90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1344 { "dmach_asl",  0xf7d90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1345 { "xor_add",    0xf70a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1346 { "xor_add",    0xf71a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1347 { "xor_sub",    0xf72a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1348 { "xor_sub",    0xf73a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1349 { "xor_cmp",    0xf74a0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1350 { "xor_cmp",    0xf75a0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1351 { "xor_mov",    0xf76a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1352 { "xor_mov",    0xf77a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1353 { "xor_asr",    0xf78a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1354 { "xor_asr",    0xf79a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1355 { "xor_lsr",    0xf7aa0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1356 { "xor_lsr",    0xf7ba0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1357 { "xor_asl",    0xf7ca0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1358 { "xor_asl",    0xf7da0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1359 { "swhw_add",   0xf70b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1360 { "swhw_add",   0xf71b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1361 { "swhw_sub",   0xf72b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1362 { "swhw_sub",   0xf73b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1363 { "swhw_cmp",   0xf74b0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1364 { "swhw_cmp",   0xf75b0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1365 { "swhw_mov",   0xf76b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1366 { "swhw_mov",   0xf77b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1367 { "swhw_asr",   0xf78b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1368 { "swhw_asr",   0xf79b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1369 { "swhw_lsr",   0xf7ab0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1370 { "swhw_lsr",   0xf7bb0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1371 { "swhw_asl",   0xf7cb0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1372 { "swhw_asl",   0xf7db0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1373 { "or_add",     0xf70c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1374 { "or_add",     0xf71c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1375 { "or_sub",     0xf72c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1376 { "or_sub",     0xf73c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1377 { "or_cmp",     0xf74c0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1378 { "or_cmp",     0xf75c0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1379 { "or_mov",     0xf76c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1380 { "or_mov",     0xf77c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1381 { "or_asr",     0xf78c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1382 { "or_asr",     0xf79c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1383 { "or_lsr",     0xf7ac0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1384 { "or_lsr",     0xf7bc0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1385 { "or_asl",     0xf7cc0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1386 { "or_asl",     0xf7dc0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1387 { "sat16_add",  0xf70d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1388 { "sat16_add",  0xf71d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1389 { "sat16_sub",  0xf72d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1390 { "sat16_sub",  0xf73d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1391 { "sat16_cmp",  0xf74d0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1392 { "sat16_cmp",  0xf75d0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1393 { "sat16_mov",  0xf76d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1394 { "sat16_mov",  0xf77d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
1395 { "sat16_asr",  0xf78d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1396 { "sat16_asr",  0xf79d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1397 { "sat16_lsr",  0xf7ad0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1398 { "sat16_lsr",  0xf7bd0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1399 { "sat16_asl",  0xf7cd0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
1400 { "sat16_asl",  0xf7dd0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
1401 /* Ugh.  Synthetic instructions.  */
1402 { "add_and",    0xf7080000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1403 { "add_and",    0xf7180000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1404 { "add_dmach",  0xf7090000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1405 { "add_dmach",  0xf7190000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1406 { "add_or",     0xf70c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1407 { "add_or",     0xf71c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1408 { "add_sat16",  0xf70d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1409 { "add_sat16",  0xf71d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1410 { "add_swhw",   0xf70b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1411 { "add_swhw",   0xf71b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1412 { "add_xor",    0xf70a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1413 { "add_xor",    0xf71a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1414 { "asl_add",    0xf7c00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1415 { "asl_add",    0xf7d00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1416 { "asl_add",    0xf7c40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1417 { "asl_add",    0xf7d40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1418 { "asl_and",    0xf7c80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1419 { "asl_and",    0xf7d80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1420 { "asl_cmp",    0xf7c10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1421 { "asl_cmp",    0xf7d10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4, }},
1422 { "asl_cmp",    0xf7c50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1423 { "asl_cmp",    0xf7d50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1424 { "asl_dmach",  0xf7c90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1425 { "asl_dmach",  0xf7d90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1426 { "asl_mov",    0xf7c30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1427 { "asl_mov",    0xf7d30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1428 { "asl_mov",    0xf7c70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1429 { "asl_mov",    0xf7d70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1430 { "asl_or",     0xf7cc0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1431 { "asl_or",     0xf7dc0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1432 { "asl_sat16",  0xf7cd0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1433 { "asl_sat16",  0xf7dd0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1434 { "asl_sub",    0xf7c20000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1435 { "asl_sub",    0xf7d20000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1436 { "asl_sub",    0xf7c60000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1437 { "asl_sub",    0xf7d60000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1438 { "asl_swhw",   0xf7cb0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1439 { "asl_swhw",   0xf7db0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1440 { "asl_xor",    0xf7ca0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1441 { "asl_xor",    0xf7da0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1442 { "asr_add",    0xf7800000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1443 { "asr_add",    0xf7900000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1444 { "asr_add",    0xf7840000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1445 { "asr_add",    0xf7940000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1446 { "asr_and",    0xf7880000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1447 { "asr_and",    0xf7980000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1448 { "asr_cmp",    0xf7810000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1449 { "asr_cmp",    0xf7910000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4, }},
1450 { "asr_cmp",    0xf7850000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1451 { "asr_cmp",    0xf7950000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1452 { "asr_dmach",  0xf7890000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1453 { "asr_dmach",  0xf7990000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1454 { "asr_mov",    0xf7830000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1455 { "asr_mov",    0xf7930000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1456 { "asr_mov",    0xf7870000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1457 { "asr_mov",    0xf7970000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1458 { "asr_or",     0xf78c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1459 { "asr_or",     0xf79c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1460 { "asr_sat16",  0xf78d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1461 { "asr_sat16",  0xf79d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1462 { "asr_sub",    0xf7820000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1463 { "asr_sub",    0xf7920000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1464 { "asr_sub",    0xf7860000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1465 { "asr_sub",    0xf7960000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1466 { "asr_swhw",   0xf78b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1467 { "asr_swhw",   0xf79b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1468 { "asr_xor",    0xf78a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1469 { "asr_xor",    0xf79a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1470 { "cmp_and",    0xf7480000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1471 { "cmp_and",    0xf7580000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1472 { "cmp_dmach",  0xf7490000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1473 { "cmp_dmach",  0xf7590000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1474 { "cmp_or",     0xf74c0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1475 { "cmp_or",     0xf75c0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1476 { "cmp_sat16",  0xf74d0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1477 { "cmp_sat16",  0xf75d0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1478 { "cmp_swhw",   0xf74b0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1479 { "cmp_swhw",   0xf75b0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1480 { "cmp_xor",    0xf74a0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1481 { "cmp_xor",    0xf75a0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1482 { "lsr_add",    0xf7a00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1483 { "lsr_add",    0xf7b00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1484 { "lsr_add",    0xf7a40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1485 { "lsr_add",    0xf7b40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1486 { "lsr_and",    0xf7a80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1487 { "lsr_and",    0xf7b80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1488 { "lsr_cmp",    0xf7a10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1489 { "lsr_cmp",    0xf7b10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4, }},
1490 { "lsr_cmp",    0xf7a50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1491 { "lsr_cmp",    0xf7b50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1492 { "lsr_dmach",  0xf7a90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1493 { "lsr_dmach",  0xf7b90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1494 { "lsr_mov",    0xf7a30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1495 { "lsr_mov",    0xf7b30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1496 { "lsr_mov",    0xf7a70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1497 { "lsr_mov",    0xf7b70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1498 { "lsr_or",     0xf7ac0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1499 { "lsr_or",     0xf7bc0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1500 { "lsr_sat16",  0xf7ad0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1501 { "lsr_sat16",  0xf7bd0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1502 { "lsr_sub",    0xf7a20000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1503 { "lsr_sub",    0xf7b20000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1504 { "lsr_sub",    0xf7a60000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
1505 { "lsr_sub",    0xf7b60000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
1506 { "lsr_swhw",   0xf7ab0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1507 { "lsr_swhw",   0xf7bb0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1508 { "lsr_xor",    0xf7aa0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1509 { "lsr_xor",    0xf7ba0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
1510 { "mov_and",    0xf7680000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1511 { "mov_and",    0xf7780000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1512 { "mov_dmach",  0xf7690000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1513 { "mov_dmach",  0xf7790000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1514 { "mov_or",     0xf76c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1515 { "mov_or",     0xf77c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1516 { "mov_sat16",  0xf76d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1517 { "mov_sat16",  0xf77d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1518 { "mov_swhw",   0xf76b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1519 { "mov_swhw",   0xf77b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1520 { "mov_xor",    0xf76a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1521 { "mov_xor",    0xf77a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1522 { "sub_and",    0xf7280000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1523 { "sub_and",    0xf7380000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1524 { "sub_dmach",  0xf7290000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1525 { "sub_dmach",  0xf7390000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1526 { "sub_or",     0xf72c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1527 { "sub_or",     0xf73c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1528 { "sub_sat16",  0xf72d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1529 { "sub_sat16",  0xf73d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1530 { "sub_swhw",   0xf72b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1531 { "sub_swhw",   0xf73b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1532 { "sub_xor",    0xf72a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
1533 { "sub_xor",    0xf73a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
1534 { "mov_llt",    0xf7e00000,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1535 { "mov_lgt",    0xf7e00001,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1536 { "mov_lge",    0xf7e00002,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1537 { "mov_lle",    0xf7e00003,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1538 { "mov_lcs",    0xf7e00004,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1539 { "mov_lhi",    0xf7e00005,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1540 { "mov_lcc",    0xf7e00006,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1541 { "mov_lls",    0xf7e00007,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1542 { "mov_leq",    0xf7e00008,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1543 { "mov_lne",    0xf7e00009,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1544 { "mov_lra",    0xf7e0000a,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1545 { "llt_mov",    0xf7e00000,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1546 { "lgt_mov",    0xf7e00001,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1547 { "lge_mov",    0xf7e00002,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1548 { "lle_mov",    0xf7e00003,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1549 { "lcs_mov",    0xf7e00004,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1550 { "lhi_mov",    0xf7e00005,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1551 { "lcc_mov",    0xf7e00006,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1552 { "lls_mov",    0xf7e00007,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1553 { "leq_mov",    0xf7e00008,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1554 { "lne_mov",    0xf7e00009,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1555 { "lra_mov",    0xf7e0000a,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
1556 /* end-sanitize-am33 */
1557  
1558 { 0, 0, 0, 0, 0, 0, {0}},
1559
1560 } ;
1561
1562 const int mn10300_num_opcodes =
1563   sizeof (mn10300_opcodes) / sizeof (mn10300_opcodes[0]);
1564
1565 \f