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