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