*** empty log message ***
[platform/upstream/binutils.git] / include / m68k-opcode.h
1 /* Opcode table for m680[01234]0/m6888[12].
2    Copyright (C) 1989, 1991 Free Software Foundation.
3
4 This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
5
6 Both GDB and GAS are free software; you can redistribute and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 1, or (at your option)
9 any later version.
10
11 GDB and GAS are distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GDB or GAS; see the file COPYING.  If not, write to
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
19
20 enum m68k_architecture {
21         ARCH_68000 = 0,
22         ARCH_68010,
23         ARCH_68020,
24         ARCH_68030,
25         ARCH_68040,
26 };
27
28 static char *architecture_pname[] = {
29         "68000",
30         "68010",
31         "68020",
32         "68030",
33         "68040",
34         NULL,
35 };
36
37 struct m68k_opcode {
38         char *name;
39         unsigned long opcode;
40         unsigned long match;
41         char *args;
42         enum m68k_architecture arch;
43 };
44
45 /* We store four bytes of opcode for all opcodes because that
46    is the most any of them need.  The actual length of an instruction
47    is always at least 2 bytes, and is as much longer as necessary to
48    hold the operands it has.
49
50    The match component is a mask saying which bits must match
51    particular opcode in order for an instruction to be an instance
52    of that opcode.
53
54    The args component is a string containing two characters
55    for each operand of the instruction.  The first specifies
56    the kind of operand; the second, the place it is stored.  */
57
58 /* Kinds of operands:
59    D  data register only.  Stored as 3 bits.
60    A  address register only.  Stored as 3 bits.
61    R  either kind of register.  Stored as 4 bits.
62    F  floating point coprocessor register only.   Stored as 3 bits.
63    O  an offset (or width): immediate data 0-31 or data register.
64       Stored as 6 bits in special format for BF... insns.
65    +  autoincrement only.  Stored as 3 bits (number of the address register).
66    -  autodecrement only.  Stored as 3 bits (number of the address register).
67    Q  quick immediate data.  Stored as 3 bits.
68       This matches an immediate operand only when value is in range 1 .. 8.
69    M  moveq immediate data.  Stored as 8 bits.
70       This matches an immediate operand only when value is in range -128..127
71    T  trap vector immediate data.  Stored as 4 bits.
72
73    k  K-factor for fmove.p instruction.   Stored as a 7-bit constant or
74       a three bit register offset, depending on the field type.
75
76    #  immediate data.  Stored in special places (b, w or l)
77       which say how many bits to store.
78    ^  immediate data for floating point instructions.   Special places
79       are offset by 2 bytes from '#'...
80    B  pc-relative address, converted to an offset
81       that is treated as immediate data.
82    d  displacement and register.  Stores the register as 3 bits
83       and stores the displacement in the entire second word.
84
85    C  the CCR.  No need to store it; this is just for filtering validity.
86    S  the SR.  No need to store, just as with CCR.
87    U  the USP.  No need to store, just as with CCR.
88
89    I  Coprocessor ID.   Not printed if 1.   The Coprocessor ID is always
90       extracted from the 'd' field of word one, which means that an extended
91       coprocessor opcode can be skipped using the 'i' place, if needed.
92
93    s  System Control register for the floating point coprocessor.
94    S  List of system control registers for floating point coprocessor.
95
96    J  Misc register for movec instruction, stored in 'j' format.
97         Possible values:
98         000     SFC     Source Function Code reg
99         001     DFC     Data Function Code reg
100         002     CACR    Cache Control Register
101         800     USP     User Stack Pointer
102         801     VBR     Vector Base reg
103         802     CAAR    Cache Address Register
104         803     MSP     Master Stack Pointer
105         804     ISP     Interrupt Stack Pointer
106
107     L  Register list of the type d0-d7/a0-a7 etc.
108        (New!  Improved!  Can also hold fp0-fp7, as well!)
109        The assembler tries to see if the registers match the insn by
110        looking at where the insn wants them stored.
111
112     l  Register list like L, but with all the bits reversed.
113        Used for going the other way. . .
114
115  They are all stored as 6 bits using an address mode and a register number;
116  they differ in which addressing modes they match.
117
118    *  all                                       (modes 0-6,7.*)
119    ~  alterable memory                          (modes 2-6,7.0,7.1)(not 0,1,7.~)
120    %  alterable                                 (modes 0-6,7.0,7.1)(not 7.~)
121    ;  data                                      (modes 0,2-6,7.*)(not 1)
122    @  data, but not immediate                   (modes 0,2-6,7.? ? ?)(not 1,7.?)  This may really be ;, the 68020 book says it is
123    !  control                                   (modes 2,5,6,7.*-)(not 0,1,3,4,7.4)
124    &  alterable control                         (modes 2,5,6,7.0,7.1)(not 0,1,7.? ? ?)
125    $  alterable data                            (modes 0,2-6,7.0,7.1)(not 1,7.~)
126    ?  alterable control, or data register       (modes 0,2,5,6,7.0,7.1)(not 1,3,4,7.~)
127    /  control, or data register                 (modes 0,2,5,6,7.0,7.1,7.2,7.3)(not 1,3,4,7.4)
128 */
129
130 /* JF: for the 68851 */
131 /*
132    I didn't use much imagination in choosing the 
133    following codes, so many of them aren't very
134    mnemonic. -rab
135
136    P  pmmu register
137         Possible values:
138         000     TC      Translation Control reg
139         100     CAL     Current Access Level
140         101     VAL     Validate Access Level
141         110     SCC     Stack Change Control
142         111     AC      Access Control
143
144    W  wide pmmu registers
145         Possible values:
146         001     DRP     Dma Root Pointer
147         010     SRP     Supervisor Root Pointer
148         011     CRP     Cpu Root Pointer
149
150    f    function code register
151         0       SFC
152         1       DFC
153
154    V    VAL register only
155
156    X    BADx, BACx
157         100     BAD     Breakpoint Acknowledge Data
158         101     BAC     Breakpoint Acknowledge Control
159
160    Y    PSR
161    Z    PCSR
162
163    |    memory          (modes 2-6, 7.*)
164
165 */
166
167 /* Places to put an operand, for non-general operands:
168    s  source, low bits of first word.
169    d  dest, shifted 9 in first word
170    1  second word, shifted 12
171    2  second word, shifted 6
172    3  second word, shifted 0
173    4  third word, shifted 12
174    5  third word, shifted 6
175    6  third word, shifted 0
176    7  second word, shifted 7
177    8  second word, shifted 10
178    D  store in both place 1 and place 3; for divul and divsl.
179    B  first word, low byte, for branch displacements
180    W  second word (entire), for branch displacements
181    L  second and third words (entire), for branch displacements
182    b  second word, low byte
183    w  second word (entire) [variable word/long branch offset for dbra]
184    l  second and third word (entire)
185    g  variable branch offset for bra and similar instructions.
186       The place to store depends on the magnitude of offset.
187    t  store in both place 7 and place 8; for floating point operations
188    c  branch offset for cpBcc operations.
189       The place to store is word two if bit six of word one is zero,
190       and words two and three if bit six of word one is one.
191    i  Increment by two, to skip over coprocessor extended operands.   Only
192       works with the 'I' format.
193    k  Dynamic K-factor field.   Bits 6-4 of word 2, used as a register number.
194       Also used for dynamic fmovem instruction.
195    C  floating point coprocessor constant - 7 bits.  Also used for static
196       K-factors...
197    j  Movec register #, stored in 12 low bits of second word.
198
199  Places to put operand, for general operands:
200    d  destination, shifted 6 bits in first word
201    b  source, at low bit of first word, and immediate uses one byte
202    w  source, at low bit of first word, and immediate uses two bytes
203    l  source, at low bit of first word, and immediate uses four bytes
204    s  source, at low bit of first word.
205       Used sometimes in contexts where immediate is not allowed anyway.
206    f  single precision float, low bit of 1st word, immediate uses 4 bytes
207    F  double precision float, low bit of 1st word, immediate uses 8 bytes
208    x  extended precision float, low bit of 1st word, immediate uses 12 bytes
209    p  packed float, low bit of 1st word, immediate uses 12 bytes
210 */
211
212 #define one(x) ((x) << 16)
213 #define two(x, y) (((x) << 16) + y)
214
215 /*
216         *** DANGER WILL ROBINSON ***
217
218    The assembler requires that all instances of the same mnemonic must be
219    consecutive.  If they aren't, the assembler will bomb at runtime
220  */
221 struct m68k_opcode m68k_opcodes[] =
222 {
223 {"abcd",        one(0140400),           one(0170770), "DsDd", ARCH_68000 },
224 {"abcd",        one(0140410),           one(0170770), "-s-d", ARCH_68000 },
225
226                 /* Add instructions */
227 {"addal",       one(0150700),           one(0170700), "*lAd", ARCH_68000 },
228 {"addaw",       one(0150300),           one(0170700), "*wAd", ARCH_68000 },
229 {"addib",       one(0003000),           one(0177700), "#b$b", ARCH_68000 },
230 {"addil",       one(0003200),           one(0177700), "#l$l", ARCH_68000 },
231 {"addiw",       one(0003100),           one(0177700), "#w$w", ARCH_68000 },
232 {"addqb",       one(0050000),           one(0170700), "Qd$b", ARCH_68000 },
233 {"addql",       one(0050200),           one(0170700), "Qd%l", ARCH_68000 },
234 {"addqw",       one(0050100),           one(0170700), "Qd%w", ARCH_68000 },
235
236 {"addb",        one(0050000),           one(0170700),           "Qd$b"},        /* addq written as add */
237 {"addb",        one(0003000),           one(0177700),           "#b$b"},        /* addi written as add */
238 {"addb",        one(0150000),           one(0170700),           ";bDd"},        /* addb <ea>,   Dd */
239 {"addb",        one(0150400),           one(0170700),           "Dd~b"},        /* addb Dd,     <ea> */
240
241 {"addw",        one(0050100),           one(0170700),           "Qd%w"},        /* addq written as add */
242 {"addw",        one(0003100),           one(0177700),           "#w$w"},        /* addi written as add */
243 {"addw",        one(0150300),           one(0170700),           "*wAd"},        /* adda written as add */
244 {"addw",        one(0150100),           one(0170700),           "*wDd"},        /* addw <ea>,   Dd */
245 {"addw",        one(0150500),           one(0170700),           "Dd~w"},        /* addw Dd,     <ea> */
246
247 {"addl",        one(0050200),           one(0170700),           "Qd%l"},        /* addq written as add */
248 {"addl",        one(0003200),           one(0177700),           "#l$l"},        /* addi written as add */
249 {"addl",        one(0150700),           one(0170700),           "*lAd"},        /* adda written as add */
250 {"addl",        one(0150200),           one(0170700),           "*lDd"},        /* addl <ea>,   Dd */
251 {"addl",        one(0150600),           one(0170700),           "Dd~l"},        /* addl Dd,     <ea> */
252
253 {"addxb",       one(0150400),           one(0170770),           "DsDd"},
254 {"addxb",       one(0150410),           one(0170770),           "-s-d"},
255 {"addxl",       one(0150600),           one(0170770),           "DsDd"},
256 {"addxl",       one(0150610),           one(0170770),           "-s-d"},
257 {"addxw",       one(0150500),           one(0170770),           "DsDd"},
258 {"addxw",       one(0150510),           one(0170770),           "-s-d"},
259
260 {"andib",       one(0001000),           one(0177700),           "#b$b"},
261 {"andib",       one(0001074),           one(0177777),           "#bCb"},        /* andi to ccr */
262 {"andiw",       one(0001100),           one(0177700),           "#w$w"},
263 {"andiw",       one(0001174),           one(0177777),           "#wSw"},        /* andi to sr */
264 {"andil",       one(0001200),           one(0177700),           "#l$l"},
265
266 {"andb",        one(0001000),           one(0177700),           "#b$b"},        /* andi written as or */
267 {"andb",        one(0001074),           one(0177777),           "#bCb"},        /* andi to ccr */
268 {"andb",        one(0140000),           one(0170700),           ";bDd"},        /* memory to register */
269 {"andb",        one(0140400),           one(0170700),           "Dd~b"},        /* register to memory */
270 {"andw",        one(0001100),           one(0177700),           "#w$w"},        /* andi written as or */
271 {"andw",        one(0001174),           one(0177777),           "#wSw"},        /* andi to sr */
272 {"andw",        one(0140100),           one(0170700),           ";wDd"},        /* memory to register */
273 {"andw",        one(0140500),           one(0170700),           "Dd~w"},        /* register to memory */
274 {"andl",        one(0001200),           one(0177700),           "#l$l"},        /* andi written as or */
275 {"andl",        one(0140200),           one(0170700),           ";lDd"},        /* memory to register */
276 {"andl",        one(0140600),           one(0170700),           "Dd~l"},        /* register to memory */
277
278 {"aslb",        one(0160400),           one(0170770),           "QdDs"},
279 {"aslb",        one(0160440),           one(0170770),           "DdDs"},
280 {"asll",        one(0160600),           one(0170770),           "QdDs"},
281 {"asll",        one(0160640),           one(0170770),           "DdDs"},
282 {"aslw",        one(0160500),           one(0170770),           "QdDs"},
283 {"aslw",        one(0160540),           one(0170770),           "DdDs"},
284 {"aslw",        one(0160700),           one(0177700),           "~s"},  /* Shift memory */
285 {"asrb",        one(0160000),           one(0170770),           "QdDs"},
286 {"asrb",        one(0160040),           one(0170770),           "DdDs"},
287 {"asrl",        one(0160200),           one(0170770),           "QdDs"},
288 {"asrl",        one(0160240),           one(0170770),           "DdDs"},
289 {"asrw",        one(0160100),           one(0170770),           "QdDs"},
290 {"asrw",        one(0160140),           one(0170770),           "DdDs"},
291 {"asrw",        one(0160300),           one(0177700),           "~s"},  /* Shift memory */
292
293 /* Fixed-size branches with 16-bit offsets */
294
295 {"bhi",         one(0061000),           one(0177777),           "BW"},
296 {"bls",         one(0061400),           one(0177777),           "BW"},
297 {"bcc",         one(0062000),           one(0177777),           "BW"},
298 {"jfnlt",               one(0062000),           one(0177777),           "BW"},
299 {"bcs",         one(0062400),           one(0177777),           "BW"},
300 {"bne",         one(0063000),           one(0177777),           "BW"},
301 {"beq",         one(0063400),           one(0177777),           "BW"},
302 {"bvc",         one(0064000),           one(0177777),           "BW"},
303 {"bvs",         one(0064400),           one(0177777),           "BW"},
304 {"bpl",         one(0065000),           one(0177777),           "BW"},
305 {"bmi",         one(0065400),           one(0177777),           "BW"},
306 {"bge",         one(0066000),           one(0177777),           "BW"},
307 {"blt",         one(0066400),           one(0177777),           "BW"},
308 {"bgt",         one(0067000),           one(0177777),           "BW"},
309 {"ble",         one(0067400),           one(0177777),           "BW"},
310 {"jfngt",               one(0067400),           one(0177777),           "BW"},
311 {"bra",         one(0060000),           one(0177777),           "BW"},
312 {"bsr",         one(0060400),           one(0177777),           "BW"},
313
314 /* Fixed-size branches with short (byte) offsets */
315
316 {"bhis",        one(0061000),           one(0177400),           "BB"},
317 {"blss",        one(0061400),           one(0177400),           "BB"},
318 {"bccs",        one(0062000),           one(0177400),           "BB"},
319 {"bcss",        one(0062400),           one(0177400),           "BB"},
320 {"bnes",        one(0063000),           one(0177400),           "BB"},
321 {"beqs",        one(0063400),           one(0177400),           "BB"},
322 {"jfeq",        one(0063400),           one(0177400),           "BB"},
323 {"bvcs",        one(0064000),           one(0177400),           "BB"},
324 {"bvss",        one(0064400),           one(0177400),           "BB"},
325 {"bpls",        one(0065000),           one(0177400),           "BB"},
326 {"bmis",        one(0065400),           one(0177400),           "BB"},
327 {"bges",        one(0066000),           one(0177400),           "BB"},
328 {"blts",        one(0066400),           one(0177400),           "BB"},
329 {"bgts",        one(0067000),           one(0177400),           "BB"},
330 {"bles",        one(0067400),           one(0177400),           "BB"},
331 {"bras",        one(0060000),           one(0177400),           "BB"},
332 {"bsrs",        one(0060400),           one(0177400),           "BB"},
333
334 /* Fixed-size branches with long (32-bit) offsets */
335
336 {"bhil",        one(0061377),           one(0177777),           "BL"},
337 {"blsl",        one(0061777),           one(0177777),           "BL"},
338 {"bccl",        one(0062377),           one(0177777),           "BL"},
339 {"bcsl",        one(0062777),           one(0177777),           "BL"},
340 {"bnel",        one(0063377),           one(0177777),           "BL"},
341 {"beql",        one(0063777),           one(0177777),           "BL"},
342 {"bvcl",        one(0064377),           one(0177777),           "BL"},
343 {"bvsl",        one(0064777),           one(0177777),           "BL"},
344 {"bpll",        one(0065377),           one(0177777),           "BL"},
345 {"bmil",        one(0065777),           one(0177777),           "BL"},
346 {"bgel",        one(0066377),           one(0177777),           "BL"},
347 {"bltl",        one(0066777),           one(0177777),           "BL"},
348 {"bgtl",        one(0067377),           one(0177777),           "BL"},
349 {"blel",        one(0067777),           one(0177777),           "BL"},
350 {"bral",        one(0060377),           one(0177777),           "BL"},
351 {"bsrl",        one(0060777),           one(0177777),           "BL"},
352
353 /* We now return you to our regularly scheduled instruction set */
354
355 {"bchg",        one(0000500),           one(0170700),           "Dd$s"},
356 {"bchg",        one(0004100),           one(0177700),           "#b$s"},
357 {"bclr",        one(0000600),           one(0170700),           "Dd$s"},
358 {"bclr",        one(0004200),           one(0177700),           "#b$s"},
359 {"bfchg",       two(0165300, 0),        two(0177700, 0170000),  "?sO2O3"},
360 {"bfclr",       two(0166300, 0),        two(0177700, 0170000),  "?sO2O3"},
361 {"bfexts",      two(0165700, 0),        two(0177700, 0100000),  "/sO2O3D1"},
362 {"bfextu",      two(0164700, 0),        two(0177700, 0100000),  "/sO2O3D1"},
363 {"bfffo",       two(0166700, 0),        two(0177700, 0100000),  "/sO2O3D1"},
364 {"bfins",       two(0167700, 0),        two(0177700, 0100000),  "D1?sO2O3"},
365 {"bfset",       two(0167300, 0),        two(0177700, 0170000),  "?sO2O3"},
366 {"bftst",       two(0164300, 0),        two(0177700, 0170000),  "/sO2O3"},
367 {"bset",        one(0000700),           one(0170700),           "Dd$s"},
368 {"bset",        one(0004300),           one(0177700),           "#b$s"},
369 {"btst",        one(0000400),           one(0170700),           "Dd@s"},
370 {"btst",        one(0004000),           one(0177700),           "#b@s"},
371
372 {"bkpt",        one(0044110),           one(0177770),           "Qs"},
373
374 {"callm",       one(0003300),           one(0177700),           "#b!s"},
375 {"cas2l",       two(0007374, 0),        two(0177777, 0107070),  "D3D6D2D5R1R4"}, /* JF FOO this is really a 3 word ins */
376 {"cas2w",       two(0006374, 0),        two(0177777, 0107070),  "D3D6D2D5R1R4"}, /* JF ditto */
377 {"casb",        two(0005300, 0),        two(0177700, 0177070),  "D3D2~s"},
378 {"casl",        two(0007300, 0),        two(0177700, 0177070),  "D3D2~s"},
379 {"casw",        two(0006300, 0),        two(0177700, 0177070),  "D3D2~s"},
380
381 /*  {"chk",     one(0040600),           one(0170700),           ";wDd"}, JF FOO this looks wrong */
382 {"chk2b",       two(0000300, 0004000),  two(0177700, 07777),    "!sR1"},
383 {"chk2l",       two(0002300, 0004000),  two(0177700, 07777),    "!sR1"},
384 {"chk2w",       two(0001300, 0004000),  two(0177700, 07777),    "!sR1"},
385 {"chkl",        one(0040400),           one(0170700),           ";lDd"},
386 {"chkw",        one(0040600),           one(0170700),           ";wDd"},
387 {"clrb",        one(0041000),           one(0177700),           "$s"},
388 {"clrl",        one(0041200),           one(0177700),           "$s"},
389 {"clrw",        one(0041100),           one(0177700),           "$s"},
390
391 {"cmp2b",       two(0000300, 0),        two(0177700, 07777),    "!sR1"},
392 {"cmp2l",       two(0002300, 0),        two(0177700, 07777),    "!sR1"},
393 {"cmp2w",       two(0001300, 0),        two(0177700, 07777),    "!sR1"},
394 {"cmpal",       one(0130700),           one(0170700),           "*lAd"},
395 {"cmpaw",       one(0130300),           one(0170700),           "*wAd"},
396 {"cmpib",       one(0006000),           one(0177700),           "#b;b"},
397 {"cmpil",       one(0006200),           one(0177700),           "#l;l"},
398 {"cmpiw",       one(0006100),           one(0177700),           "#w;w"},
399 {"cmpb",        one(0006000),           one(0177700),           "#b;b"},        /* cmpi written as cmp */
400 {"cmpb",        one(0130000),           one(0170700),           ";bDd"},
401 {"cmpw",        one(0006100),           one(0177700),           "#w;w"},
402 {"cmpw",        one(0130100),           one(0170700),           "*wDd"},
403 {"cmpw",        one(0130300),           one(0170700),           "*wAd"},        /* cmpa written as cmp */
404 {"cmpl",        one(0006200),           one(0177700),           "#l;l"},
405 {"cmpl",        one(0130200),           one(0170700),           "*lDd"},
406 {"cmpl",        one(0130700),           one(0170700),           "*lAd"},
407 {"cmpmb",       one(0130410),           one(0170770),           "+s+d"},
408 {"cmpml",       one(0130610),           one(0170770),           "+s+d"},
409 {"cmpmw",       one(0130510),           one(0170770),           "+s+d"},
410
411 {"dbcc",        one(0052310),           one(0177770),           "DsBw"},
412 {"dbcs",        one(0052710),           one(0177770),           "DsBw"},
413 {"dbeq",        one(0053710),           one(0177770),           "DsBw"},
414 {"dbf",         one(0050710),           one(0177770),           "DsBw"},
415 {"dbge",        one(0056310),           one(0177770),           "DsBw"},
416 {"dbgt",        one(0057310),           one(0177770),           "DsBw"},
417 {"dbhi",        one(0051310),           one(0177770),           "DsBw"},
418 {"dble",        one(0057710),           one(0177770),           "DsBw"},
419 {"dbls",        one(0051710),           one(0177770),           "DsBw"},
420 {"dblt",        one(0056710),           one(0177770),           "DsBw"},
421 {"dbmi",        one(0055710),           one(0177770),           "DsBw"},
422 {"dbne",        one(0053310),           one(0177770),           "DsBw"},
423 {"dbpl",        one(0055310),           one(0177770),           "DsBw"},
424 {"dbra",        one(0050710),           one(0177770),           "DsBw"},
425 {"dbt",         one(0050310),           one(0177770),           "DsBw"},
426 {"dbvc",        one(0054310),           one(0177770),           "DsBw"},
427 {"dbvs",        one(0054710),           one(0177770),           "DsBw"},
428
429 {"divsl",       two(0046100, 0006000),  two(0177700, 0107770),  ";lD3D1"},
430 {"divsl",       two(0046100, 0004000),  two(0177700, 0107770),  ";lDD"},
431 {"divsll",      two(0046100, 0004000),  two(0177700, 0107770),  ";lD3D1"},
432 {"divsw",       one(0100700),           one(0170700),           ";wDd"},
433 {"divs",        one(0100700),           one(0170700),           ";wDd"},
434 {"divul",       two(0046100, 0002000),  two(0177700, 0107770),  ";lD3D1"},
435 {"divul",       two(0046100, 0000000),  two(0177700, 0107770),  ";lDD"},
436 {"divull",      two(0046100, 0000000),  two(0177700, 0107770),  ";lD3D1"},
437 {"divuw",       one(0100300),           one(0170700),           ";wDd"},
438 {"divu",        one(0100300),           one(0170700),           ";wDd"},
439 {"eorb",        one(0005000),           one(0177700),           "#b$s"},        /* eori written as or */
440 {"eorb",        one(0005074),           one(0177777),           "#bCs"},        /* eori to ccr */
441 {"eorb",        one(0130400),           one(0170700),           "Dd$s"},        /* register to memory */
442 {"eorib",       one(0005000),           one(0177700),           "#b$s"},
443 {"eorib",       one(0005074),           one(0177777),           "#bCs"},        /* eori to ccr */
444 {"eoril",       one(0005200),           one(0177700),           "#l$s"},
445 {"eoriw",       one(0005100),           one(0177700),           "#w$s"},
446 {"eoriw",       one(0005174),           one(0177777),           "#wSs"},        /* eori to sr */
447 {"eorl",        one(0005200),           one(0177700),           "#l$s"},
448 {"eorl",        one(0130600),           one(0170700),           "Dd$s"},
449 {"eorw",        one(0005100),           one(0177700),           "#w$s"},
450 {"eorw",        one(0005174),           one(0177777),           "#wSs"},        /* eori to sr */
451 {"eorw",        one(0130500),           one(0170700),           "Dd$s"},
452
453 {"exg",         one(0140500),           one(0170770),           "DdDs"},
454 {"exg",         one(0140510),           one(0170770),           "AdAs"},
455 {"exg",         one(0140610),           one(0170770),           "DdAs"},
456 {"exg",         one(0140610),           one(0170770),           "AsDd"},
457
458 {"extw",        one(0044200),           one(0177770),           "Ds"},
459 {"extl",        one(0044300),           one(0177770),           "Ds"},
460 {"extbl",       one(0044700),           one(0177770),           "Ds"},
461 {"extb.l",      one(0044700),           one(0177770),           "Ds"},  /* Not sure we should support this one*/
462
463 {"illegal",     one(0045374),           one(0177777),           ""},
464 {"jmp",         one(0047300),           one(0177700),           "!s"},
465 {"jsr",         one(0047200),           one(0177700),           "!s"},
466 {"lea",         one(0040700),           one(0170700),           "!sAd"},
467 {"linkw",       one(0047120),           one(0177770),           "As#w"},
468 {"linkl",       one(0044010),           one(0177770),           "As#l"},
469 {"link",        one(0047120),           one(0177770),           "As#w"},
470 {"link",        one(0044010),           one(0177770),           "As#l"},
471
472 {"lslb",        one(0160410),           one(0170770),           "QdDs"},        /* lsrb #Q,     Ds */
473 {"lslb",        one(0160450),           one(0170770),           "DdDs"},        /* lsrb Dd,     Ds */
474 {"lslw",        one(0160510),           one(0170770),           "QdDs"},        /* lsrb #Q,     Ds */
475 {"lslw",        one(0160550),           one(0170770),           "DdDs"},        /* lsrb Dd,     Ds */
476 {"lslw",        one(0161700),           one(0177700),           "~s"},  /* Shift memory */
477 {"lsll",        one(0160610),           one(0170770),           "QdDs"},        /* lsrb #Q,     Ds */
478 {"lsll",        one(0160650),           one(0170770),           "DdDs"},        /* lsrb Dd,     Ds */
479
480 {"lsrb",        one(0160010),           one(0170770),           "QdDs"} /* lsrb #Q,     Ds */,
481 {"lsrb",        one(0160050),           one(0170770),           "DdDs"},        /* lsrb Dd,     Ds */
482 {"lsrl",        one(0160210),           one(0170770),           "QdDs"},        /* lsrb #Q,     Ds */
483 {"lsrl",        one(0160250),           one(0170770),           "DdDs"},        /* lsrb #Q,     Ds */
484 {"lsrw",        one(0160110),           one(0170770),           "QdDs"},        /* lsrb #Q,     Ds */
485 {"lsrw",        one(0160150),           one(0170770),           "DdDs"},        /* lsrb #Q,     Ds */
486 {"lsrw",        one(0161300),           one(0177700),           "~s"},  /* Shift memory */
487
488 {"moveal",      one(0020100),           one(0170700),           "*lAd"},
489 {"moveaw",      one(0030100),           one(0170700),           "*wAd"},
490 {"moveb",       one(0010000),           one(0170000),           ";b$d"},        /* move */
491 {"movel",       one(0070000),           one(0170400),           "MsDd"},        /* moveq written as move */
492 {"movel",       one(0020000),           one(0170000),           "*l$d"},
493 {"movel",       one(0020100),           one(0170700),           "*lAd"},
494 {"movel",       one(0047140),           one(0177770),           "AsUd"},        /* move to USP */
495 {"movel",       one(0047150),           one(0177770),           "UdAs"},        /* move from USP */
496
497 {"movec",       one(0047173),           one(0177777),           "R1Jj"},
498 {"movec",       one(0047173),           one(0177777),           "R1#j"},
499 {"movec",       one(0047172),           one(0177777),           "JjR1"},
500 {"movec",       one(0047172),           one(0177777),           "#jR1"},
501
502 /* JF added these next four for the assembler */
503 {"moveml",      one(0044300),           one(0177700),           "Lw&s"},        /* movem reg to mem. */
504 {"moveml",      one(0044340),           one(0177770),           "lw-s"},        /* movem reg to autodecrement. */
505 {"moveml",      one(0046300),           one(0177700),           "!sLw"},        /* movem mem to reg. */
506 {"moveml",      one(0046330),           one(0177770),           "+sLw"},        /* movem autoinc to reg. */
507
508 {"moveml",      one(0044300),           one(0177700),           "#w&s"},        /* movem reg to mem. */
509 {"moveml",      one(0044340),           one(0177770),           "#w-s"},        /* movem reg to autodecrement. */
510 {"moveml",      one(0046300),           one(0177700),           "!s#w"},        /* movem mem to reg. */
511 {"moveml",      one(0046330),           one(0177770),           "+s#w"},        /* movem autoinc to reg. */
512
513 /* JF added these next four for the assembler */
514 {"movemw",      one(0044200),           one(0177700),           "Lw&s"},        /* movem reg to mem. */
515 {"movemw",      one(0044240),           one(0177770),           "lw-s"},        /* movem reg to autodecrement. */
516 {"movemw",      one(0046200),           one(0177700),           "!sLw"},        /* movem mem to reg. */
517 {"movemw",      one(0046230),           one(0177770),           "+sLw"},        /* movem autoinc to reg. */
518
519 {"movemw",      one(0044200),           one(0177700),           "#w&s"},        /* movem reg to mem. */
520 {"movemw",      one(0044240),           one(0177770),           "#w-s"},        /* movem reg to autodecrement. */
521 {"movemw",      one(0046200),           one(0177700),           "!s#w"},        /* movem mem to reg. */
522 {"movemw",      one(0046230),           one(0177770),           "+s#w"},        /* movem autoinc to reg. */
523
524 {"movepl",      one(0000510),           one(0170770),           "dsDd"},        /* memory to register */
525 {"movepl",      one(0000710),           one(0170770),           "Ddds"},        /* register to memory */
526 {"movepw",      one(0000410),           one(0170770),           "dsDd"},        /* memory to register */
527 {"movepw",      one(0000610),           one(0170770),           "Ddds"},        /* register to memory */
528 {"moveq",       one(0070000),           one(0170400),           "MsDd"},
529 {"movew",       one(0030000),           one(0170000),           "*w$d"},
530 {"movew",       one(0030100),           one(0170700),           "*wAd"},        /* movea,       written as move */
531 {"movew",       one(0040300),           one(0177700),           "Ss$s"},        /* Move from sr */
532 {"movew",       one(0041300),           one(0177700),           "Cs$s"},        /* Move from ccr */
533 {"movew",       one(0042300),           one(0177700),           ";wCd"},        /* move to ccr */
534 {"movew",       one(0043300),           one(0177700),           ";wSd"},        /* move to sr */
535
536 {"movesb",      two(0007000, 0),        two(0177700, 07777),    "~sR1"},         /* moves from memory */
537 {"movesb",      two(0007000, 04000),    two(0177700, 07777),    "R1~s"},         /* moves to memory */
538 {"movesl",      two(0007200, 0),        two(0177700, 07777),    "~sR1"},         /* moves from memory */
539 {"movesl",      two(0007200, 04000),    two(0177700, 07777),    "R1~s"},         /* moves to memory */
540 {"movesw",      two(0007100, 0),        two(0177700, 07777),    "~sR1"},         /* moves from memory */
541 {"movesw",      two(0007100, 04000),    two(0177700, 07777),    "R1~s"},         /* moves to memory */
542
543 {"mulsl",       two(0046000, 004000),   two(0177700, 0107770),  ";lD1"},
544 {"mulsl",       two(0046000, 006000),   two(0177700, 0107770),  ";lD3D1"},
545 {"mulsw",       one(0140700),           one(0170700),           ";wDd"},
546 {"muls",        one(0140700),           one(0170700),           ";wDd"},
547 {"mulul",       two(0046000, 000000),   two(0177700, 0107770),  ";lD1"},
548 {"mulul",       two(0046000, 002000),   two(0177700, 0107770),  ";lD3D1"},
549 {"muluw",       one(0140300),           one(0170700),           ";wDd"},
550 {"mulu",        one(0140300),           one(0170700),           ";wDd"},
551 {"nbcd",        one(0044000),           one(0177700),           "$s"},
552 {"negb",        one(0042000),           one(0177700),           "$s"},
553 {"negl",        one(0042200),           one(0177700),           "$s"},
554 {"negw",        one(0042100),           one(0177700),           "$s"},
555 {"negxb",       one(0040000),           one(0177700),           "$s"},
556 {"negxl",       one(0040200),           one(0177700),           "$s"},
557 {"negxw",       one(0040100),           one(0177700),           "$s"},
558 {"nop",         one(0047161),           one(0177777),           ""},
559 {"notb",        one(0043000),           one(0177700),           "$s"},
560 {"notl",        one(0043200),           one(0177700),           "$s"},
561 {"notw",        one(0043100),           one(0177700),           "$s"},
562
563 {"orb",         one(0000000),           one(0177700),           "#b$s"},        /* ori written as or */
564 {"orb",         one(0000074),           one(0177777),           "#bCs"},        /* ori to ccr */
565 {"orb",         one(0100000),           one(0170700),           ";bDd"},        /* memory to register */
566 {"orb",         one(0100400),           one(0170700),           "Dd~s"},        /* register to memory */
567 {"orib",        one(0000000),           one(0177700),           "#b$s"},
568 {"orib",        one(0000074),           one(0177777),           "#bCs"},        /* ori to ccr */
569 {"oril",        one(0000200),           one(0177700),           "#l$s"},
570 {"oriw",        one(0000100),           one(0177700),           "#w$s"},
571 {"oriw",        one(0000174),           one(0177777),           "#wSs"},        /* ori to sr */
572 {"orl",         one(0000200),           one(0177700),           "#l$s"},
573 {"orl",         one(0100200),           one(0170700),           ";lDd"},        /* memory to register */
574 {"orl",         one(0100600),           one(0170700),           "Dd~s"},        /* register to memory */
575 {"orw",         one(0000100),           one(0177700),           "#w$s"},
576 {"orw",         one(0000174),           one(0177777),           "#wSs"},        /* ori to sr */
577 {"orw",         one(0100100),           one(0170700),           ";wDd"},        /* memory to register */
578 {"orw",         one(0100500),           one(0170700),           "Dd~s"},        /* register to memory */
579
580 {"pack",        one(0100500),           one(0170770),           "DsDd#w"},      /* pack Ds,     Dd,     #w */
581 {"pack",        one(0100510),           one(0170770),           "-s-d#w"},      /* pack -(As),  -(Ad),  #w */
582 {"pea",         one(0044100),           one(0177700),           "!s"},
583 {"reset",       one(0047160),           one(0177777),           ""},
584
585 {"rolb",        one(0160430),           one(0170770),           "QdDs"},        /* rorb #Q,     Ds */
586 {"rolb",        one(0160470),           one(0170770),           "DdDs"},        /* rorb Dd,     Ds */
587 {"roll",        one(0160630),           one(0170770),           "QdDs"},        /* rorb #Q,     Ds */
588 {"roll",        one(0160670),           one(0170770),           "DdDs"},        /* rorb Dd,     Ds */
589 {"rolw",        one(0160530),           one(0170770),           "QdDs"},        /* rorb #Q,     Ds */
590 {"rolw",        one(0160570),           one(0170770),           "DdDs"},        /* rorb Dd,     Ds */
591 {"rolw",        one(0163700),           one(0177700),           "~s"},  /* Rotate memory */
592 {"rorb",        one(0160030),           one(0170770),           "QdDs"},        /* rorb #Q,     Ds */
593 {"rorb",        one(0160070),           one(0170770),           "DdDs"},        /* rorb Dd,     Ds */
594 {"rorl",        one(0160230),           one(0170770),           "QdDs"},        /* rorb #Q,     Ds */
595 {"rorl",        one(0160270),           one(0170770),           "DdDs"},        /* rorb Dd,     Ds */
596 {"rorw",        one(0160130),           one(0170770),           "QdDs"},        /* rorb #Q,     Ds */
597 {"rorw",        one(0160170),           one(0170770),           "DdDs"},        /* rorb Dd,     Ds */
598 {"rorw",        one(0163300),           one(0177700),           "~s"},  /* Rotate memory */
599
600 {"roxlb",       one(0160420),           one(0170770),           "QdDs"},        /* roxrb #Q,    Ds */
601 {"roxlb",       one(0160460),           one(0170770),           "DdDs"},        /* roxrb Dd,    Ds */
602 {"roxll",       one(0160620),           one(0170770),           "QdDs"},        /* roxrb #Q,    Ds */
603 {"roxll",       one(0160660),           one(0170770),           "DdDs"},        /* roxrb Dd,    Ds */
604 {"roxlw",       one(0160520),           one(0170770),           "QdDs"},        /* roxrb #Q,    Ds */
605 {"roxlw",       one(0160560),           one(0170770),           "DdDs"},        /* roxrb Dd,    Ds */
606 {"roxlw",       one(0162700),           one(0177700),           "~s"},  /* Rotate memory */
607 {"roxrb",       one(0160020),           one(0170770),           "QdDs"},        /* roxrb #Q,    Ds */
608 {"roxrb",       one(0160060),           one(0170770),           "DdDs"},        /* roxrb Dd,    Ds */
609 {"roxrl",       one(0160220),           one(0170770),           "QdDs"},        /* roxrb #Q,    Ds */
610 {"roxrl",       one(0160260),           one(0170770),           "DdDs"},        /* roxrb Dd,    Ds */
611 {"roxrw",       one(0160120),           one(0170770),           "QdDs"},        /* roxrb #Q,    Ds */
612 {"roxrw",       one(0160160),           one(0170770),           "DdDs"},        /* roxrb Dd,    Ds */
613 {"roxrw",       one(0162300),           one(0177700),           "~s"},  /* Rotate memory */
614
615 {"rtd",         one(0047164),           one(0177777),           "#w"},
616 {"rte",         one(0047163),           one(0177777),           ""},
617 {"rtm",         one(0003300),           one(0177760),           "Rs"},
618 {"rtr",         one(0047167),           one(0177777),           ""},
619 {"rts",         one(0047165),           one(0177777),           ""},
620
621 {"scc",         one(0052300),           one(0177700),           "$s"},
622 {"scs",         one(0052700),           one(0177700),           "$s"},
623 {"seq",         one(0053700),           one(0177700),           "$s"},
624 {"sf",          one(0050700),           one(0177700),           "$s"},
625 {"sge",         one(0056300),           one(0177700),           "$s"},
626 {"sfge",                one(0056300),           one(0177700),           "$s"},
627 {"sgt",         one(0057300),           one(0177700),           "$s"},
628 {"sfgt",                one(0057300),           one(0177700),           "$s"},
629 {"shi",         one(0051300),           one(0177700),           "$s"},
630 {"sle",         one(0057700),           one(0177700),           "$s"},
631 {"sfle",                one(0057700),           one(0177700),           "$s"},
632 {"sls",         one(0051700),           one(0177700),           "$s"},
633 {"slt",         one(0056700),           one(0177700),           "$s"},
634 {"sflt",                one(0056700),           one(0177700),           "$s"},
635 {"smi",         one(0055700),           one(0177700),           "$s"},
636 {"sne",         one(0053300),           one(0177700),           "$s"},
637 {"sfneq",               one(0053300),           one(0177700),           "$s"},
638 {"spl",         one(0055300),           one(0177700),           "$s"},
639 {"st",          one(0050300),           one(0177700),           "$s"},
640 {"svc",         one(0054300),           one(0177700),           "$s"},
641 {"svs",         one(0054700),           one(0177700),           "$s"},
642
643 {"sbcd",        one(0100400),           one(0170770),           "DsDd"},
644 {"sbcd",        one(0100410),           one(0170770),           "-s-d"},
645 {"stop",        one(0047162),           one(0177777),           "#w"},
646
647 {"subal",       one(0110700),           one(0170700),           "*lAd"},
648 {"subaw",       one(0110300),           one(0170700),           "*wAd"},
649 {"subb",        one(0050400),           one(0170700),           "Qd%s"},        /* subq written as sub */
650 {"subb",        one(0002000),           one(0177700),           "#b$s"},        /* subi written as sub */
651 {"subb",        one(0110000),           one(0170700),           ";bDd"},        /* subb ? ?,    Dd */
652 {"subb",        one(0110400),           one(0170700),           "Dd~s"},        /* subb Dd,     ? ? */
653 {"subib",       one(0002000),           one(0177700),           "#b$s"},
654 {"subil",       one(0002200),           one(0177700),           "#l$s"},
655 {"subiw",       one(0002100),           one(0177700),           "#w$s"},
656 {"subl",        one(0050600),           one(0170700),           "Qd%s"},
657 {"subl",        one(0002200),           one(0177700),           "#l$s"},
658 {"subl",        one(0110700),           one(0170700),           "*lAd"},
659 {"subl",        one(0110200),           one(0170700),           "*lDd"},
660 {"subl",        one(0110600),           one(0170700),           "Dd~s"},
661 {"subqb",       one(0050400),           one(0170700),           "Qd%s"},
662 {"subql",       one(0050600),           one(0170700),           "Qd%s"},
663 {"subqw",       one(0050500),           one(0170700),           "Qd%s"},
664 {"subw",        one(0050500),           one(0170700),           "Qd%s"},
665 {"subw",        one(0002100),           one(0177700),           "#w$s"},
666 {"subw",        one(0110100),           one(0170700),           "*wDd"},
667 {"subw",        one(0110300),           one(0170700),           "*wAd"},        /* suba written as sub */
668 {"subw",        one(0110500),           one(0170700),           "Dd~s"},
669 {"subxb",       one(0110400),           one(0170770),           "DsDd"},        /* subxb Ds,    Dd */
670 {"subxb",       one(0110410),           one(0170770),           "-s-d"},        /* subxb -(As), -(Ad) */
671 {"subxl",       one(0110600),           one(0170770),           "DsDd"},
672 {"subxl",       one(0110610),           one(0170770),           "-s-d"},
673 {"subxw",       one(0110500),           one(0170770),           "DsDd"},
674 {"subxw",       one(0110510),           one(0170770),           "-s-d"},
675
676 {"swap",        one(0044100),           one(0177770),           "Ds"},
677         
678 {"tas",         one(0045300),           one(0177700),           "$s"},
679 {"trap",        one(0047100),           one(0177760),           "Ts"},
680
681 {"trapcc",      one(0052374),           one(0177777),           ""},
682 {"trapcs",      one(0052774),           one(0177777),           ""},
683 {"trapeq",      one(0053774),           one(0177777),           ""},
684 {"trapf",       one(0050774),           one(0177777),           ""},
685 {"trapge",      one(0056374),           one(0177777),           ""},
686 {"trapgt",      one(0057374),           one(0177777),           ""},
687 {"traphi",      one(0051374),           one(0177777),           ""},
688 {"traple",      one(0057774),           one(0177777),           ""},
689 {"trapls",      one(0051774),           one(0177777),           ""},
690 {"traplt",      one(0056774),           one(0177777),           ""},
691 {"trapmi",      one(0055774),           one(0177777),           ""},
692 {"trapne",      one(0053374),           one(0177777),           ""},
693 {"trappl",      one(0055374),           one(0177777),           ""},
694 {"trapt",       one(0050374),           one(0177777),           ""},
695 {"trapvc",      one(0054374),           one(0177777),           ""},
696 {"trapvs",      one(0054774),           one(0177777),           ""},
697
698 {"trapcc.w",    one(0052372),           one(0177777),           ""},
699 {"trapcs.w",    one(0052772),           one(0177777),           ""},
700 {"trapeq.w",    one(0053772),           one(0177777),           ""},
701 {"trapf.w",     one(0050772),           one(0177777),           ""},
702 {"trapge.w",    one(0056372),           one(0177777),           ""},
703 {"trapgt.w",    one(0057372),           one(0177777),           ""},
704 {"traphi.w",    one(0051372),           one(0177777),           ""},
705 {"traple.w",    one(0057772),           one(0177777),           ""},
706 {"trapls.w",    one(0051772),           one(0177777),           ""},
707 {"traplt.w",    one(0056772),           one(0177777),           ""},
708 {"trapmi.w",    one(0055772),           one(0177777),           ""},
709 {"trapne.w",    one(0053372),           one(0177777),           ""},
710 {"trappl.w",    one(0055372),           one(0177777),           ""},
711 {"trapt.w",     one(0050372),           one(0177777),           ""},
712 {"trapvc.w",    one(0054372),           one(0177777),           ""},
713 {"trapvs.w",    one(0054772),           one(0177777),           ""},
714
715 {"trapcc.l",    one(0052373),           one(0177777),           ""},
716 {"trapcs.l",    one(0052773),           one(0177777),           ""},
717 {"trapeq.l",    one(0053773),           one(0177777),           ""},
718 {"trapf.l",     one(0050773),           one(0177777),           ""},
719 {"trapge.l",    one(0056373),           one(0177777),           ""},
720 {"trapgt.l",    one(0057373),           one(0177777),           ""},
721 {"traphi.l",    one(0051373),           one(0177777),           ""},
722 {"traple.l",    one(0057773),           one(0177777),           ""},
723 {"trapls.l",    one(0051773),           one(0177777),           ""},
724 {"traplt.l",    one(0056773),           one(0177777),           ""},
725 {"trapmi.l",    one(0055773),           one(0177777),           ""},
726 {"trapne.l",    one(0053373),           one(0177777),           ""},
727 {"trappl.l",    one(0055373),           one(0177777),           ""},
728 {"trapt.l",     one(0050373),           one(0177777),           ""},
729 {"trapvc.l",    one(0054373),           one(0177777),           ""},
730 {"trapvs.l",    one(0054773),           one(0177777),           ""},
731
732 {"trapv",       one(0047166),           one(0177777),           ""},
733
734 {"tstb",        one(0045000),           one(0177700),           ";b"},
735 {"tstw",        one(0045100),           one(0177700),           "*w"},
736 {"tstl",        one(0045200),           one(0177700),           "*l"},
737
738 {"unlk",        one(0047130),           one(0177770),           "As"},
739 {"unpk",        one(0100600),           one(0170770),           "DsDd#w"},
740 {"unpk",        one(0100610),           one(0170770),           "-s-d#w"},
741         /* JF floating pt stuff moved down here */
742
743 {"fabsb",       two(0xF000, 0x5818),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
744 {"fabsd",       two(0xF000, 0x5418),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
745 {"fabsl",       two(0xF000, 0x4018),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
746 {"fabsp",       two(0xF000, 0x4C18),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
747 {"fabss",       two(0xF000, 0x4418),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
748 {"fabsw",       two(0xF000, 0x5018),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
749 {"fabsx",       two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiF8F7"},
750 {"fabsx",       two(0xF000, 0x4818),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
751 {"fabsx",       two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiFt"},
752
753 {"facosb",      two(0xF000, 0x581C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
754 {"facosd",      two(0xF000, 0x541C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
755 {"facosl",      two(0xF000, 0x401C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
756 {"facosp",      two(0xF000, 0x4C1C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
757 {"facoss",      two(0xF000, 0x441C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
758 {"facosw",      two(0xF000, 0x501C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
759 {"facosx",      two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
760 {"facosx",      two(0xF000, 0x481C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
761 {"facosx",      two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiFt"},
762
763 {"faddb",       two(0xF000, 0x5822),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
764 {"faddd",       two(0xF000, 0x5422),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
765 {"faddl",       two(0xF000, 0x4022),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
766 {"faddp",       two(0xF000, 0x4C22),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
767 {"fadds",       two(0xF000, 0x4422),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
768 {"faddw",       two(0xF000, 0x5022),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
769 {"faddx",       two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiF8F7"},
770 {"faddx",       two(0xF000, 0x4822),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
771 /* {"faddx",    two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiFt"}, JF removed */
772
773 {"fasinb",      two(0xF000, 0x580C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
774 {"fasind",      two(0xF000, 0x540C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
775 {"fasinl",      two(0xF000, 0x400C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
776 {"fasinp",      two(0xF000, 0x4C0C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
777 {"fasins",      two(0xF000, 0x440C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
778 {"fasinw",      two(0xF000, 0x500C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
779 {"fasinx",      two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
780 {"fasinx",      two(0xF000, 0x480C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
781 {"fasinx",      two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiFt"},
782
783 {"fatanb",      two(0xF000, 0x580A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
784 {"fatand",      two(0xF000, 0x540A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
785 {"fatanl",      two(0xF000, 0x400A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
786 {"fatanp",      two(0xF000, 0x4C0A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
787 {"fatans",      two(0xF000, 0x440A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
788 {"fatanw",      two(0xF000, 0x500A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
789 {"fatanx",      two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
790 {"fatanx",      two(0xF000, 0x480A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
791 {"fatanx",      two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiFt"},
792
793 {"fatanhb",     two(0xF000, 0x580D),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
794 {"fatanhd",     two(0xF000, 0x540D),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
795 {"fatanhl",     two(0xF000, 0x400D),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
796 {"fatanhp",     two(0xF000, 0x4C0D),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
797 {"fatanhs",     two(0xF000, 0x440D),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
798 {"fatanhw",     two(0xF000, 0x500D),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
799 {"fatanhx",     two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiF8F7"},
800 {"fatanhx",     two(0xF000, 0x480D),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
801 {"fatanhx",     two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiFt"},
802
803 /* Fixed-size Float branches */
804
805 {"fbeq",        one(0xF081),            one(0xF1BF),            "IdBW"},
806 {"fbf",         one(0xF080),            one(0xF1BF),            "IdBW"},
807 {"fbge",        one(0xF093),            one(0xF1BF),            "IdBW"},
808 {"fbgl",        one(0xF096),            one(0xF1BF),            "IdBW"},
809 {"fbgle",       one(0xF097),            one(0xF1BF),            "IdBW"},
810 {"fbgt",        one(0xF092),            one(0xF1BF),            "IdBW"},
811 {"fble",        one(0xF095),            one(0xF1BF),            "IdBW"},
812 {"fblt",        one(0xF094),            one(0xF1BF),            "IdBW"},
813 {"fbne",        one(0xF08E),            one(0xF1BF),            "IdBW"},
814 {"fbnge",       one(0xF09C),            one(0xF1BF),            "IdBW"},
815 {"fbngl",       one(0xF099),            one(0xF1BF),            "IdBW"},
816 {"fbngle",      one(0xF098),            one(0xF1BF),            "IdBW"},
817 {"fbngt",       one(0xF09D),            one(0xF1BF),            "IdBW"},
818 {"fbnle",       one(0xF09A),            one(0xF1BF),            "IdBW"},
819 {"fbnlt",       one(0xF09B),            one(0xF1BF),            "IdBW"},
820 {"fboge",       one(0xF083),            one(0xF1BF),            "IdBW"},
821 {"fbogl",       one(0xF086),            one(0xF1BF),            "IdBW"},
822 {"fbogt",       one(0xF082),            one(0xF1BF),            "IdBW"},
823 {"fbole",       one(0xF085),            one(0xF1BF),            "IdBW"},
824 {"fbolt",       one(0xF084),            one(0xF1BF),            "IdBW"},
825 {"fbor",        one(0xF087),            one(0xF1BF),            "IdBW"},
826 {"fbseq",       one(0xF091),            one(0xF1BF),            "IdBW"},
827 {"fbsf",        one(0xF090),            one(0xF1BF),            "IdBW"},
828 {"fbsne",       one(0xF09E),            one(0xF1BF),            "IdBW"},
829 {"fbst",        one(0xF09F),            one(0xF1BF),            "IdBW"},
830 {"fbt",         one(0xF08F),            one(0xF1BF),            "IdBW"},
831 {"fbueq",       one(0xF089),            one(0xF1BF),            "IdBW"},
832 {"fbuge",       one(0xF08B),            one(0xF1BF),            "IdBW"},
833 {"fbugt",       one(0xF08A),            one(0xF1BF),            "IdBW"},
834 {"fbule",       one(0xF08D),            one(0xF1BF),            "IdBW"},
835 {"fbult",       one(0xF08C),            one(0xF1BF),            "IdBW"},
836 {"fbun",        one(0xF088),            one(0xF1BF),            "IdBW"},
837
838 /* Float branches -- long (32-bit) displacements */
839
840 {"fbeql",       one(0xF081),            one(0xF1BF),            "IdBC"},
841 {"fbfl",        one(0xF080),            one(0xF1BF),            "IdBC"},
842 {"fbgel",       one(0xF093),            one(0xF1BF),            "IdBC"},
843 {"fbgll",       one(0xF096),            one(0xF1BF),            "IdBC"},
844 {"fbglel",      one(0xF097),            one(0xF1BF),            "IdBC"},
845 {"fbgtl",       one(0xF092),            one(0xF1BF),            "IdBC"},
846 {"fblel",       one(0xF095),            one(0xF1BF),            "IdBC"},
847 {"fbltl",       one(0xF094),            one(0xF1BF),            "IdBC"},
848 {"fbnel",       one(0xF08E),            one(0xF1BF),            "IdBC"},
849 {"fbngel",      one(0xF09C),            one(0xF1BF),            "IdBC"},
850 {"fbngll",      one(0xF099),            one(0xF1BF),            "IdBC"},
851 {"fbnglel",     one(0xF098),            one(0xF1BF),            "IdBC"},
852 {"fbngtl",      one(0xF09D),            one(0xF1BF),            "IdBC"},
853 {"fbnlel",      one(0xF09A),            one(0xF1BF),            "IdBC"},
854 {"fbnltl",      one(0xF09B),            one(0xF1BF),            "IdBC"},
855 {"fbogel",      one(0xF083),            one(0xF1BF),            "IdBC"},
856 {"fbogll",      one(0xF086),            one(0xF1BF),            "IdBC"},
857 {"fbogtl",      one(0xF082),            one(0xF1BF),            "IdBC"},
858 {"fbolel",      one(0xF085),            one(0xF1BF),            "IdBC"},
859 {"fboltl",      one(0xF084),            one(0xF1BF),            "IdBC"},
860 {"fborl",       one(0xF087),            one(0xF1BF),            "IdBC"},
861 {"fbseql",      one(0xF091),            one(0xF1BF),            "IdBC"},
862 {"fbsfl",       one(0xF090),            one(0xF1BF),            "IdBC"},
863 {"fbsnel",      one(0xF09E),            one(0xF1BF),            "IdBC"},
864 {"fbstl",       one(0xF09F),            one(0xF1BF),            "IdBC"},
865 {"fbtl",        one(0xF08F),            one(0xF1BF),            "IdBC"},
866 {"fbueql",      one(0xF089),            one(0xF1BF),            "IdBC"},
867 {"fbugel",      one(0xF08B),            one(0xF1BF),            "IdBC"},
868 {"fbugtl",      one(0xF08A),            one(0xF1BF),            "IdBC"},
869 {"fbulel",      one(0xF08D),            one(0xF1BF),            "IdBC"},
870 {"fbultl",      one(0xF08C),            one(0xF1BF),            "IdBC"},
871 {"fbunl",       one(0xF088),            one(0xF1BF),            "IdBC"},
872
873 {"fcmpb",       two(0xF000, 0x5838),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
874 {"fcmpd",       two(0xF000, 0x5438),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
875 {"fcmpl",       two(0xF000, 0x4038),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
876 {"fcmpp",       two(0xF000, 0x4C38),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
877 {"fcmps",       two(0xF000, 0x4438),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
878 {"fcmpw",       two(0xF000, 0x5038),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
879 {"fcmpx",       two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiF8F7"},
880 {"fcmpx",       two(0xF000, 0x4838),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
881 /* {"fcmpx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiFt"}, JF removed */
882
883 {"fcosb",       two(0xF000, 0x581D),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
884 {"fcosd",       two(0xF000, 0x541D),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
885 {"fcosl",       two(0xF000, 0x401D),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
886 {"fcosp",       two(0xF000, 0x4C1D),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
887 {"fcoss",       two(0xF000, 0x441D),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
888 {"fcosw",       two(0xF000, 0x501D),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
889 {"fcosx",       two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiF8F7"},
890 {"fcosx",       two(0xF000, 0x481D),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
891 {"fcosx",       two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiFt"},
892
893 {"fcoshb",      two(0xF000, 0x5819),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
894 {"fcoshd",      two(0xF000, 0x5419),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
895 {"fcoshl",      two(0xF000, 0x4019),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
896 {"fcoshp",      two(0xF000, 0x4C19),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
897 {"fcoshs",      two(0xF000, 0x4419),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
898 {"fcoshw",      two(0xF000, 0x5019),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
899 {"fcoshx",      two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiF8F7"},
900 {"fcoshx",      two(0xF000, 0x4819),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
901 {"fcoshx",      two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiFt"},
902
903 {"fdbeq",       two(0xF048, 0x0001),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
904 {"fdbf",        two(0xF048, 0x0000),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
905 {"fdbge",       two(0xF048, 0x0013),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
906 {"fdbgl",       two(0xF048, 0x0016),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
907 {"fdbgle",      two(0xF048, 0x0017),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
908 {"fdbgt",       two(0xF048, 0x0012),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
909 {"fdble",       two(0xF048, 0x0015),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
910 {"fdblt",       two(0xF048, 0x0014),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
911 {"fdbne",       two(0xF048, 0x000E),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
912 {"fdbnge",      two(0xF048, 0x001C),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
913 {"fdbngl",      two(0xF048, 0x0019),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
914 {"fdbngle",     two(0xF048, 0x0018),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
915 {"fdbngt",      two(0xF048, 0x001D),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
916 {"fdbnle",      two(0xF048, 0x001A),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
917 {"fdbnlt",      two(0xF048, 0x001B),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
918 {"fdboge",      two(0xF048, 0x0003),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
919 {"fdbogl",      two(0xF048, 0x0006),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
920 {"fdbogt",      two(0xF048, 0x0002),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
921 {"fdbole",      two(0xF048, 0x0005),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
922 {"fdbolt",      two(0xF048, 0x0004),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
923 {"fdbor",       two(0xF048, 0x0007),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
924 {"fdbseq",      two(0xF048, 0x0011),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
925 {"fdbsf",       two(0xF048, 0x0010),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
926 {"fdbsne",      two(0xF048, 0x001E),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
927 {"fdbst",       two(0xF048, 0x001F),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
928 {"fdbt",        two(0xF048, 0x000F),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
929 {"fdbueq",      two(0xF048, 0x0009),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
930 {"fdbuge",      two(0xF048, 0x000B),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
931 {"fdbugt",      two(0xF048, 0x000A),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
932 {"fdbule",      two(0xF048, 0x000D),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
933 {"fdbult",      two(0xF048, 0x000C),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
934 {"fdbun",       two(0xF048, 0x0008),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
935
936 {"fdivb",       two(0xF000, 0x5820),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
937 {"fdivd",       two(0xF000, 0x5420),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
938 {"fdivl",       two(0xF000, 0x4020),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
939 {"fdivp",       two(0xF000, 0x4C20),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
940 {"fdivs",       two(0xF000, 0x4420),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
941 {"fdivw",       two(0xF000, 0x5020),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
942 {"fdivx",       two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiF8F7"},
943 {"fdivx",       two(0xF000, 0x4820),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
944 /* {"fdivx",    two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
945
946 {"fetoxb",      two(0xF000, 0x5810),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
947 {"fetoxd",      two(0xF000, 0x5410),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
948 {"fetoxl",      two(0xF000, 0x4010),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
949 {"fetoxp",      two(0xF000, 0x4C10),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
950 {"fetoxs",      two(0xF000, 0x4410),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
951 {"fetoxw",      two(0xF000, 0x5010),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
952 {"fetoxx",      two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiF8F7"},
953 {"fetoxx",      two(0xF000, 0x4810),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
954 {"fetoxx",      two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiFt"},
955
956 {"fetoxm1b",    two(0xF000, 0x5808),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
957 {"fetoxm1d",    two(0xF000, 0x5408),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
958 {"fetoxm1l",    two(0xF000, 0x4008),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
959 {"fetoxm1p",    two(0xF000, 0x4C08),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
960 {"fetoxm1s",    two(0xF000, 0x4408),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
961 {"fetoxm1w",    two(0xF000, 0x5008),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
962 {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiF8F7"},
963 {"fetoxm1x",    two(0xF000, 0x4808),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
964 {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiFt"},
965
966 {"fgetexpb",    two(0xF000, 0x581E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
967 {"fgetexpd",    two(0xF000, 0x541E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
968 {"fgetexpl",    two(0xF000, 0x401E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
969 {"fgetexpp",    two(0xF000, 0x4C1E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
970 {"fgetexps",    two(0xF000, 0x441E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
971 {"fgetexpw",    two(0xF000, 0x501E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
972 {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
973 {"fgetexpx",    two(0xF000, 0x481E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
974 {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiFt"},
975
976 {"fgetmanb",    two(0xF000, 0x581F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
977 {"fgetmand",    two(0xF000, 0x541F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
978 {"fgetmanl",    two(0xF000, 0x401F),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
979 {"fgetmanp",    two(0xF000, 0x4C1F),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
980 {"fgetmans",    two(0xF000, 0x441F),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
981 {"fgetmanw",    two(0xF000, 0x501F),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
982 {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiF8F7"},
983 {"fgetmanx",    two(0xF000, 0x481F),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
984 {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiFt"},
985
986 {"fintb",       two(0xF000, 0x5801),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
987 {"fintd",       two(0xF000, 0x5401),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
988 {"fintl",       two(0xF000, 0x4001),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
989 {"fintp",       two(0xF000, 0x4C01),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
990 {"fints",       two(0xF000, 0x4401),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
991 {"fintw",       two(0xF000, 0x5001),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
992 {"fintx",       two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiF8F7"},
993 {"fintx",       two(0xF000, 0x4801),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
994 {"fintx",       two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiFt"},
995
996 {"fintrzb",     two(0xF000, 0x5803),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
997 {"fintrzd",     two(0xF000, 0x5403),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
998 {"fintrzl",     two(0xF000, 0x4003),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
999 {"fintrzp",     two(0xF000, 0x4C03),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1000 {"fintrzs",     two(0xF000, 0x4403),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1001 {"fintrzw",     two(0xF000, 0x5003),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1002 {"fintrzx",     two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1003 {"fintrzx",     two(0xF000, 0x4803),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1004 {"fintrzx",     two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiFt"},
1005
1006 {"flog10b",     two(0xF000, 0x5815),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1007 {"flog10d",     two(0xF000, 0x5415),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1008 {"flog10l",     two(0xF000, 0x4015),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1009 {"flog10p",     two(0xF000, 0x4C15),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1010 {"flog10s",     two(0xF000, 0x4415),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1011 {"flog10w",     two(0xF000, 0x5015),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1012 {"flog10x",     two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1013 {"flog10x",     two(0xF000, 0x4815),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1014 {"flog10x",     two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiFt"},
1015
1016 {"flog2b",      two(0xF000, 0x5816),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1017 {"flog2d",      two(0xF000, 0x5416),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1018 {"flog2l",      two(0xF000, 0x4016),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1019 {"flog2p",      two(0xF000, 0x4C16),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1020 {"flog2s",      two(0xF000, 0x4416),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1021 {"flog2w",      two(0xF000, 0x5016),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1022 {"flog2x",      two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1023 {"flog2x",      two(0xF000, 0x4816),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1024 {"flog2x",      two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiFt"},
1025
1026 {"flognb",      two(0xF000, 0x5814),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1027 {"flognd",      two(0xF000, 0x5414),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1028 {"flognl",      two(0xF000, 0x4014),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1029 {"flognp",      two(0xF000, 0x4C14),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1030 {"flogns",      two(0xF000, 0x4414),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1031 {"flognw",      two(0xF000, 0x5014),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1032 {"flognx",      two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1033 {"flognx",      two(0xF000, 0x4814),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1034 {"flognx",      two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiFt"},
1035
1036 {"flognp1b",    two(0xF000, 0x5806),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1037 {"flognp1d",    two(0xF000, 0x5406),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1038 {"flognp1l",    two(0xF000, 0x4006),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1039 {"flognp1p",    two(0xF000, 0x4C06),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1040 {"flognp1s",    two(0xF000, 0x4406),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1041 {"flognp1w",    two(0xF000, 0x5006),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1042 {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1043 {"flognp1x",    two(0xF000, 0x4806),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1044 {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiFt"},
1045
1046 {"fmodb",       two(0xF000, 0x5821),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1047 {"fmodd",       two(0xF000, 0x5421),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1048 {"fmodl",       two(0xF000, 0x4021),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1049 {"fmodp",       two(0xF000, 0x4C21),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1050 {"fmods",       two(0xF000, 0x4421),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1051 {"fmodw",       two(0xF000, 0x5021),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1052 {"fmodx",       two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1053 {"fmodx",       two(0xF000, 0x4821),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1054 /* {"fmodx",    two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
1055
1056 {"fmoveb",      two(0xF000, 0x5800),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},              /* fmove from <ea> to fp<n> */
1057 {"fmoveb",      two(0xF000, 0x7800),    two(0xF1C0, 0xFC7F),    "IiF7@b"},              /* fmove from fp<n> to <ea> */
1058 {"fmoved",      two(0xF000, 0x5400),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},              /* fmove from <ea> to fp<n> */
1059 {"fmoved",      two(0xF000, 0x7400),    two(0xF1C0, 0xFC7F),    "IiF7@F"},              /* fmove from fp<n> to <ea> */
1060 {"fmovel",      two(0xF000, 0x4000),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},              /* fmove from <ea> to fp<n> */
1061 {"fmovel",      two(0xF000, 0x6000),    two(0xF1C0, 0xFC7F),    "IiF7@l"},              /* fmove from fp<n> to <ea> */
1062 /* Warning:  The addressing modes on these are probably not right:
1063    esp, Areg direct is only allowed for FPI */
1064                 /* fmove.l from/to system control registers: */
1065 {"fmovel",      two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
1066 {"fmovel",      two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ls8"},
1067
1068 /* {"fmovel",   two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
1069 {"fmovel",      two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*ss8"}, */
1070
1071 {"fmovep",      two(0xF000, 0x4C00),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},              /* fmove from <ea> to fp<n> */
1072 {"fmovep",      two(0xF000, 0x6C00),    two(0xF1C0, 0xFC00),    "IiF7@pkC"},            /* fmove.p with k-factors: */
1073 {"fmovep",      two(0xF000, 0x7C00),    two(0xF1C0, 0xFC0F),    "IiF7@pDk"},            /* fmove.p with k-factors: */
1074
1075 {"fmoves",      two(0xF000, 0x4400),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},              /* fmove from <ea> to fp<n> */
1076 {"fmoves",      two(0xF000, 0x6400),    two(0xF1C0, 0xFC7F),    "IiF7@f"},              /* fmove from fp<n> to <ea> */
1077 {"fmovew",      two(0xF000, 0x5000),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},              /* fmove from <ea> to fp<n> */
1078 {"fmovew",      two(0xF000, 0x7000),    two(0xF1C0, 0xFC7F),    "IiF7@w"},              /* fmove from fp<n> to <ea> */
1079 {"fmovex",      two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7"},              /* fmove from <ea> to fp<n> */
1080 {"fmovex",      two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},              /* fmove from <ea> to fp<n> */
1081 {"fmovex",      two(0xF000, 0x6800),    two(0xF1C0, 0xFC7F),    "IiF7@x"},              /* fmove from fp<n> to <ea> */
1082 /* JF removed {"fmovex",        two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt"},                / * fmove from <ea> to fp<n> */
1083
1084 {"fmovecrx",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7"},              /* fmovecr.x #ccc,      FPn */
1085 {"fmovecr",     two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7"},
1086
1087 /* Other fmovemx.  */
1088 {"fmovemx", two(0xF000, 0xF800), two(0xF1C0, 0xFF8F), "IiDk&s"}, /* fmovem.x: reg to control,   static and dynamic: */
1089 {"fmovemx", two(0xF000, 0xD800), two(0xF1C0, 0xFF8F), "Ii&sDk"}, /* fmovem.x from control to reg, static and dynamic: */
1090
1091 {"fmovemx", two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Idl3&s"}, /* fmovem.x to control, static and dynamic: */
1092 {"fmovemx", two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Id#3&s"}, /* fmovem.x to control, static and dynamic: */
1093
1094 {"fmovemx", two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&sl3"}, /* fmovem.x from control, static and dynamic: */
1095 {"fmovemx", two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&s#3"}, /* fmovem.x from control, static and dynamic: */
1096
1097 {"fmovemx", two(0xF020, 0xE800), two(0xF1F8, 0xFF8F), "IiDk-s"}, /* fmovem.x: reg to autodecrement, static and dynamic */
1098 {"fmovemx", two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "IdL3-s"}, /* fmovem.x to autodecrement, static and dynamic */
1099 {"fmovemx", two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "Id#3-s"}, /* fmovem.x to autodecrement, static and dynamic */
1100
1101 {"fmovemx", two(0xF018, 0xD800), two(0xF1F8, 0xFF8F), "Ii+sDk"}, /* fmovem.x from autoincrement to reg, static and dynamic: */
1102 {"fmovemx", two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+sl3"}, /* fmovem.x from autoincrement, static and dynamic: */
1103 {"fmovemx", two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+s#3"}, /* fmovem.x from autoincrement, static and dynamic: */
1104
1105 {"fmoveml",     two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s"},
1106 {"fmoveml",     two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Ii#8@s"},
1107 {"fmoveml",     two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
1108
1109 {"fmoveml",     two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8"},
1110 {"fmoveml",     two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*s#8"},
1111 {"fmoveml",     two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8"},
1112
1113 /* fmovemx with register lists */
1114 {"fmovem",      two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "IdL3-s"},              /* fmovem.x to autodecrement,   static and dynamic */
1115 {"fmovem",      two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Idl3&s"},              /* fmovem.x to control, static and dynamic: */
1116 {"fmovem",      two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+sl3"},              /* fmovem.x from autoincrement, static and dynamic: */
1117 {"fmovem",      two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&sl3"},              /* fmovem.x from control,       static and dynamic: */
1118
1119         /* Alternate mnemonics for GNU as and GNU CC */
1120 {"fmovem",      two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "Id#3-s"},              /* fmovem.x to autodecrement,   static and dynamic */
1121 {"fmovem",      two(0xF020, 0xE800),    two(0xF1F8, 0xFF8F),    "IiDk-s"},              /* fmovem.x to autodecrement,   static and dynamic */
1122
1123 {"fmovem",      two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Id#3&s"},              /* fmovem.x to control, static and dynamic: */
1124 {"fmovem",      two(0xF000, 0xF800),    two(0xF1C0, 0xFF8F),    "IiDk&s"},              /* fmovem.x to control, static and dynamic: */
1125
1126 {"fmovem",      two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+s#3"},              /* fmovem.x from autoincrement, static and dynamic: */
1127 {"fmovem",      two(0xF018, 0xD800),    two(0xF1F8, 0xFF8F),    "Ii+sDk"},              /* fmovem.x from autoincrement, static and dynamic: */
1128   
1129 {"fmovem",      two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&s#3"},              /* fmovem.x from control,       static and dynamic: */
1130 {"fmovem",      two(0xF000, 0xD800),    two(0xF1C0, 0xFF8F),    "Ii&sDk"},              /* fmovem.x from control,       static and dynamic: */
1131
1132 /* fmoveml a FP-control register */
1133 {"fmovem",      two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
1134 {"fmovem",      two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8"},
1135
1136 /* fmoveml a FP-control reglist */
1137 {"fmovem",      two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s"},
1138 {"fmovem",      two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8"},
1139
1140 {"fmulb",       two(0xF000, 0x5823),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1141 {"fmuld",       two(0xF000, 0x5423),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1142 {"fmull",       two(0xF000, 0x4023),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1143 {"fmulp",       two(0xF000, 0x4C23),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1144 {"fmuls",       two(0xF000, 0x4423),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1145 {"fmulw",       two(0xF000, 0x5023),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1146 {"fmulx",       two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1147 {"fmulx",       two(0xF000, 0x4823),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1148 /* {"fmulx",    two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
1149
1150 {"fnegb",       two(0xF000, 0x581A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1151 {"fnegd",       two(0xF000, 0x541A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1152 {"fnegl",       two(0xF000, 0x401A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1153 {"fnegp",       two(0xF000, 0x4C1A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1154 {"fnegs",       two(0xF000, 0x441A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1155 {"fnegw",       two(0xF000, 0x501A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1156 {"fnegx",       two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1157 {"fnegx",       two(0xF000, 0x481A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1158 {"fnegx",       two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiFt"},
1159
1160 {"fnop",        two(0xF280, 0x0000),    two(0xFFFF, 0xFFFF),    "Ii"},
1161
1162 {"fremb",       two(0xF000, 0x5825),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1163 {"fremd",       two(0xF000, 0x5425),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1164 {"freml",       two(0xF000, 0x4025),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1165 {"fremp",       two(0xF000, 0x4C25),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1166 {"frems",       two(0xF000, 0x4425),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1167 {"fremw",       two(0xF000, 0x5025),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1168 {"fremx",       two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1169 {"fremx",       two(0xF000, 0x4825),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1170 /* {"fremx",    two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
1171
1172 {"frestore",    one(0xF140),            one(0xF1C0),            "Id&s"},
1173 {"frestore",    one(0xF158),            one(0xF1F8),            "Id+s"},
1174 {"fsave",       one(0xF100),            one(0xF1C0),            "Id&s"},
1175 {"fsave",       one(0xF120),            one(0xF1F8),            "Id-s"},
1176
1177 {"fsincosb",    two(0xF000, 0x5830),    two(0xF1C0, 0xFC78),    "Ii;bF3F7"},
1178 {"fsincosd",    two(0xF000, 0x5430),    two(0xF1C0, 0xFC78),    "Ii;FF3F7"},
1179 {"fsincosl",    two(0xF000, 0x4030),    two(0xF1C0, 0xFC78),    "Ii;lF3F7"},
1180 {"fsincosp",    two(0xF000, 0x4C30),    two(0xF1C0, 0xFC78),    "Ii;pF3F7"},
1181 {"fsincoss",    two(0xF000, 0x4430),    two(0xF1C0, 0xFC78),    "Ii;fF3F7"},
1182 {"fsincosw",    two(0xF000, 0x5030),    two(0xF1C0, 0xFC78),    "Ii;wF3F7"},
1183 {"fsincosx",    two(0xF000, 0x0030),    two(0xF1C0, 0xE078),    "IiF8F3F7"},
1184 {"fsincosx",    two(0xF000, 0x4830),    two(0xF1C0, 0xFC78),    "Ii;xF3F7"},
1185
1186 {"fscaleb",     two(0xF000, 0x5826),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1187 {"fscaled",     two(0xF000, 0x5426),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1188 {"fscalel",     two(0xF000, 0x4026),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1189 {"fscalep",     two(0xF000, 0x4C26),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1190 {"fscales",     two(0xF000, 0x4426),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1191 {"fscalew",     two(0xF000, 0x5026),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1192 {"fscalex",     two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1193 {"fscalex",     two(0xF000, 0x4826),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1194 /* {"fscalex",  two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
1195
1196 /* $ is necessary to prevent the assembler from using PC-relative.
1197    If @ were used, "label: fseq label" could produce "ftrapeq",
1198    because "label" became "pc@label".  */
1199 {"fseq",        two(0xF040, 0x0001),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1200 {"fsf",         two(0xF040, 0x0000),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1201 {"fsge",        two(0xF040, 0x0013),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1202 {"fsgl",        two(0xF040, 0x0016),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1203 {"fsgle",       two(0xF040, 0x0017),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1204 {"fsgt",        two(0xF040, 0x0012),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1205 {"fsle",        two(0xF040, 0x0015),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1206 {"fslt",        two(0xF040, 0x0014),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1207 {"fsne",        two(0xF040, 0x000E),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1208 {"fsnge",       two(0xF040, 0x001C),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1209 {"fsngl",       two(0xF040, 0x0019),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1210 {"fsngle",      two(0xF040, 0x0018),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1211 {"fsngt",       two(0xF040, 0x001D),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1212 {"fsnle",       two(0xF040, 0x001A),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1213 {"fsnlt",       two(0xF040, 0x001B),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1214 {"fsoge",       two(0xF040, 0x0003),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1215 {"fsogl",       two(0xF040, 0x0006),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1216 {"fsogt",       two(0xF040, 0x0002),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1217 {"fsole",       two(0xF040, 0x0005),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1218 {"fsolt",       two(0xF040, 0x0004),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1219 {"fsor",        two(0xF040, 0x0007),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1220 {"fsseq",       two(0xF040, 0x0011),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1221 {"fssf",        two(0xF040, 0x0010),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1222 {"fssne",       two(0xF040, 0x001E),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1223 {"fsst",        two(0xF040, 0x001F),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1224 {"fst",         two(0xF040, 0x000F),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1225 {"fsueq",       two(0xF040, 0x0009),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1226 {"fsuge",       two(0xF040, 0x000B),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1227 {"fsugt",       two(0xF040, 0x000A),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1228 {"fsule",       two(0xF040, 0x000D),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1229 {"fsult",       two(0xF040, 0x000C),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1230 {"fsun",        two(0xF040, 0x0008),    two(0xF1C0, 0xFFFF),    "Ii$s"},
1231
1232 {"fsgldivb",    two(0xF000, 0x5824),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1233 {"fsgldivd",    two(0xF000, 0x5424),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1234 {"fsgldivl",    two(0xF000, 0x4024),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1235 {"fsgldivp",    two(0xF000, 0x4C24),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1236 {"fsgldivs",    two(0xF000, 0x4424),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1237 {"fsgldivw",    two(0xF000, 0x5024),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1238 {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1239 {"fsgldivx",    two(0xF000, 0x4824),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1240 {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiFt"},
1241
1242 {"fsglmulb",    two(0xF000, 0x5827),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1243 {"fsglmuld",    two(0xF000, 0x5427),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1244 {"fsglmull",    two(0xF000, 0x4027),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1245 {"fsglmulp",    two(0xF000, 0x4C27),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1246 {"fsglmuls",    two(0xF000, 0x4427),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1247 {"fsglmulw",    two(0xF000, 0x5027),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1248 {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1249 {"fsglmulx",    two(0xF000, 0x4827),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1250 {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiFt"},
1251
1252 {"fsinb",       two(0xF000, 0x580E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1253 {"fsind",       two(0xF000, 0x540E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1254 {"fsinl",       two(0xF000, 0x400E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1255 {"fsinp",       two(0xF000, 0x4C0E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1256 {"fsins",       two(0xF000, 0x440E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1257 {"fsinw",       two(0xF000, 0x500E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1258 {"fsinx",       two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1259 {"fsinx",       two(0xF000, 0x480E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1260 {"fsinx",       two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiFt"},
1261
1262 {"fsinhb",      two(0xF000, 0x5802),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1263 {"fsinhd",      two(0xF000, 0x5402),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1264 {"fsinhl",      two(0xF000, 0x4002),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1265 {"fsinhp",      two(0xF000, 0x4C02),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1266 {"fsinhs",      two(0xF000, 0x4402),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1267 {"fsinhw",      two(0xF000, 0x5002),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1268 {"fsinhx",      two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1269 {"fsinhx",      two(0xF000, 0x4802),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1270 {"fsinhx",      two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiFt"},
1271
1272 {"fsqrtb",      two(0xF000, 0x5804),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1273 {"fsqrtd",      two(0xF000, 0x5404),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1274 {"fsqrtl",      two(0xF000, 0x4004),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1275 {"fsqrtp",      two(0xF000, 0x4C04),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1276 {"fsqrts",      two(0xF000, 0x4404),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1277 {"fsqrtw",      two(0xF000, 0x5004),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1278 {"fsqrtx",      two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1279 {"fsqrtx",      two(0xF000, 0x4804),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1280 {"fsqrtx",      two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiFt"},
1281
1282 {"fsubb",       two(0xF000, 0x5828),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1283 {"fsubd",       two(0xF000, 0x5428),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1284 {"fsubl",       two(0xF000, 0x4028),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1285 {"fsubp",       two(0xF000, 0x4C28),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1286 {"fsubs",       two(0xF000, 0x4428),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1287 {"fsubw",       two(0xF000, 0x5028),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1288 {"fsubx",       two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1289 {"fsubx",       two(0xF000, 0x4828),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1290 {"fsubx",       two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiFt"},
1291
1292 {"ftanb",       two(0xF000, 0x580F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1293 {"ftand",       two(0xF000, 0x540F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1294 {"ftanl",       two(0xF000, 0x400F),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1295 {"ftanp",       two(0xF000, 0x4C0F),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1296 {"ftans",       two(0xF000, 0x440F),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1297 {"ftanw",       two(0xF000, 0x500F),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1298 {"ftanx",       two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1299 {"ftanx",       two(0xF000, 0x480F),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1300 {"ftanx",       two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiFt"},
1301
1302 {"ftanhb",      two(0xF000, 0x5809),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1303 {"ftanhd",      two(0xF000, 0x5409),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1304 {"ftanhl",      two(0xF000, 0x4009),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1305 {"ftanhp",      two(0xF000, 0x4C09),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1306 {"ftanhs",      two(0xF000, 0x4409),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1307 {"ftanhw",      two(0xF000, 0x5009),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1308 {"ftanhx",      two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1309 {"ftanhx",      two(0xF000, 0x4809),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1310 {"ftanhx",      two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiFt"},
1311
1312 {"ftentoxb",    two(0xF000, 0x5812),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1313 {"ftentoxd",    two(0xF000, 0x5412),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1314 {"ftentoxl",    two(0xF000, 0x4012),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1315 {"ftentoxp",    two(0xF000, 0x4C12),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1316 {"ftentoxs",    two(0xF000, 0x4412),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1317 {"ftentoxw",    two(0xF000, 0x5012),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1318 {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1319 {"ftentoxx",    two(0xF000, 0x4812),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1320 {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiFt"},
1321
1322 {"ftrapeq",     two(0xF07C, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii"},
1323 {"ftrapf",      two(0xF07C, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii"},
1324 {"ftrapge",     two(0xF07C, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii"},
1325 {"ftrapgl",     two(0xF07C, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii"},
1326 {"ftrapgle",    two(0xF07C, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii"},
1327 {"ftrapgt",     two(0xF07C, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii"},
1328 {"ftraple",     two(0xF07C, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii"},
1329 {"ftraplt",     two(0xF07C, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii"},
1330 {"ftrapne",     two(0xF07C, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii"},
1331 {"ftrapnge",    two(0xF07C, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii"},
1332 {"ftrapngl",    two(0xF07C, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii"},
1333 {"ftrapngle",   two(0xF07C, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii"},
1334 {"ftrapngt",    two(0xF07C, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii"},
1335 {"ftrapnle",    two(0xF07C, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii"},
1336 {"ftrapnlt",    two(0xF07C, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii"},
1337 {"ftrapoge",    two(0xF07C, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii"},
1338 {"ftrapogl",    two(0xF07C, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii"},
1339 {"ftrapogt",    two(0xF07C, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii"},
1340 {"ftrapole",    two(0xF07C, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii"},
1341 {"ftrapolt",    two(0xF07C, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii"},
1342 {"ftrapor",     two(0xF07C, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii"},
1343 {"ftrapseq",    two(0xF07C, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii"},
1344 {"ftrapsf",     two(0xF07C, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii"},
1345 {"ftrapsne",    two(0xF07C, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii"},
1346 {"ftrapst",     two(0xF07C, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii"},
1347 {"ftrapt",      two(0xF07C, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii"},
1348 {"ftrapueq",    two(0xF07C, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii"},
1349 {"ftrapuge",    two(0xF07C, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii"},
1350 {"ftrapugt",    two(0xF07C, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii"},
1351 {"ftrapule",    two(0xF07C, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii"},
1352 {"ftrapult",    two(0xF07C, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii"},
1353 {"ftrapun",     two(0xF07C, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii"},
1354         
1355 {"ftrapeqw",    two(0xF07A, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1356 {"ftrapfw",     two(0xF07A, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1357 {"ftrapgew",    two(0xF07A, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1358 {"ftrapglw",    two(0xF07A, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1359 {"ftrapglew",   two(0xF07A, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1360 {"ftrapgtw",    two(0xF07A, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1361 {"ftraplew",    two(0xF07A, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1362 {"ftrapltw",    two(0xF07A, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1363 {"ftrapnew",    two(0xF07A, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1364 {"ftrapngew",   two(0xF07A, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1365 {"ftrapnglw",   two(0xF07A, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1366 {"ftrapnglew",  two(0xF07A, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1367 {"ftrapngtw",   two(0xF07A, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1368 {"ftrapnlew",   two(0xF07A, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1369 {"ftrapnltw",   two(0xF07A, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1370 {"ftrapogew",   two(0xF07A, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1371 {"ftrapoglw",   two(0xF07A, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1372 {"ftrapogtw",   two(0xF07A, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1373 {"ftrapolew",   two(0xF07A, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1374 {"ftrapoltw",   two(0xF07A, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1375 {"ftraporw",    two(0xF07A, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1376 {"ftrapseqw",   two(0xF07A, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1377 {"ftrapsfw",    two(0xF07A, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1378 {"ftrapsnew",   two(0xF07A, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1379 {"ftrapstw",    two(0xF07A, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1380 {"ftraptw",     two(0xF07A, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1381 {"ftrapueqw",   two(0xF07A, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1382 {"ftrapugew",   two(0xF07A, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1383 {"ftrapugtw",   two(0xF07A, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1384 {"ftrapulew",   two(0xF07A, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1385 {"ftrapultw",   two(0xF07A, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1386 {"ftrapunw",    two(0xF07A, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^w"},
1387
1388 {"ftrapeql",    two(0xF07B, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1389 {"ftrapfl",     two(0xF07B, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1390 {"ftrapgel",    two(0xF07B, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1391 {"ftrapgll",    two(0xF07B, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1392 {"ftrapglel",   two(0xF07B, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1393 {"ftrapgtl",    two(0xF07B, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1394 {"ftraplel",    two(0xF07B, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1395 {"ftrapltl",    two(0xF07B, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1396 {"ftrapnel",    two(0xF07B, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1397 {"ftrapngel",   two(0xF07B, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1398 {"ftrapngll",   two(0xF07B, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1399 {"ftrapnglel",  two(0xF07B, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1400 {"ftrapngtl",   two(0xF07B, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1401 {"ftrapnlel",   two(0xF07B, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1402 {"ftrapnltl",   two(0xF07B, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1403 {"ftrapogel",   two(0xF07B, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1404 {"ftrapogll",   two(0xF07B, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1405 {"ftrapogtl",   two(0xF07B, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1406 {"ftrapolel",   two(0xF07B, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1407 {"ftrapoltl",   two(0xF07B, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1408 {"ftraporl",    two(0xF07B, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1409 {"ftrapseql",   two(0xF07B, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1410 {"ftrapsfl",    two(0xF07B, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1411 {"ftrapsnel",   two(0xF07B, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1412 {"ftrapstl",    two(0xF07B, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1413 {"ftraptl",     two(0xF07B, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1414 {"ftrapueql",   two(0xF07B, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1415 {"ftrapugel",   two(0xF07B, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1416 {"ftrapugtl",   two(0xF07B, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1417 {"ftrapulel",   two(0xF07B, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1418 {"ftrapultl",   two(0xF07B, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1419 {"ftrapunl",    two(0xF07B, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^l"},
1420
1421 {"ftstb",       two(0xF000, 0x583A),    two(0xF1C0, 0xFC7F),    "Ii;b"},
1422 {"ftstd",       two(0xF000, 0x543A),    two(0xF1C0, 0xFC7F),    "Ii;F"},
1423 {"ftstl",       two(0xF000, 0x403A),    two(0xF1C0, 0xFC7F),    "Ii;l"},
1424 {"ftstp",       two(0xF000, 0x4C3A),    two(0xF1C0, 0xFC7F),    "Ii;p"},
1425 {"ftsts",       two(0xF000, 0x443A),    two(0xF1C0, 0xFC7F),    "Ii;f"},
1426 {"ftstw",       two(0xF000, 0x503A),    two(0xF1C0, 0xFC7F),    "Ii;w"},
1427 {"ftstx",       two(0xF000, 0x003A),    two(0xF1C0, 0xE07F),    "IiF8"},
1428 {"ftstx",       two(0xF000, 0x483A),    two(0xF1C0, 0xFC7F),    "Ii;x"},
1429
1430 {"ftwotoxb",    two(0xF000, 0x5811),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
1431 {"ftwotoxd",    two(0xF000, 0x5411),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
1432 {"ftwotoxl",    two(0xF000, 0x4011),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
1433 {"ftwotoxp",    two(0xF000, 0x4C11),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
1434 {"ftwotoxs",    two(0xF000, 0x4411),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
1435 {"ftwotoxw",    two(0xF000, 0x5011),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
1436 {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiF8F7"},
1437 {"ftwotoxx",    two(0xF000, 0x4811),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
1438 {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiFt"},
1439
1440 /* Variable-sized float branches */
1441
1442 {"fjeq",        one(0xF081),            one(0xF1FF),            "IdBc"},
1443 {"fjf",         one(0xF080),            one(0xF1FF),            "IdBc"},
1444 {"fjge",        one(0xF093),            one(0xF1FF),            "IdBc"},
1445 {"fjgl",        one(0xF096),            one(0xF1FF),            "IdBc"},
1446 {"fjgle",       one(0xF097),            one(0xF1FF),            "IdBc"},
1447 {"fjgt",        one(0xF092),            one(0xF1FF),            "IdBc"},
1448 {"fjle",        one(0xF095),            one(0xF1FF),            "IdBc"},
1449 {"fjlt",        one(0xF094),            one(0xF1FF),            "IdBc"},
1450 {"fjne",        one(0xF08E),            one(0xF1FF),            "IdBc"},
1451 {"fjnge",       one(0xF09C),            one(0xF1FF),            "IdBc"},
1452 {"fjngl",       one(0xF099),            one(0xF1FF),            "IdBc"},
1453 {"fjngle",      one(0xF098),            one(0xF1FF),            "IdBc"},
1454 {"fjngt",       one(0xF09D),            one(0xF1FF),            "IdBc"},
1455 {"fjnle",       one(0xF09A),            one(0xF1FF),            "IdBc"},
1456 {"fjnlt",       one(0xF09B),            one(0xF1FF),            "IdBc"},
1457 {"fjoge",       one(0xF083),            one(0xF1FF),            "IdBc"},
1458 {"fjogl",       one(0xF086),            one(0xF1FF),            "IdBc"},
1459 {"fjogt",       one(0xF082),            one(0xF1FF),            "IdBc"},
1460 {"fjole",       one(0xF085),            one(0xF1FF),            "IdBc"},
1461 {"fjolt",       one(0xF084),            one(0xF1FF),            "IdBc"},
1462 {"fjor",        one(0xF087),            one(0xF1FF),            "IdBc"},
1463 {"fjseq",       one(0xF091),            one(0xF1FF),            "IdBc"},
1464 {"fjsf",        one(0xF090),            one(0xF1FF),            "IdBc"},
1465 {"fjsne",       one(0xF09E),            one(0xF1FF),            "IdBc"},
1466 {"fjst",        one(0xF09F),            one(0xF1FF),            "IdBc"},
1467 {"fjt",         one(0xF08F),            one(0xF1FF),            "IdBc"},
1468 {"fjueq",       one(0xF089),            one(0xF1FF),            "IdBc"},
1469 {"fjuge",       one(0xF08B),            one(0xF1FF),            "IdBc"},
1470 {"fjugt",       one(0xF08A),            one(0xF1FF),            "IdBc"},
1471 {"fjule",       one(0xF08D),            one(0xF1FF),            "IdBc"},
1472 {"fjult",       one(0xF08C),            one(0xF1FF),            "IdBc"},
1473 {"fjun",        one(0xF088),            one(0xF1FF),            "IdBc"},
1474
1475 /* Variable-sized branches */
1476
1477 {"jbsr",        one(0060400),           one(0177400),           "Bg"},
1478 {"jbsr",        one(0047200),           one(0177700),           "!s"},
1479 {"jra",         one(0060000),           one(0177400),           "Bg"},
1480 {"jra",         one(0047300),           one(0177700),           "!s"},
1481   
1482 {"jhi",         one(0061000),           one(0177400),           "Bg"},
1483 {"jls",         one(0061400),           one(0177400),           "Bg"},
1484 {"jcc",         one(0062000),           one(0177400),           "Bg"},
1485 {"jcs",         one(0062400),           one(0177400),           "Bg"},
1486 {"jne",         one(0063000),           one(0177400),           "Bg"},
1487 {"jeq",         one(0063400),           one(0177400),           "Bg"},
1488 {"jvc",         one(0064000),           one(0177400),           "Bg"},
1489 {"jvs",         one(0064400),           one(0177400),           "Bg"},
1490 {"jpl",         one(0065000),           one(0177400),           "Bg"},
1491 {"jmi",         one(0065400),           one(0177400),           "Bg"},
1492 {"jge",         one(0066000),           one(0177400),           "Bg"},
1493 {"jlt",         one(0066400),           one(0177400),           "Bg"},
1494 {"jgt",         one(0067000),           one(0177400),           "Bg"},
1495 {"jle",         one(0067400),           one(0177400),           "Bg"},
1496
1497 {"movql",       one(0070000),           one(0170400),           "MsDd"},
1498 {"moveql",      one(0070000),           one(0170400),           "MsDd"},
1499 {"moval",       one(0020100),           one(0170700),           "*lAd"},
1500 {"movaw",       one(0030100),           one(0170700),           "*wAd"},
1501 {"movb",        one(0010000),           one(0170000),           ";b$d"},        /* mov */
1502 {"movl",        one(0070000),           one(0170400),           "MsDd"},        /* movq written as mov */
1503 {"movl",        one(0020000),           one(0170000),           "*l$d"},
1504 {"movl",        one(0020100),           one(0170700),           "*lAd"},
1505 {"movl",        one(0047140),           one(0177770),           "AsUd"},        /* mov to USP */
1506 {"movl",        one(0047150),           one(0177770),           "UdAs"},        /* mov from USP */
1507 {"movc",        one(0047173),           one(0177777),           "R1Jj"},
1508 {"movc",        one(0047173),           one(0177777),           "R1#j"},
1509 {"movc",        one(0047172),           one(0177777),           "JjR1"},
1510 {"movc",        one(0047172),           one(0177777),           "#jR1"},
1511 {"movml",       one(0044300),           one(0177700),           "#w&s"},        /* movm reg to mem. */
1512 {"movml",       one(0044340),           one(0177770),           "#w-s"},        /* movm reg to autodecrement. */
1513 {"movml",       one(0046300),           one(0177700),           "!s#w"},        /* movm mem to reg. */
1514 {"movml",       one(0046330),           one(0177770),           "+s#w"},        /* movm autoinc to reg. */
1515 {"movml",       one(0044300),           one(0177700),           "Lw&s"},        /* movm reg to mem. */
1516 {"movml",       one(0044340),           one(0177770),           "lw-s"},        /* movm reg to autodecrement. */
1517 {"movml",       one(0046300),           one(0177700),           "!sLw"},        /* movm mem to reg. */
1518 {"movml",       one(0046330),           one(0177770),           "+sLw"},        /* movm autoinc to reg. */
1519 {"movmw",       one(0044200),           one(0177700),           "#w&s"},        /* movm reg to mem. */
1520 {"movmw",       one(0044240),           one(0177770),           "#w-s"},        /* movm reg to autodecrement. */
1521 {"movmw",       one(0046200),           one(0177700),           "!s#w"},        /* movm mem to reg. */
1522 {"movmw",       one(0046230),           one(0177770),           "+s#w"},        /* movm autoinc to reg. */
1523 {"movmw",       one(0044200),           one(0177700),           "Lw&s"},        /* movm reg to mem. */
1524 {"movmw",       one(0044240),           one(0177770),           "lw-s"},        /* movm reg to autodecrement. */
1525 {"movmw",       one(0046200),           one(0177700),           "!sLw"},        /* movm mem to reg. */
1526 {"movmw",       one(0046230),           one(0177770),           "+sLw"},        /* movm autoinc to reg. */
1527 {"movpl",       one(0000510),           one(0170770),           "dsDd"},        /* memory to register */
1528 {"movpl",       one(0000710),           one(0170770),           "Ddds"},        /* register to memory */
1529 {"movpw",       one(0000410),           one(0170770),           "dsDd"},        /* memory to register */
1530 {"movpw",       one(0000610),           one(0170770),           "Ddds"},        /* register to memory */
1531 {"movq",        one(0070000),           one(0170400),           "MsDd"},
1532 {"movw",        one(0030000),           one(0170000),           "*w$d"},
1533 {"movw",        one(0030100),           one(0170700),           "*wAd"},        /* mova,        written as mov */
1534 {"movw",        one(0040300),           one(0177700),           "Ss$s"},        /* Move from sr */
1535 {"movw",        one(0041300),           one(0177700),           "Cs$s"},        /* Move from ccr */
1536 {"movw",        one(0042300),           one(0177700),           ";wCd"},        /* mov to ccr */
1537 {"movw",        one(0043300),           one(0177700),           ";wSd"},        /* mov to sr */
1538
1539 {"movsb",       two(0007000, 0),        two(0177700, 07777),    "~sR1"},
1540 {"movsb",       two(0007000, 04000),    two(0177700, 07777),    "R1~s"},
1541 {"movsl",       two(0007200, 0),        two(0177700, 07777),    "~sR1"},
1542 {"movsl",       two(0007200, 04000),    two(0177700, 07777),    "R1~s"},
1543 {"movsw",       two(0007100, 0),        two(0177700, 07777),    "~sR1"},
1544 {"movsw",       two(0007100, 04000),    two(0177700, 07777),    "R1~s"},
1545
1546 #ifdef m68851
1547  /* name */     /* opcode */            /* match */             /* args */
1548
1549 {"pbac",        one(0xf0c7),            one(0xffbf),            "Bc"},
1550 {"pbacw",       one(0xf087),            one(0xffbf),            "Bc"},
1551 {"pbas",        one(0xf0c6),            one(0xffbf),            "Bc"},
1552 {"pbasw",       one(0xf086),            one(0xffbf),            "Bc"},
1553 {"pbbc",        one(0xf0c1),            one(0xffbf),            "Bc"},
1554 {"pbbcw",       one(0xf081),            one(0xffbf),            "Bc"},
1555 {"pbbs",        one(0xf0c0),            one(0xffbf),            "Bc"},
1556 {"pbbsw",       one(0xf080),            one(0xffbf),            "Bc"},
1557 {"pbcc",        one(0xf0cf),            one(0xffbf),            "Bc"},
1558 {"pbccw",       one(0xf08f),            one(0xffbf),            "Bc"},
1559 {"pbcs",        one(0xf0ce),            one(0xffbf),            "Bc"},
1560 {"pbcsw",       one(0xf08e),            one(0xffbf),            "Bc"},
1561 {"pbgc",        one(0xf0cd),            one(0xffbf),            "Bc"},
1562 {"pbgcw",       one(0xf08d),            one(0xffbf),            "Bc"},
1563 {"pbgs",        one(0xf0cc),            one(0xffbf),            "Bc"},
1564 {"pbgsw",       one(0xf08c),            one(0xffbf),            "Bc"},
1565 {"pbic",        one(0xf0cb),            one(0xffbf),            "Bc"},
1566 {"pbicw",       one(0xf08b),            one(0xffbf),            "Bc"},
1567 {"pbis",        one(0xf0ca),            one(0xffbf),            "Bc"},
1568 {"pbisw",       one(0xf08a),            one(0xffbf),            "Bc"},
1569 {"pblc",        one(0xf0c3),            one(0xffbf),            "Bc"},
1570 {"pblcw",       one(0xf083),            one(0xffbf),            "Bc"},
1571 {"pbls",        one(0xf0c2),            one(0xffbf),            "Bc"},
1572 {"pblsw",       one(0xf082),            one(0xffbf),            "Bc"},
1573 {"pbsc",        one(0xf0c5),            one(0xffbf),            "Bc"},
1574 {"pbscw",       one(0xf085),            one(0xffbf),            "Bc"},
1575 {"pbss",        one(0xf0c4),            one(0xffbf),            "Bc"},
1576 {"pbssw",       one(0xf084),            one(0xffbf),            "Bc"},
1577 {"pbwc",        one(0xf0c9),            one(0xffbf),            "Bc"},
1578 {"pbwcw",       one(0xf089),            one(0xffbf),            "Bc"},
1579 {"pbws",        one(0xf0c8),            one(0xffbf),            "Bc"},
1580 {"pbwsw",       one(0xf088),            one(0xffbf),            "Bc"},
1581
1582
1583 {"pdbac",       two(0xf048, 0x0007),    two(0xfff8, 0xffff),    "DsBw"},
1584 {"pdbas",       two(0xf048, 0x0006),    two(0xfff8, 0xffff),    "DsBw"},
1585 {"pdbbc",       two(0xf048, 0x0001),    two(0xfff8, 0xffff),    "DsBw"},
1586 {"pdbbs",       two(0xf048, 0x0000),    two(0xfff8, 0xffff),    "DsBw"},
1587 {"pdbcc",       two(0xf048, 0x000f),    two(0xfff8, 0xffff),    "DsBw"},
1588 {"pdbcs",       two(0xf048, 0x000e),    two(0xfff8, 0xffff),    "DsBw"},
1589 {"pdbgc",       two(0xf048, 0x000d),    two(0xfff8, 0xffff),    "DsBw"},
1590 {"pdbgs",       two(0xf048, 0x000c),    two(0xfff8, 0xffff),    "DsBw"},
1591 {"pdbic",       two(0xf048, 0x000b),    two(0xfff8, 0xffff),    "DsBw"},
1592 {"pdbis",       two(0xf048, 0x000a),    two(0xfff8, 0xffff),    "DsBw"},
1593 {"pdblc",       two(0xf048, 0x0003),    two(0xfff8, 0xffff),    "DsBw"},
1594 {"pdbls",       two(0xf048, 0x0002),    two(0xfff8, 0xffff),    "DsBw"},
1595 {"pdbsc",       two(0xf048, 0x0005),    two(0xfff8, 0xffff),    "DsBw"},
1596 {"pdbss",       two(0xf048, 0x0004),    two(0xfff8, 0xffff),    "DsBw"},
1597 {"pdbwc",       two(0xf048, 0x0009),    two(0xfff8, 0xffff),    "DsBw"},
1598 {"pdbws",       two(0xf048, 0x0008),    two(0xfff8, 0xffff),    "DsBw"},
1599
1600 {"pflusha",     two(0xf000, 0x2400),    two(0xffff, 0xffff),    "" },
1601
1602 {"pflush",      two(0xf000, 0x3010),    two(0xffc0, 0xfe10),    "T3T9" },
1603 {"pflush",      two(0xf000, 0x3810),    two(0xffc0, 0xfe10),    "T3T9&s" },
1604 {"pflush",      two(0xf000, 0x3008),    two(0xffc0, 0xfe18),    "D3T9" },
1605 {"pflush",      two(0xf000, 0x3808),    two(0xffc0, 0xfe18),    "D3T9&s" },
1606 {"pflush",      two(0xf000, 0x3000),    two(0xffc0, 0xfe1e),    "f3T9" },
1607 {"pflush",      two(0xf000, 0x3800),    two(0xffc0, 0xfe1e),    "f3T9&s" },
1608
1609 {"pflushs",     two(0xf000, 0x3410),    two(0xfff8, 0xfe10),    "T3T9" },
1610 {"pflushs",     two(0xf000, 0x3c10),    two(0xfff8, 0xfe00),    "T3T9&s" },
1611 {"pflushs",     two(0xf000, 0x3408),    two(0xfff8, 0xfe18),    "D3T9" },
1612 {"pflushs",     two(0xf000, 0x3c08),    two(0xfff8, 0xfe18),    "D3T9&s" },
1613 {"pflushs",     two(0xf000, 0x3400),    two(0xfff8, 0xfe1e),    "f3T9" },
1614 {"pflushs",     two(0xf000, 0x3c00),    two(0xfff8, 0xfe1e),    "f3T9&s"},
1615
1616 {"pflushr",     two(0xf000, 0xa000),    two(0xffc0, 0xffff),    "|s" },
1617
1618 {"ploadr",      two(0xf000, 0x2210),    two(0xffc0, 0xfff0),    "T3&s" },
1619 {"ploadr",      two(0xf000, 0x2208),    two(0xffc0, 0xfff8),    "D3&s" },
1620 {"ploadr",      two(0xf000, 0x2200),    two(0xffc0, 0xfffe),    "f3&s" },
1621 {"ploadw",      two(0xf000, 0x2010),    two(0xffc0, 0xfff0),    "T3&s" },
1622 {"ploadw",      two(0xf000, 0x2008),    two(0xffc0, 0xfff8),    "D3&s" },
1623 {"ploadw",      two(0xf000, 0x2000),    two(0xffc0, 0xfffe),    "f3&s" },
1624
1625 /* TC, CRP, DRP, SRP, CAL, VAL, SCC, AC */
1626 {"pmove",       two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "*sP8" },
1627 {"pmove",       two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "P8%s" },
1628 {"pmove",       two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "|sW8" },
1629 {"pmove",       two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "W8~s" },
1630
1631 /* BADx, BACx */
1632 {"pmove",       two(0xf000, 0x6200),    two(0xffc0, 0xe3e3),    "*sX3" },
1633 {"pmove",       two(0xf000, 0x6000),    two(0xffc0, 0xe3e3),    "X3%s" },
1634
1635 /* PSR, PCSR */
1636 /* {"pmove",    two(0xf000, 0x6100),    two(oxffc0, oxffff),    "*sZ8" }, */
1637 {"pmove",       two(0xf000, 0x6000),    two(0xffc0, 0xffff),    "*sY8" },
1638 {"pmove",       two(0xf000, 0x6200),    two(0xffc0, 0xffff),    "Y8%s" },
1639 {"pmove",       two(0xf000, 0x6600),    two(0xffc0, 0xffff),    "Z8%s" },
1640
1641 {"prestore",    one(0xf140),            one(0xffc0),            "&s"},
1642 {"prestore",    one(0xf158),            one(0xfff8),            "+s"},
1643 {"psave",       one(0xf100),            one(0xffc0),            "&s"},
1644 {"psave",       one(0xf100),            one(0xffc0),            "+s"},
1645
1646 {"psac",        two(0xf040, 0x0007),    two(0xffc0, 0xffff),    "@s"},
1647 {"psas",        two(0xf040, 0x0006),    two(0xffc0, 0xffff),    "@s"},
1648 {"psbc",        two(0xf040, 0x0001),    two(0xffc0, 0xffff),    "@s"},
1649 {"psbs",        two(0xf040, 0x0000),    two(0xffc0, 0xffff),    "@s"},
1650 {"pscc",        two(0xf040, 0x000f),    two(0xffc0, 0xffff),    "@s"},
1651 {"pscs",        two(0xf040, 0x000e),    two(0xffc0, 0xffff),    "@s"},
1652 {"psgc",        two(0xf040, 0x000d),    two(0xffc0, 0xffff),    "@s"},
1653 {"psgs",        two(0xf040, 0x000c),    two(0xffc0, 0xffff),    "@s"},
1654 {"psic",        two(0xf040, 0x000b),    two(0xffc0, 0xffff),    "@s"},
1655 {"psis",        two(0xf040, 0x000a),    two(0xffc0, 0xffff),    "@s"},
1656 {"pslc",        two(0xf040, 0x0003),    two(0xffc0, 0xffff),    "@s"},
1657 {"psls",        two(0xf040, 0x0002),    two(0xffc0, 0xffff),    "@s"},
1658 {"pssc",        two(0xf040, 0x0005),    two(0xffc0, 0xffff),    "@s"},
1659 {"psss",        two(0xf040, 0x0004),    two(0xffc0, 0xffff),    "@s"},
1660 {"pswc",        two(0xf040, 0x0009),    two(0xffc0, 0xffff),    "@s"},
1661 {"psws",        two(0xf040, 0x0008),    two(0xffc0, 0xffff),    "@s"},
1662
1663 {"ptestr",      two(0xf000, 0x8210),    two(0xffc0, 0xe3f0),    "T3&sQ8" },
1664 {"ptestr",      two(0xf000, 0x8310),    two(0xffc0, 0xe310),    "T3&sQ8A9" },
1665 {"ptestr",      two(0xf000, 0x8208),    two(0xffc0, 0xe3f8),    "D3&sQ8" },
1666 {"ptestr",      two(0xf000, 0x8308),    two(0xffc0, 0xe318),    "D3&sQ8A9" },
1667 {"ptestr",      two(0xf000, 0x8200),    two(0xffc0, 0xe3fe),    "f3&sQ8" },
1668 {"ptestr",      two(0xf000, 0x8300),    two(0xffc0, 0xe31e),    "f3&sQ8A9" },
1669
1670 {"ptestw",      two(0xf000, 0x8010),    two(0xffc0, 0xe3f0),    "T3&sQ8" },
1671 {"ptestw",      two(0xf000, 0x8110),    two(0xffc0, 0xe310),    "T3&sQ8A9" },
1672 {"ptestw",      two(0xf000, 0x8008),    two(0xffc0, 0xe3f8),    "D3&sQ8" },
1673 {"ptestw",      two(0xf000, 0x8108),    two(0xffc0, 0xe318),    "D3&sQ8A9" },
1674 {"ptestw",      two(0xf000, 0x8000),    two(0xffc0, 0xe3fe),    "f3&sQ8" },
1675 {"ptestw",      two(0xf000, 0x8100),    two(0xffc0, 0xe31e),    "f3&sQ8A9" },
1676
1677 {"ptrapacw",    two(0xf07a, 0x0007),    two(0xffff, 0xffff),    "#w"},
1678 {"ptrapacl",    two(0xf07b, 0x0007),    two(0xffff, 0xffff),    "#l"},
1679 {"ptrapac",     two(0xf07c, 0x0007),    two(0xffff, 0xffff),    ""},
1680
1681 {"ptrapasw",    two(0xf07a, 0x0006),    two(0xffff, 0xffff),    "#w"},
1682 {"ptrapasl",    two(0xf07b, 0x0006),    two(0xffff, 0xffff),    "#l"},
1683 {"ptrapas",     two(0xf07c, 0x0006),    two(0xffff, 0xffff),    ""},
1684
1685 {"ptrapbcw",    two(0xf07a, 0x0001),    two(0xffff, 0xffff),    "#w"},
1686 {"ptrapbcl",    two(0xf07b, 0x0001),    two(0xffff, 0xffff),    "#l"},
1687 {"ptrapbc",     two(0xf07c, 0x0001),    two(0xffff, 0xffff),    ""},
1688
1689 {"ptrapbsw",    two(0xf07a, 0x0000),    two(0xffff, 0xffff),    "#w"},
1690 {"ptrapbsl",    two(0xf07b, 0x0000),    two(0xffff, 0xffff),    "#l"},
1691 {"ptrapbs",     two(0xf07c, 0x0000),    two(0xffff, 0xffff),    ""},
1692
1693 {"ptrapccw",    two(0xf07a, 0x000f),    two(0xffff, 0xffff),    "#w"},
1694 {"ptrapccl",    two(0xf07b, 0x000f),    two(0xffff, 0xffff),    "#l"},
1695 {"ptrapcc",     two(0xf07c, 0x000f),    two(0xffff, 0xffff),    ""},
1696
1697 {"ptrapcsw",    two(0xf07a, 0x000e),    two(0xffff, 0xffff),    "#w"},
1698 {"ptrapcsl",    two(0xf07b, 0x000e),    two(0xffff, 0xffff),    "#l"},
1699 {"ptrapcs",     two(0xf07c, 0x000e),    two(0xffff, 0xffff),    ""},
1700
1701 {"ptrapgcw",    two(0xf07a, 0x000d),    two(0xffff, 0xffff),    "#w"},
1702 {"ptrapgcl",    two(0xf07b, 0x000d),    two(0xffff, 0xffff),    "#l"},
1703 {"ptrapgc",     two(0xf07c, 0x000d),    two(0xffff, 0xffff),    ""},
1704
1705 {"ptrapgsw",    two(0xf07a, 0x000c),    two(0xffff, 0xffff),    "#w"},
1706 {"ptrapgsl",    two(0xf07b, 0x000c),    two(0xffff, 0xffff),    "#l"},
1707 {"ptrapgs",     two(0xf07c, 0x000c),    two(0xffff, 0xffff),    ""},
1708
1709 {"ptrapicw",    two(0xf07a, 0x000b),    two(0xffff, 0xffff),    "#w"},
1710 {"ptrapicl",    two(0xf07b, 0x000b),    two(0xffff, 0xffff),    "#l"},
1711 {"ptrapic",     two(0xf07c, 0x000b),    two(0xffff, 0xffff),    ""},
1712
1713 {"ptrapisw",    two(0xf07a, 0x000a),    two(0xffff, 0xffff),    "#w"},
1714 {"ptrapisl",    two(0xf07b, 0x000a),    two(0xffff, 0xffff),    "#l"},
1715 {"ptrapis",     two(0xf07c, 0x000a),    two(0xffff, 0xffff),    ""},
1716
1717 {"ptraplcw",    two(0xf07a, 0x0003),    two(0xffff, 0xffff),    "#w"},
1718 {"ptraplcl",    two(0xf07b, 0x0003),    two(0xffff, 0xffff),    "#l"},
1719 {"ptraplc",     two(0xf07c, 0x0003),    two(0xffff, 0xffff),    ""},
1720
1721 {"ptraplsw",    two(0xf07a, 0x0002),    two(0xffff, 0xffff),    "#w"},
1722 {"ptraplsl",    two(0xf07b, 0x0002),    two(0xffff, 0xffff),    "#l"},
1723 {"ptrapls",     two(0xf07c, 0x0002),    two(0xffff, 0xffff),    ""},
1724
1725 {"ptrapscw",    two(0xf07a, 0x0005),    two(0xffff, 0xffff),    "#w"},
1726 {"ptrapscl",    two(0xf07b, 0x0005),    two(0xffff, 0xffff),    "#l"},
1727 {"ptrapsc",     two(0xf07c, 0x0005),    two(0xffff, 0xffff),    ""},
1728
1729 {"ptrapssw",    two(0xf07a, 0x0004),    two(0xffff, 0xffff),    "#w"},
1730 {"ptrapssl",    two(0xf07b, 0x0004),    two(0xffff, 0xffff),    "#l"},
1731 {"ptrapss",     two(0xf07c, 0x0004),    two(0xffff, 0xffff),    ""},
1732
1733 {"ptrapwcw",    two(0xf07a, 0x0009),    two(0xffff, 0xffff),    "#w"},
1734 {"ptrapwcl",    two(0xf07b, 0x0009),    two(0xffff, 0xffff),    "#l"},
1735 {"ptrapwc",     two(0xf07c, 0x0009),    two(0xffff, 0xffff),    ""},
1736
1737 {"ptrapwsw",    two(0xf07a, 0x0008),    two(0xffff, 0xffff),    "#w"},
1738 {"ptrapwsl",    two(0xf07b, 0x0008),    two(0xffff, 0xffff),    "#l"},
1739 {"ptrapws",     two(0xf07c, 0x0008),    two(0xffff, 0xffff),    ""},
1740
1741 {"pvalid",      two(0xf000, 0x2800),    two(0xffc0, 0xffff),    "Vs&s"},
1742 {"pvalid",      two(0xf000, 0x2c00),    two(0xffc0, 0xfff8),    "A3&s" },
1743
1744 #endif /* m68851 */
1745
1746 };
1747
1748 int numopcodes=sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
1749
1750 struct m68k_opcode *endop = m68k_opcodes+sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
1751
1752 /*
1753  * Local Variables:
1754  * fill-column: 131
1755  * End:
1756  */
1757
1758 /* end of m68k-opcode.h */