ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/mon/src/disass/m68k-opc.c
Revision: 1.1
Committed: 2000-09-25T12:44:38Z (23 years, 7 months ago) by cebix
Content type: text/plain
Branch: MAIN
CVS Tags: release_3-1, release_3-2, HEAD
Log Message:
- replaced 680x0 and 80x86 disassemblers with the ones from GNU binutils
- 680x0 disassembler shows symbolic MacOS low memory globals

File Contents

# Content
1 /* Opcode table for m680[012346]0/m6888[12]/m68851/mcf5200.
2 Copyright 1989, 91, 92, 93, 94, 95, 96, 97, 98, 1999
3 Free Software Foundation.
4
5 This file is part of GDB, GAS, and the GNU binutils.
6
7 GDB, GAS, and the GNU binutils are free software; you can redistribute
8 them and/or modify them under the terms of the GNU General Public
9 License as published by the Free Software Foundation; either version
10 1, or (at your option) any later version.
11
12 GDB, GAS, and the GNU binutils are distributed in the hope that they
13 will be useful, but WITHOUT ANY WARRANTY; without even the implied
14 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
15 the GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this file; see the file COPYING. If not, write to the Free
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA. */
21
22 #include "ansidecl.h"
23 #include "m68k.h"
24
25 #define one(x) ((unsigned int) (x) << 16)
26 #define two(x, y) (((unsigned int) (x) << 16) + (y))
27
28 /* The assembler requires that all instances of the same mnemonic must
29 be consecutive. If they aren't, the assembler will bomb at
30 runtime. */
31
32 const struct m68k_opcode m68k_opcodes[] =
33 {
34 {"abcd", one(0140400), one(0170770), "DsDd", m68000up },
35 {"abcd", one(0140410), one(0170770), "-s-d", m68000up },
36
37 {"adda.w", one(0150300), one(0170700), "*wAd", m68000up },
38 {"adda.l", one(0150700), one(0170700), "*lAd", m68000up | mcf5200 },
39
40 {"addi.b", one(0003000), one(0177700), "#b$s", m68000up },
41 {"addi.w", one(0003100), one(0177700), "#w$s", m68000up },
42 {"addi.l", one(0003200), one(0177700), "#l$s", m68000up },
43 {"addi.l", one(0003200), one(0177700), "#lDs", mcf5200 },
44
45 {"addq.b", one(0050000), one(0170700), "Qd$b", m68000up },
46 {"addq.w", one(0050100), one(0170700), "Qd%w", m68000up },
47 {"addq.l", one(0050200), one(0170700), "Qd%l", m68000up | mcf5200 },
48
49 /* The add opcode can generate the adda, addi, and addq instructions. */
50 {"add.b", one(0050000), one(0170700), "Qd$b", m68000up },
51 {"add.b", one(0003000), one(0177700), "#b$s", m68000up },
52 {"add.b", one(0150000), one(0170700), ";bDd", m68000up },
53 {"add.b", one(0150400), one(0170700), "Dd~b", m68000up },
54 {"add.w", one(0050100), one(0170700), "Qd%w", m68000up },
55 {"add.w", one(0150300), one(0170700), "*wAd", m68000up },
56 {"add.w", one(0003100), one(0177700), "#w$s", m68000up },
57 {"add.w", one(0150100), one(0170700), "*wDd", m68000up },
58 {"add.w", one(0150500), one(0170700), "Dd~w", m68000up },
59 {"add.l", one(0050200), one(0170700), "Qd%l", m68000up | mcf5200 },
60 {"add.l", one(0003200), one(0177700), "#l$s", m68000up },
61 {"add.l", one(0003200), one(0177700), "#lDs", mcf5200 },
62 {"add.l", one(0150700), one(0170700), "*lAd", m68000up | mcf5200 },
63 {"add.l", one(0150200), one(0170700), "*lDd", m68000up | mcf5200 },
64 {"add.l", one(0150600), one(0170700), "Dd~l", m68000up | mcf5200 },
65
66 {"addx.b", one(0150400), one(0170770), "DsDd", m68000up },
67 {"addx.b", one(0150410), one(0170770), "-s-d", m68000up },
68 {"addx.w", one(0150500), one(0170770), "DsDd", m68000up },
69 {"addx.w", one(0150510), one(0170770), "-s-d", m68000up },
70 {"addx.l", one(0150600), one(0170770), "DsDd", m68000up | mcf5200 },
71 {"addx.l", one(0150610), one(0170770), "-s-d", m68000up },
72
73 {"andi.b", one(0001000), one(0177700), "#b$s", m68000up },
74 {"andi.w", one(0001100), one(0177700), "#w$s", m68000up },
75 {"andi.l", one(0001200), one(0177700), "#l$s", m68000up },
76 {"andi.l", one(0001200), one(0177700), "#lDs", mcf5200 },
77 {"andi", one(0001100), one(0177700), "#w$s", m68000up },
78 {"andi", one(0001074), one(0177777), "#bCs", m68000up },
79 {"andi", one(0001174), one(0177777), "#wSs", m68000up },
80
81 /* The and opcode can generate the andi instruction. */
82 {"and.b", one(0001000), one(0177700), "#b$s", m68000up },
83 {"and.b", one(0140000), one(0170700), ";bDd", m68000up },
84 {"and.b", one(0140400), one(0170700), "Dd~b", m68000up },
85 {"and.w", one(0001100), one(0177700), "#w$s", m68000up },
86 {"and.w", one(0140100), one(0170700), ";wDd", m68000up },
87 {"and.w", one(0140500), one(0170700), "Dd~w", m68000up },
88 {"and.l", one(0001200), one(0177700), "#l$s", m68000up },
89 {"and.l", one(0001200), one(0177700), "#lDs", mcf5200 },
90 {"and.l", one(0140200), one(0170700), ";lDd", m68000up | mcf5200 },
91 {"and.l", one(0140600), one(0170700), "Dd~l", m68000up | mcf5200 },
92 {"and", one(0001100), one(0177700), "#w$w", m68000up },
93 {"and", one(0001074), one(0177777), "#bCs", m68000up },
94 {"and", one(0001174), one(0177777), "#wSs", m68000up },
95 {"and", one(0140100), one(0170700), ";wDd", m68000up },
96 {"and", one(0140500), one(0170700), "Dd~w", m68000up },
97
98 {"asl.b", one(0160400), one(0170770), "QdDs", m68000up },
99 {"asl.b", one(0160440), one(0170770), "DdDs", m68000up },
100 {"asl.w", one(0160500), one(0170770), "QdDs", m68000up },
101 {"asl.w", one(0160540), one(0170770), "DdDs", m68000up },
102 {"asl.w", one(0160700), one(0177700), "~s", m68000up },
103 {"asl.l", one(0160600), one(0170770), "QdDs", m68000up | mcf5200 },
104 {"asl.l", one(0160640), one(0170770), "DdDs", m68000up | mcf5200 },
105
106 {"asr.b", one(0160000), one(0170770), "QdDs", m68000up },
107 {"asr.b", one(0160040), one(0170770), "DdDs", m68000up },
108 {"asr.w", one(0160100), one(0170770), "QdDs", m68000up },
109 {"asr.w", one(0160140), one(0170770), "DdDs", m68000up },
110 {"asr.w", one(0160300), one(0177700), "~s", m68000up },
111 {"asr.l", one(0160200), one(0170770), "QdDs", m68000up | mcf5200 },
112 {"asr.l", one(0160240), one(0170770), "DdDs", m68000up | mcf5200 },
113
114 {"bhi", one(0061000), one(0177777), "BW", m68000up | mcf5200 },
115 {"bls", one(0061400), one(0177777), "BW", m68000up | mcf5200 },
116 {"bcc", one(0062000), one(0177777), "BW", m68000up | mcf5200 },
117 {"bcs", one(0062400), one(0177777), "BW", m68000up | mcf5200 },
118 {"bne", one(0063000), one(0177777), "BW", m68000up | mcf5200 },
119 {"beq", one(0063400), one(0177777), "BW", m68000up | mcf5200 },
120 {"bvc", one(0064000), one(0177777), "BW", m68000up | mcf5200 },
121 {"bvs", one(0064400), one(0177777), "BW", m68000up | mcf5200 },
122 {"bpl", one(0065000), one(0177777), "BW", m68000up | mcf5200 },
123 {"bmi", one(0065400), one(0177777), "BW", m68000up | mcf5200 },
124 {"bge", one(0066000), one(0177777), "BW", m68000up | mcf5200 },
125 {"blt", one(0066400), one(0177777), "BW", m68000up | mcf5200 },
126 {"bgt", one(0067000), one(0177777), "BW", m68000up | mcf5200 },
127 {"ble", one(0067400), one(0177777), "BW", m68000up | mcf5200 },
128
129 {"bhi.l", one(0061377), one(0177777), "BL", m68020up | cpu32 },
130 {"bls.l", one(0061777), one(0177777), "BL", m68020up | cpu32 },
131 {"bcc.l", one(0062377), one(0177777), "BL", m68020up | cpu32 },
132 {"bcs.l", one(0062777), one(0177777), "BL", m68020up | cpu32 },
133 {"bne.l", one(0063377), one(0177777), "BL", m68020up | cpu32 },
134 {"beq.l", one(0063777), one(0177777), "BL", m68020up | cpu32 },
135 {"bvc.l", one(0064377), one(0177777), "BL", m68020up | cpu32 },
136 {"bvs.l", one(0064777), one(0177777), "BL", m68020up | cpu32 },
137 {"bpl.l", one(0065377), one(0177777), "BL", m68020up | cpu32 },
138 {"bmi.l", one(0065777), one(0177777), "BL", m68020up | cpu32 },
139 {"bge.l", one(0066377), one(0177777), "BL", m68020up | cpu32 },
140 {"blt.l", one(0066777), one(0177777), "BL", m68020up | cpu32 },
141 {"bgt.l", one(0067377), one(0177777), "BL", m68020up | cpu32 },
142 {"ble.l", one(0067777), one(0177777), "BL", m68020up | cpu32 },
143
144 {"bhi.s", one(0061000), one(0177400), "BB", m68000up | mcf5200 },
145 {"bls.s", one(0061400), one(0177400), "BB", m68000up | mcf5200 },
146 {"bcc.s", one(0062000), one(0177400), "BB", m68000up | mcf5200 },
147 {"bcs.s", one(0062400), one(0177400), "BB", m68000up | mcf5200 },
148 {"bne.s", one(0063000), one(0177400), "BB", m68000up | mcf5200 },
149 {"beq.s", one(0063400), one(0177400), "BB", m68000up | mcf5200 },
150 {"bvc.s", one(0064000), one(0177400), "BB", m68000up | mcf5200 },
151 {"bvs.s", one(0064400), one(0177400), "BB", m68000up | mcf5200 },
152 {"bpl.s", one(0065000), one(0177400), "BB", m68000up | mcf5200 },
153 {"bmi.s", one(0065400), one(0177400), "BB", m68000up | mcf5200 },
154 {"bge.s", one(0066000), one(0177400), "BB", m68000up | mcf5200 },
155 {"blt.s", one(0066400), one(0177400), "BB", m68000up | mcf5200 },
156 {"bgt.s", one(0067000), one(0177400), "BB", m68000up | mcf5200 },
157 {"ble.s", one(0067400), one(0177400), "BB", m68000up | mcf5200 },
158
159 {"jhi", one(0061000), one(0177400), "Bg", m68000up | mcf5200 },
160 {"jls", one(0061400), one(0177400), "Bg", m68000up | mcf5200 },
161 {"jcc", one(0062000), one(0177400), "Bg", m68000up | mcf5200 },
162 {"jcs", one(0062400), one(0177400), "Bg", m68000up | mcf5200 },
163 {"jne", one(0063000), one(0177400), "Bg", m68000up | mcf5200 },
164 {"jeq", one(0063400), one(0177400), "Bg", m68000up | mcf5200 },
165 {"jvc", one(0064000), one(0177400), "Bg", m68000up | mcf5200 },
166 {"jvs", one(0064400), one(0177400), "Bg", m68000up | mcf5200 },
167 {"jpl", one(0065000), one(0177400), "Bg", m68000up | mcf5200 },
168 {"jmi", one(0065400), one(0177400), "Bg", m68000up | mcf5200 },
169 {"jge", one(0066000), one(0177400), "Bg", m68000up | mcf5200 },
170 {"jlt", one(0066400), one(0177400), "Bg", m68000up | mcf5200 },
171 {"jgt", one(0067000), one(0177400), "Bg", m68000up | mcf5200 },
172 {"jle", one(0067400), one(0177400), "Bg", m68000up | mcf5200 },
173
174 {"bchg", one(0000500), one(0170700), "Dd$s", m68000up | mcf5200 },
175 {"bchg", one(0004100), one(0177700), "#b$s", m68000up },
176 {"bchg", one(0004100), one(0177700), "#bqs", mcf5200 },
177
178 {"bclr", one(0000600), one(0170700), "Dd$s", m68000up },
179 {"bclr", one(0000600), one(0170700), "Ddvs", mcf5200 },
180 {"bclr", one(0004200), one(0177700), "#b$s", m68000up },
181 {"bclr", one(0004200), one(0177700), "#bqs", mcf5200 },
182
183 {"bfchg", two(0165300, 0), two(0177700, 0170000), "?sO2O3", m68020up },
184 {"bfclr", two(0166300, 0), two(0177700, 0170000), "?sO2O3", m68020up },
185 {"bfexts", two(0165700, 0), two(0177700, 0100000), "/sO2O3D1", m68020up },
186 {"bfextu", two(0164700, 0), two(0177700, 0100000), "/sO2O3D1", m68020up },
187 {"bfffo", two(0166700, 0), two(0177700, 0100000), "/sO2O3D1", m68020up },
188 {"bfins", two(0167700, 0), two(0177700, 0100000), "D1?sO2O3", m68020up },
189 {"bfset", two(0167300, 0), two(0177700, 0170000), "?sO2O3", m68020up },
190 {"bftst", two(0164300, 0), two(0177700, 0170000), "/sO2O3", m68020up },
191
192 {"bgnd", one(0045372), one(0177777), "", cpu32 },
193
194 {"bkpt", one(0044110), one(0177770), "ts", m68010up },
195
196 {"bra", one(0060000), one(0177777), "BW", m68000up | mcf5200 },
197 {"bra.l", one(0060377), one(0177777), "BL", m68020up | cpu32 },
198 {"bra.s", one(0060000), one(0177400), "BB", m68000up | mcf5200 },
199
200 {"bset", one(0000700), one(0170700), "Dd$s", m68000up },
201 {"bset", one(0000700), one(0170700), "Ddvs", mcf5200 },
202 {"bset", one(0004300), one(0177700), "#b$s", m68000up },
203 {"bset", one(0004300), one(0177700), "#bqs", mcf5200 },
204
205 {"bsr", one(0060400), one(0177777), "BW", m68000up | mcf5200 },
206 {"bsr.l", one(0060777), one(0177777), "BL", m68020up | cpu32 },
207 {"bsr.s", one(0060400), one(0177400), "BB", m68000up | mcf5200 },
208
209 {"btst", one(0000400), one(0170700), "Dd;b", m68000up | mcf5200 },
210 {"btst", one(0004000), one(0177700), "#b@s", m68000up },
211 {"btst", one(0004000), one(0177700), "#bqs", mcf5200 },
212
213 {"callm", one(0003300), one(0177700), "#b!s", m68020 },
214
215 {"cas2.w", two(0006374,0), two(0177777,0007070), "D3D6D2D5r1r4", m68020up },
216 {"cas2.w", two(0006374,0), two(0177777,0007070), "D3D6D2D5R1R4", m68020up },
217 {"cas2.l", two(0007374,0), two(0177777,0007070), "D3D6D2D5r1r4", m68020up },
218 {"cas2.l", two(0007374,0), two(0177777,0007070), "D3D6D2D5R1R4", m68020up },
219
220 {"cas.b", two(0005300, 0), two(0177700, 0177070), "D3D2~s", m68020up },
221 {"cas.w", two(0006300, 0), two(0177700, 0177070), "D3D2~s", m68020up },
222 {"cas.l", two(0007300, 0), two(0177700, 0177070), "D3D2~s", m68020up },
223
224 {"chk2.b", two(0000300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 },
225 {"chk2.w", two(0001300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 },
226 {"chk2.l", two(0002300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 },
227
228 {"chk.l", one(0040400), one(0170700), ";lDd", m68000up },
229 {"chk.w", one(0040600), one(0170700), ";wDd", m68000up },
230
231 #define SCOPE_LINE (0x1 << 3)
232 #define SCOPE_PAGE (0x2 << 3)
233 #define SCOPE_ALL (0x3 << 3)
234
235 {"cinva", one(0xf400|SCOPE_ALL), one(0xff38), "ce", m68040up },
236 {"cinvl", one(0xf400|SCOPE_LINE), one(0xff38), "ceas", m68040up },
237 {"cinvp", one(0xf400|SCOPE_PAGE), one(0xff38), "ceas", m68040up },
238
239 {"cpusha", one(0xf420|SCOPE_ALL), one(0xff38), "ce", m68040up },
240 {"cpushl", one(0xf420|SCOPE_LINE), one(0xff38), "ceas", m68040up },
241 {"cpushl", one(0x04e8), one(0xfff8), "as", mcf5200 },
242 {"cpushp", one(0xf420|SCOPE_PAGE), one(0xff38), "ceas", m68040up },
243
244 #undef SCOPE_LINE
245 #undef SCOPE_PAGE
246 #undef SCOPE_ALL
247
248 {"clr.b", one(0041000), one(0177700), "$s", m68000up | mcf5200 },
249 {"clr.w", one(0041100), one(0177700), "$s", m68000up | mcf5200 },
250 {"clr.l", one(0041200), one(0177700), "$s", m68000up | mcf5200 },
251
252 {"cmp2.b", two(0000300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
253 {"cmp2.w", two(0001300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
254 {"cmp2.l", two(0002300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
255
256 {"cmpa.w", one(0130300), one(0170700), "*wAd", m68000up },
257 {"cmpa.l", one(0130700), one(0170700), "*lAd", m68000up | mcf5200 },
258
259 {"cmpi.b", one(0006000), one(0177700), "#b;s", m68000up },
260 {"cmpi.w", one(0006100), one(0177700), "#w;s", m68000up },
261 {"cmpi.l", one(0006200), one(0177700), "#l;s", m68000up },
262 {"cmpi.l", one(0006200), one(0177700), "#lDs", mcf5200 },
263
264 {"cmpm.b", one(0130410), one(0170770), "+s+d", m68000up },
265 {"cmpm.w", one(0130510), one(0170770), "+s+d", m68000up },
266 {"cmpm.l", one(0130610), one(0170770), "+s+d", m68000up },
267
268 /* The cmp opcode can generate the cmpa, cmpm, and cmpi instructions. */
269 {"cmp.b", one(0006000), one(0177700), "#b;s", m68000up },
270 {"cmp.b", one(0130410), one(0170770), "+s+d", m68000up },
271 {"cmp.b", one(0130000), one(0170700), ";bDd", m68000up },
272 {"cmp.w", one(0130300), one(0170700), "*wAd", m68000up },
273 {"cmp.w", one(0006100), one(0177700), "#w;s", m68000up },
274 {"cmp.w", one(0130510), one(0170770), "+s+d", m68000up },
275 {"cmp.w", one(0130100), one(0170700), "*wDd", m68000up },
276 {"cmp.l", one(0130700), one(0170700), "*lAd", m68000up | mcf5200 },
277 {"cmp.l", one(0006200), one(0177700), "#l;s", m68000up },
278 {"cmp.l", one(0006200), one(0177700), "#lDs", mcf5200 },
279 {"cmp.l", one(0130610), one(0170770), "+s+d", m68000up },
280 {"cmp.l", one(0130200), one(0170700), "*lDd", m68000up | mcf5200 },
281
282 {"dbcc", one(0052310), one(0177770), "DsBw", m68000up },
283 {"dbcs", one(0052710), one(0177770), "DsBw", m68000up },
284 {"dbeq", one(0053710), one(0177770), "DsBw", m68000up },
285 {"dbf", one(0050710), one(0177770), "DsBw", m68000up },
286 {"dbge", one(0056310), one(0177770), "DsBw", m68000up },
287 {"dbgt", one(0057310), one(0177770), "DsBw", m68000up },
288 {"dbhi", one(0051310), one(0177770), "DsBw", m68000up },
289 {"dble", one(0057710), one(0177770), "DsBw", m68000up },
290 {"dbls", one(0051710), one(0177770), "DsBw", m68000up },
291 {"dblt", one(0056710), one(0177770), "DsBw", m68000up },
292 {"dbmi", one(0055710), one(0177770), "DsBw", m68000up },
293 {"dbne", one(0053310), one(0177770), "DsBw", m68000up },
294 {"dbpl", one(0055310), one(0177770), "DsBw", m68000up },
295 {"dbt", one(0050310), one(0177770), "DsBw", m68000up },
296 {"dbvc", one(0054310), one(0177770), "DsBw", m68000up },
297 {"dbvs", one(0054710), one(0177770), "DsBw", m68000up },
298
299 {"divs.w", one(0100700), one(0170700), ";wDd", m68000up },
300
301 {"divs.l", two(0046100,0006000),two(0177700,0107770),";lD3D1", m68020up|cpu32 },
302 {"divs.l", two(0046100,0004000),two(0177700,0107770),";lDD", m68020up|cpu32 },
303
304 {"divsl.l", two(0046100,0004000),two(0177700,0107770),";lD3D1",m68020up|cpu32 },
305 {"divsl.l", two(0046100,0004000),two(0177700,0107770),";lDD", m68020up|cpu32 },
306
307 {"divu.w", one(0100300), one(0170700), ";wDd", m68000up },
308
309 {"divu.l", two(0046100,0002000),two(0177700,0107770),";lD3D1", m68020up|cpu32 },
310 {"divu.l", two(0046100,0000000),two(0177700,0107770),";lDD", m68020up|cpu32 },
311
312 {"divul.l", two(0046100,0000000),two(0177700,0107770),";lD3D1",m68020up|cpu32 },
313 {"divul.l", two(0046100,0000000),two(0177700,0107770),";lDD", m68020up|cpu32 },
314
315 {"eori.b", one(0005000), one(0177700), "#b$s", m68000up },
316 {"eori.w", one(0005100), one(0177700), "#w$s", m68000up },
317 {"eori.l", one(0005200), one(0177700), "#l$s", m68000up },
318 {"eori.l", one(0005200), one(0177700), "#lDs", mcf5200 },
319 {"eori", one(0005074), one(0177777), "#bCs", m68000up },
320 {"eori", one(0005174), one(0177777), "#wSs", m68000up },
321 {"eori", one(0005100), one(0177700), "#w$s", m68000up },
322
323 /* The eor opcode can generate the eori instruction. */
324 {"eor.b", one(0005000), one(0177700), "#b$s", m68000up },
325 {"eor.b", one(0130400), one(0170700), "Dd$s", m68000up },
326 {"eor.w", one(0005100), one(0177700), "#w$s", m68000up },
327 {"eor.w", one(0130500), one(0170700), "Dd$s", m68000up },
328 {"eor.l", one(0005200), one(0177700), "#l$s", m68000up },
329 {"eor.l", one(0005200), one(0177700), "#lDs", mcf5200 },
330 {"eor.l", one(0130600), one(0170700), "Dd$s", m68000up | mcf5200 },
331 {"eor", one(0005074), one(0177777), "#bCs", m68000up },
332 {"eor", one(0005174), one(0177777), "#wSs", m68000up },
333 {"eor", one(0005100), one(0177700), "#w$s", m68000up },
334 {"eor", one(0130500), one(0170700), "Dd$s", m68000up },
335
336 {"exg", one(0140500), one(0170770), "DdDs", m68000up },
337 {"exg", one(0140510), one(0170770), "AdAs", m68000up },
338 {"exg", one(0140610), one(0170770), "DdAs", m68000up },
339 {"exg", one(0140610), one(0170770), "AsDd", m68000up },
340
341 {"ext.w", one(0044200), one(0177770), "Ds", m68000up|mcf5200 },
342 {"ext.l", one(0044300), one(0177770), "Ds", m68000up|mcf5200 },
343 {"extb.l", one(0044700), one(0177770), "Ds", m68020up|cpu32|mcf5200 },
344
345 /* float stuff starts here */
346
347 {"fabs.b", two(0xF000, 0x5818), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
348 {"fabs.d", two(0xF000, 0x5418), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
349 {"fabs.l", two(0xF000, 0x4018), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
350 {"fabs.p", two(0xF000, 0x4C18), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
351 {"fabs.s", two(0xF000, 0x4418), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
352 {"fabs.w", two(0xF000, 0x5018), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
353 {"fabs.x", two(0xF000, 0x0018), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
354 {"fabs.x", two(0xF000, 0x4818), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
355 {"fabs.x", two(0xF000, 0x0018), two(0xF1C0, 0xE07F), "IiFt", mfloat },
356
357 {"fsabs.b", two(0xF000, 0x5858), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
358 {"fsabs.d", two(0xF000, 0x5458), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
359 {"fsabs.l", two(0xF000, 0x4058), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
360 {"fsabs.p", two(0xF000, 0x4C58), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
361 {"fsabs.s", two(0xF000, 0x4458), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
362 {"fsabs.w", two(0xF000, 0x5058), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
363 {"fsabs.x", two(0xF000, 0x0058), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
364 {"fsabs.x", two(0xF000, 0x4858), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
365 {"fsabs.x", two(0xF000, 0x0058), two(0xF1C0, 0xE07F), "IiFt", m68040up },
366
367 {"fdabs.b", two(0xF000, 0x585c), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up},
368 {"fdabs.d", two(0xF000, 0x545c), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up},
369 {"fdabs.l", two(0xF000, 0x405c), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up},
370 {"fdabs.p", two(0xF000, 0x4C5c), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up},
371 {"fdabs.s", two(0xF000, 0x445c), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up},
372 {"fdabs.w", two(0xF000, 0x505c), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up},
373 {"fdabs.x", two(0xF000, 0x005c), two(0xF1C0, 0xE07F), "IiF8F7", m68040up},
374 {"fdabs.x", two(0xF000, 0x485c), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up},
375 {"fdabs.x", two(0xF000, 0x005c), two(0xF1C0, 0xE07F), "IiFt", m68040up},
376
377 {"facos.b", two(0xF000, 0x581C), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
378 {"facos.d", two(0xF000, 0x541C), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
379 {"facos.l", two(0xF000, 0x401C), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
380 {"facos.p", two(0xF000, 0x4C1C), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
381 {"facos.s", two(0xF000, 0x441C), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
382 {"facos.w", two(0xF000, 0x501C), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
383 {"facos.x", two(0xF000, 0x001C), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
384 {"facos.x", two(0xF000, 0x481C), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
385 {"facos.x", two(0xF000, 0x001C), two(0xF1C0, 0xE07F), "IiFt", mfloat },
386
387 {"fadd.b", two(0xF000, 0x5822), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
388 {"fadd.d", two(0xF000, 0x5422), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
389 {"fadd.l", two(0xF000, 0x4022), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
390 {"fadd.p", two(0xF000, 0x4C22), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
391 {"fadd.s", two(0xF000, 0x4422), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
392 {"fadd.w", two(0xF000, 0x5022), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
393 {"fadd.x", two(0xF000, 0x0022), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
394 {"fadd.x", two(0xF000, 0x4822), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
395
396 {"fsadd.b", two(0xF000, 0x5862), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
397 {"fsadd.d", two(0xF000, 0x5462), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
398 {"fsadd.l", two(0xF000, 0x4062), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
399 {"fsadd.p", two(0xF000, 0x4C62), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
400 {"fsadd.s", two(0xF000, 0x4462), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
401 {"fsadd.w", two(0xF000, 0x5062), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
402 {"fsadd.x", two(0xF000, 0x0062), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
403 {"fsadd.x", two(0xF000, 0x4862), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
404
405 {"fdadd.b", two(0xF000, 0x5866), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
406 {"fdadd.d", two(0xF000, 0x5466), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
407 {"fdadd.l", two(0xF000, 0x4066), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
408 {"fdadd.p", two(0xF000, 0x4C66), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
409 {"fdadd.s", two(0xF000, 0x4466), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
410 {"fdadd.w", two(0xF000, 0x5066), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
411 {"fdadd.x", two(0xF000, 0x0066), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
412 {"fdadd.x", two(0xF000, 0x4866), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
413
414 {"fasin.b", two(0xF000, 0x580C), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
415 {"fasin.d", two(0xF000, 0x540C), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
416 {"fasin.l", two(0xF000, 0x400C), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
417 {"fasin.p", two(0xF000, 0x4C0C), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
418 {"fasin.s", two(0xF000, 0x440C), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
419 {"fasin.w", two(0xF000, 0x500C), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
420 {"fasin.x", two(0xF000, 0x000C), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
421 {"fasin.x", two(0xF000, 0x480C), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
422 {"fasin.x", two(0xF000, 0x000C), two(0xF1C0, 0xE07F), "IiFt", mfloat },
423
424 {"fatan.b", two(0xF000, 0x580A), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
425 {"fatan.d", two(0xF000, 0x540A), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
426 {"fatan.l", two(0xF000, 0x400A), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
427 {"fatan.p", two(0xF000, 0x4C0A), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
428 {"fatan.s", two(0xF000, 0x440A), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
429 {"fatan.w", two(0xF000, 0x500A), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
430 {"fatan.x", two(0xF000, 0x000A), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
431 {"fatan.x", two(0xF000, 0x480A), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
432 {"fatan.x", two(0xF000, 0x000A), two(0xF1C0, 0xE07F), "IiFt", mfloat },
433
434 {"fatanh.b", two(0xF000, 0x580D), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
435 {"fatanh.d", two(0xF000, 0x540D), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
436 {"fatanh.l", two(0xF000, 0x400D), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
437 {"fatanh.p", two(0xF000, 0x4C0D), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
438 {"fatanh.s", two(0xF000, 0x440D), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
439 {"fatanh.w", two(0xF000, 0x500D), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
440 {"fatanh.x", two(0xF000, 0x000D), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
441 {"fatanh.x", two(0xF000, 0x480D), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
442 {"fatanh.x", two(0xF000, 0x000D), two(0xF1C0, 0xE07F), "IiFt", mfloat },
443
444 {"fbeq", one(0xF081), one(0xF1FF), "IdBW", mfloat },
445 {"fbf", one(0xF080), one(0xF1FF), "IdBW", mfloat },
446 {"fbge", one(0xF093), one(0xF1FF), "IdBW", mfloat },
447 {"fbgl", one(0xF096), one(0xF1FF), "IdBW", mfloat },
448 {"fbgle", one(0xF097), one(0xF1FF), "IdBW", mfloat },
449 {"fbgt", one(0xF092), one(0xF1FF), "IdBW", mfloat },
450 {"fble", one(0xF095), one(0xF1FF), "IdBW", mfloat },
451 {"fblt", one(0xF094), one(0xF1FF), "IdBW", mfloat },
452 {"fbne", one(0xF08E), one(0xF1FF), "IdBW", mfloat },
453 {"fbnge", one(0xF09C), one(0xF1FF), "IdBW", mfloat },
454 {"fbngl", one(0xF099), one(0xF1FF), "IdBW", mfloat },
455 {"fbngle", one(0xF098), one(0xF1FF), "IdBW", mfloat },
456 {"fbngt", one(0xF09D), one(0xF1FF), "IdBW", mfloat },
457 {"fbnle", one(0xF09A), one(0xF1FF), "IdBW", mfloat },
458 {"fbnlt", one(0xF09B), one(0xF1FF), "IdBW", mfloat },
459 {"fboge", one(0xF083), one(0xF1FF), "IdBW", mfloat },
460 {"fbogl", one(0xF086), one(0xF1FF), "IdBW", mfloat },
461 {"fbogt", one(0xF082), one(0xF1FF), "IdBW", mfloat },
462 {"fbole", one(0xF085), one(0xF1FF), "IdBW", mfloat },
463 {"fbolt", one(0xF084), one(0xF1FF), "IdBW", mfloat },
464 {"fbor", one(0xF087), one(0xF1FF), "IdBW", mfloat },
465 {"fbseq", one(0xF091), one(0xF1FF), "IdBW", mfloat },
466 {"fbsf", one(0xF090), one(0xF1FF), "IdBW", mfloat },
467 {"fbsne", one(0xF09E), one(0xF1FF), "IdBW", mfloat },
468 {"fbst", one(0xF09F), one(0xF1FF), "IdBW", mfloat },
469 {"fbt", one(0xF08F), one(0xF1FF), "IdBW", mfloat },
470 {"fbueq", one(0xF089), one(0xF1FF), "IdBW", mfloat },
471 {"fbuge", one(0xF08B), one(0xF1FF), "IdBW", mfloat },
472 {"fbugt", one(0xF08A), one(0xF1FF), "IdBW", mfloat },
473 {"fbule", one(0xF08D), one(0xF1FF), "IdBW", mfloat },
474 {"fbult", one(0xF08C), one(0xF1FF), "IdBW", mfloat },
475 {"fbun", one(0xF088), one(0xF1FF), "IdBW", mfloat },
476
477 {"fbeq.l", one(0xF0C1), one(0xF1FF), "IdBC", mfloat },
478 {"fbf.l", one(0xF0C0), one(0xF1FF), "IdBC", mfloat },
479 {"fbge.l", one(0xF0D3), one(0xF1FF), "IdBC", mfloat },
480 {"fbgl.l", one(0xF0D6), one(0xF1FF), "IdBC", mfloat },
481 {"fbgle.l", one(0xF0D7), one(0xF1FF), "IdBC", mfloat },
482 {"fbgt.l", one(0xF0D2), one(0xF1FF), "IdBC", mfloat },
483 {"fble.l", one(0xF0D5), one(0xF1FF), "IdBC", mfloat },
484 {"fblt.l", one(0xF0D4), one(0xF1FF), "IdBC", mfloat },
485 {"fbne.l", one(0xF0CE), one(0xF1FF), "IdBC", mfloat },
486 {"fbnge.l", one(0xF0DC), one(0xF1FF), "IdBC", mfloat },
487 {"fbngl.l", one(0xF0D9), one(0xF1FF), "IdBC", mfloat },
488 {"fbngle.l", one(0xF0D8), one(0xF1FF), "IdBC", mfloat },
489 {"fbngt.l", one(0xF0DD), one(0xF1FF), "IdBC", mfloat },
490 {"fbnle.l", one(0xF0DA), one(0xF1FF), "IdBC", mfloat },
491 {"fbnlt.l", one(0xF0DB), one(0xF1FF), "IdBC", mfloat },
492 {"fboge.l", one(0xF0C3), one(0xF1FF), "IdBC", mfloat },
493 {"fbogl.l", one(0xF0C6), one(0xF1FF), "IdBC", mfloat },
494 {"fbogt.l", one(0xF0C2), one(0xF1FF), "IdBC", mfloat },
495 {"fbole.l", one(0xF0C5), one(0xF1FF), "IdBC", mfloat },
496 {"fbolt.l", one(0xF0C4), one(0xF1FF), "IdBC", mfloat },
497 {"fbor.l", one(0xF0C7), one(0xF1FF), "IdBC", mfloat },
498 {"fbseq.l", one(0xF0D1), one(0xF1FF), "IdBC", mfloat },
499 {"fbsf.l", one(0xF0D0), one(0xF1FF), "IdBC", mfloat },
500 {"fbsne.l", one(0xF0DE), one(0xF1FF), "IdBC", mfloat },
501 {"fbst.l", one(0xF0DF), one(0xF1FF), "IdBC", mfloat },
502 {"fbt.l", one(0xF0CF), one(0xF1FF), "IdBC", mfloat },
503 {"fbueq.l", one(0xF0C9), one(0xF1FF), "IdBC", mfloat },
504 {"fbuge.l", one(0xF0CB), one(0xF1FF), "IdBC", mfloat },
505 {"fbugt.l", one(0xF0CA), one(0xF1FF), "IdBC", mfloat },
506 {"fbule.l", one(0xF0CD), one(0xF1FF), "IdBC", mfloat },
507 {"fbult.l", one(0xF0CC), one(0xF1FF), "IdBC", mfloat },
508 {"fbun.l", one(0xF0C8), one(0xF1FF), "IdBC", mfloat },
509
510 {"fjeq", one(0xF081), one(0xF1BF), "IdBc", mfloat },
511 {"fjf", one(0xF080), one(0xF1BF), "IdBc", mfloat },
512 {"fjge", one(0xF093), one(0xF1BF), "IdBc", mfloat },
513 {"fjgl", one(0xF096), one(0xF1BF), "IdBc", mfloat },
514 {"fjgle", one(0xF097), one(0xF1BF), "IdBc", mfloat },
515 {"fjgt", one(0xF092), one(0xF1BF), "IdBc", mfloat },
516 {"fjle", one(0xF095), one(0xF1BF), "IdBc", mfloat },
517 {"fjlt", one(0xF094), one(0xF1BF), "IdBc", mfloat },
518 {"fjne", one(0xF08E), one(0xF1BF), "IdBc", mfloat },
519 {"fjnge", one(0xF09C), one(0xF1BF), "IdBc", mfloat },
520 {"fjngl", one(0xF099), one(0xF1BF), "IdBc", mfloat },
521 {"fjngle", one(0xF098), one(0xF1BF), "IdBc", mfloat },
522 {"fjngt", one(0xF09D), one(0xF1BF), "IdBc", mfloat },
523 {"fjnle", one(0xF09A), one(0xF1BF), "IdBc", mfloat },
524 {"fjnlt", one(0xF09B), one(0xF1BF), "IdBc", mfloat },
525 {"fjoge", one(0xF083), one(0xF1BF), "IdBc", mfloat },
526 {"fjogl", one(0xF086), one(0xF1BF), "IdBc", mfloat },
527 {"fjogt", one(0xF082), one(0xF1BF), "IdBc", mfloat },
528 {"fjole", one(0xF085), one(0xF1BF), "IdBc", mfloat },
529 {"fjolt", one(0xF084), one(0xF1BF), "IdBc", mfloat },
530 {"fjor", one(0xF087), one(0xF1BF), "IdBc", mfloat },
531 {"fjseq", one(0xF091), one(0xF1BF), "IdBc", mfloat },
532 {"fjsf", one(0xF090), one(0xF1BF), "IdBc", mfloat },
533 {"fjsne", one(0xF09E), one(0xF1BF), "IdBc", mfloat },
534 {"fjst", one(0xF09F), one(0xF1BF), "IdBc", mfloat },
535 {"fjt", one(0xF08F), one(0xF1BF), "IdBc", mfloat },
536 {"fjueq", one(0xF089), one(0xF1BF), "IdBc", mfloat },
537 {"fjuge", one(0xF08B), one(0xF1BF), "IdBc", mfloat },
538 {"fjugt", one(0xF08A), one(0xF1BF), "IdBc", mfloat },
539 {"fjule", one(0xF08D), one(0xF1BF), "IdBc", mfloat },
540 {"fjult", one(0xF08C), one(0xF1BF), "IdBc", mfloat },
541 {"fjun", one(0xF088), one(0xF1BF), "IdBc", mfloat },
542
543 {"fcmp.b", two(0xF000, 0x5838), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
544 {"fcmp.d", two(0xF000, 0x5438), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
545 {"fcmp.l", two(0xF000, 0x4038), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
546 {"fcmp.p", two(0xF000, 0x4C38), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
547 {"fcmp.s", two(0xF000, 0x4438), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
548 {"fcmp.w", two(0xF000, 0x5038), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
549 {"fcmp.x", two(0xF000, 0x0038), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
550 {"fcmp.x", two(0xF000, 0x4838), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
551
552 {"fcos.b", two(0xF000, 0x581D), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
553 {"fcos.d", two(0xF000, 0x541D), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
554 {"fcos.l", two(0xF000, 0x401D), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
555 {"fcos.p", two(0xF000, 0x4C1D), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
556 {"fcos.s", two(0xF000, 0x441D), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
557 {"fcos.w", two(0xF000, 0x501D), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
558 {"fcos.x", two(0xF000, 0x001D), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
559 {"fcos.x", two(0xF000, 0x481D), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
560 {"fcos.x", two(0xF000, 0x001D), two(0xF1C0, 0xE07F), "IiFt", mfloat },
561
562 {"fcosh.b", two(0xF000, 0x5819), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
563 {"fcosh.d", two(0xF000, 0x5419), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
564 {"fcosh.l", two(0xF000, 0x4019), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
565 {"fcosh.p", two(0xF000, 0x4C19), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
566 {"fcosh.s", two(0xF000, 0x4419), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
567 {"fcosh.w", two(0xF000, 0x5019), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
568 {"fcosh.x", two(0xF000, 0x0019), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
569 {"fcosh.x", two(0xF000, 0x4819), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
570 {"fcosh.x", two(0xF000, 0x0019), two(0xF1C0, 0xE07F), "IiFt", mfloat },
571
572 {"fdbeq", two(0xF048, 0x0001), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
573 {"fdbf", two(0xF048, 0x0000), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
574 {"fdbge", two(0xF048, 0x0013), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
575 {"fdbgl", two(0xF048, 0x0016), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
576 {"fdbgle", two(0xF048, 0x0017), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
577 {"fdbgt", two(0xF048, 0x0012), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
578 {"fdble", two(0xF048, 0x0015), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
579 {"fdblt", two(0xF048, 0x0014), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
580 {"fdbne", two(0xF048, 0x000E), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
581 {"fdbnge", two(0xF048, 0x001C), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
582 {"fdbngl", two(0xF048, 0x0019), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
583 {"fdbngle", two(0xF048, 0x0018), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
584 {"fdbngt", two(0xF048, 0x001D), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
585 {"fdbnle", two(0xF048, 0x001A), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
586 {"fdbnlt", two(0xF048, 0x001B), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
587 {"fdboge", two(0xF048, 0x0003), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
588 {"fdbogl", two(0xF048, 0x0006), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
589 {"fdbogt", two(0xF048, 0x0002), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
590 {"fdbole", two(0xF048, 0x0005), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
591 {"fdbolt", two(0xF048, 0x0004), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
592 {"fdbor", two(0xF048, 0x0007), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
593 {"fdbseq", two(0xF048, 0x0011), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
594 {"fdbsf", two(0xF048, 0x0010), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
595 {"fdbsne", two(0xF048, 0x001E), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
596 {"fdbst", two(0xF048, 0x001F), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
597 {"fdbt", two(0xF048, 0x000F), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
598 {"fdbueq", two(0xF048, 0x0009), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
599 {"fdbuge", two(0xF048, 0x000B), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
600 {"fdbugt", two(0xF048, 0x000A), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
601 {"fdbule", two(0xF048, 0x000D), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
602 {"fdbult", two(0xF048, 0x000C), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
603 {"fdbun", two(0xF048, 0x0008), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
604
605 {"fdiv.b", two(0xF000, 0x5820), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
606 {"fdiv.d", two(0xF000, 0x5420), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
607 {"fdiv.l", two(0xF000, 0x4020), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
608 {"fdiv.p", two(0xF000, 0x4C20), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
609 {"fdiv.s", two(0xF000, 0x4420), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
610 {"fdiv.w", two(0xF000, 0x5020), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
611 {"fdiv.x", two(0xF000, 0x0020), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
612 {"fdiv.x", two(0xF000, 0x4820), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
613
614 {"fsdiv.b", two(0xF000, 0x5860), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
615 {"fsdiv.d", two(0xF000, 0x5460), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
616 {"fsdiv.l", two(0xF000, 0x4060), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
617 {"fsdiv.p", two(0xF000, 0x4C60), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
618 {"fsdiv.s", two(0xF000, 0x4460), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
619 {"fsdiv.w", two(0xF000, 0x5060), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
620 {"fsdiv.x", two(0xF000, 0x0060), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
621 {"fsdiv.x", two(0xF000, 0x4860), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
622
623 {"fddiv.b", two(0xF000, 0x5864), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
624 {"fddiv.d", two(0xF000, 0x5464), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
625 {"fddiv.l", two(0xF000, 0x4064), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
626 {"fddiv.p", two(0xF000, 0x4C64), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
627 {"fddiv.s", two(0xF000, 0x4464), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
628 {"fddiv.w", two(0xF000, 0x5064), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
629 {"fddiv.x", two(0xF000, 0x0064), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
630 {"fddiv.x", two(0xF000, 0x4864), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
631
632 {"fetox.b", two(0xF000, 0x5810), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
633 {"fetox.d", two(0xF000, 0x5410), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
634 {"fetox.l", two(0xF000, 0x4010), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
635 {"fetox.p", two(0xF000, 0x4C10), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
636 {"fetox.s", two(0xF000, 0x4410), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
637 {"fetox.w", two(0xF000, 0x5010), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
638 {"fetox.x", two(0xF000, 0x0010), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
639 {"fetox.x", two(0xF000, 0x4810), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
640 {"fetox.x", two(0xF000, 0x0010), two(0xF1C0, 0xE07F), "IiFt", mfloat },
641
642 {"fetoxm1.b", two(0xF000, 0x5808), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
643 {"fetoxm1.d", two(0xF000, 0x5408), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
644 {"fetoxm1.l", two(0xF000, 0x4008), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
645 {"fetoxm1.p", two(0xF000, 0x4C08), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
646 {"fetoxm1.s", two(0xF000, 0x4408), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
647 {"fetoxm1.w", two(0xF000, 0x5008), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
648 {"fetoxm1.x", two(0xF000, 0x0008), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
649 {"fetoxm1.x", two(0xF000, 0x4808), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
650 {"fetoxm1.x", two(0xF000, 0x0008), two(0xF1C0, 0xE07F), "IiFt", mfloat },
651
652 {"fgetexp.b", two(0xF000, 0x581E), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
653 {"fgetexp.d", two(0xF000, 0x541E), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
654 {"fgetexp.l", two(0xF000, 0x401E), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
655 {"fgetexp.p", two(0xF000, 0x4C1E), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
656 {"fgetexp.s", two(0xF000, 0x441E), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
657 {"fgetexp.w", two(0xF000, 0x501E), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
658 {"fgetexp.x", two(0xF000, 0x001E), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
659 {"fgetexp.x", two(0xF000, 0x481E), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
660 {"fgetexp.x", two(0xF000, 0x001E), two(0xF1C0, 0xE07F), "IiFt", mfloat },
661
662 {"fgetman.b", two(0xF000, 0x581F), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
663 {"fgetman.d", two(0xF000, 0x541F), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
664 {"fgetman.l", two(0xF000, 0x401F), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
665 {"fgetman.p", two(0xF000, 0x4C1F), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
666 {"fgetman.s", two(0xF000, 0x441F), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
667 {"fgetman.w", two(0xF000, 0x501F), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
668 {"fgetman.x", two(0xF000, 0x001F), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
669 {"fgetman.x", two(0xF000, 0x481F), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
670 {"fgetman.x", two(0xF000, 0x001F), two(0xF1C0, 0xE07F), "IiFt", mfloat },
671
672 {"fint.b", two(0xF000, 0x5801), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
673 {"fint.d", two(0xF000, 0x5401), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
674 {"fint.l", two(0xF000, 0x4001), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
675 {"fint.p", two(0xF000, 0x4C01), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
676 {"fint.s", two(0xF000, 0x4401), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
677 {"fint.w", two(0xF000, 0x5001), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
678 {"fint.x", two(0xF000, 0x0001), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
679 {"fint.x", two(0xF000, 0x4801), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
680 {"fint.x", two(0xF000, 0x0001), two(0xF1C0, 0xE07F), "IiFt", mfloat },
681
682 {"fintrz.b", two(0xF000, 0x5803), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
683 {"fintrz.d", two(0xF000, 0x5403), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
684 {"fintrz.l", two(0xF000, 0x4003), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
685 {"fintrz.p", two(0xF000, 0x4C03), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
686 {"fintrz.s", two(0xF000, 0x4403), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
687 {"fintrz.w", two(0xF000, 0x5003), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
688 {"fintrz.x", two(0xF000, 0x0003), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
689 {"fintrz.x", two(0xF000, 0x4803), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
690 {"fintrz.x", two(0xF000, 0x0003), two(0xF1C0, 0xE07F), "IiFt", mfloat },
691
692 {"flog10.b", two(0xF000, 0x5815), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
693 {"flog10.d", two(0xF000, 0x5415), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
694 {"flog10.l", two(0xF000, 0x4015), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
695 {"flog10.p", two(0xF000, 0x4C15), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
696 {"flog10.s", two(0xF000, 0x4415), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
697 {"flog10.w", two(0xF000, 0x5015), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
698 {"flog10.x", two(0xF000, 0x0015), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
699 {"flog10.x", two(0xF000, 0x4815), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
700 {"flog10.x", two(0xF000, 0x0015), two(0xF1C0, 0xE07F), "IiFt", mfloat },
701
702 {"flog2.b", two(0xF000, 0x5816), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
703 {"flog2.d", two(0xF000, 0x5416), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
704 {"flog2.l", two(0xF000, 0x4016), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
705 {"flog2.p", two(0xF000, 0x4C16), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
706 {"flog2.s", two(0xF000, 0x4416), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
707 {"flog2.w", two(0xF000, 0x5016), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
708 {"flog2.x", two(0xF000, 0x0016), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
709 {"flog2.x", two(0xF000, 0x4816), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
710 {"flog2.x", two(0xF000, 0x0016), two(0xF1C0, 0xE07F), "IiFt", mfloat },
711
712 {"flogn.b", two(0xF000, 0x5814), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
713 {"flogn.d", two(0xF000, 0x5414), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
714 {"flogn.l", two(0xF000, 0x4014), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
715 {"flogn.p", two(0xF000, 0x4C14), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
716 {"flogn.s", two(0xF000, 0x4414), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
717 {"flogn.w", two(0xF000, 0x5014), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
718 {"flogn.x", two(0xF000, 0x0014), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
719 {"flogn.x", two(0xF000, 0x4814), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
720 {"flogn.x", two(0xF000, 0x0014), two(0xF1C0, 0xE07F), "IiFt", mfloat },
721
722 {"flognp1.b", two(0xF000, 0x5806), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
723 {"flognp1.d", two(0xF000, 0x5406), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
724 {"flognp1.l", two(0xF000, 0x4006), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
725 {"flognp1.p", two(0xF000, 0x4C06), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
726 {"flognp1.s", two(0xF000, 0x4406), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
727 {"flognp1.w", two(0xF000, 0x5006), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
728 {"flognp1.x", two(0xF000, 0x0006), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
729 {"flognp1.x", two(0xF000, 0x4806), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
730 {"flognp1.x", two(0xF000, 0x0006), two(0xF1C0, 0xE07F), "IiFt", mfloat },
731
732 {"fmod.b", two(0xF000, 0x5821), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
733 {"fmod.d", two(0xF000, 0x5421), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
734 {"fmod.l", two(0xF000, 0x4021), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
735 {"fmod.p", two(0xF000, 0x4C21), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
736 {"fmod.s", two(0xF000, 0x4421), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
737 {"fmod.w", two(0xF000, 0x5021), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
738 {"fmod.x", two(0xF000, 0x0021), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
739 {"fmod.x", two(0xF000, 0x4821), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
740
741 {"fmove.b", two(0xF000, 0x5800), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
742 {"fmove.b", two(0xF000, 0x7800), two(0xF1C0, 0xFC7F), "IiF7$b", mfloat },
743 {"fmove.d", two(0xF000, 0x5400), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
744 {"fmove.d", two(0xF000, 0x7400), two(0xF1C0, 0xFC7F), "IiF7~F", mfloat },
745 {"fmove.l", two(0xF000, 0x4000), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
746 {"fmove.l", two(0xF000, 0x6000), two(0xF1C0, 0xFC7F), "IiF7$l", mfloat },
747 /* FIXME: the next two variants should not permit moving an address
748 register to anything but the floating point instruction register. */
749 {"fmove.l", two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
750 {"fmove.l", two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*ls8", mfloat },
751 {"fmove.p", two(0xF000, 0x4C00), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
752 {"fmove.p", two(0xF000, 0x6C00), two(0xF1C0, 0xFC00), "IiF7~pkC", mfloat },
753 {"fmove.p", two(0xF000, 0x7C00), two(0xF1C0, 0xFC0F), "IiF7~pDk", mfloat },
754 {"fmove.s", two(0xF000, 0x4400), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
755 {"fmove.s", two(0xF000, 0x6400), two(0xF1C0, 0xFC7F), "IiF7$f", mfloat },
756 {"fmove.w", two(0xF000, 0x5000), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
757 {"fmove.w", two(0xF000, 0x7000), two(0xF1C0, 0xFC7F), "IiF7$w", mfloat },
758 {"fmove.x", two(0xF000, 0x0000), two(0xF1FF, 0xE07F), "IiF8F7", mfloat },
759 {"fmove.x", two(0xF000, 0x4800), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
760 {"fmove.x", two(0xF000, 0x6800), two(0xF1C0, 0xFC7F), "IiF7~x", mfloat },
761
762 {"fsmove.b", two(0xF000, 0x5840), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
763 {"fsmove.d", two(0xF000, 0x5440), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
764 {"fsmove.l", two(0xF000, 0x4040), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
765 {"fsmove.s", two(0xF000, 0x4440), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
766 {"fsmove.w", two(0xF000, 0x5040), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
767 {"fsmove.x", two(0xF000, 0x0040), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
768 {"fsmove.x", two(0xF000, 0x4840), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
769 {"fsmove.p", two(0xF000, 0x4C40), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
770
771 {"fdmove.b", two(0xF000, 0x5844), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
772 {"fdmove.d", two(0xF000, 0x5444), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
773 {"fdmove.l", two(0xF000, 0x4044), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
774 {"fdmove.s", two(0xF000, 0x4444), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
775 {"fdmove.w", two(0xF000, 0x5044), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
776 {"fdmove.x", two(0xF000, 0x0044), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
777 {"fdmove.x", two(0xF000, 0x4844), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
778 {"fdmove.p", two(0xF000, 0x4C44), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
779
780 {"fmovecr.x", two(0xF000, 0x5C00), two(0xF1FF, 0xFC00), "Ii#CF7", mfloat },
781
782 {"fmovem.x", two(0xF000, 0xF800), two(0xF1C0, 0xFF8F), "IiDk&s", mfloat },
783 {"fmovem.x", two(0xF020, 0xE800), two(0xF1F8, 0xFF8F), "IiDk-s", mfloat },
784 {"fmovem.x", two(0xF000, 0xD800), two(0xF1C0, 0xFF8F), "Ii&sDk", mfloat },
785 {"fmovem.x", two(0xF018, 0xD800), two(0xF1F8, 0xFF8F), "Ii+sDk", mfloat },
786 {"fmovem.x", two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Idl3&s", mfloat },
787 {"fmovem.x", two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Id#3&s", mfloat },
788 {"fmovem.x", two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&sl3", mfloat },
789 {"fmovem.x", two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&s#3", mfloat },
790 {"fmovem.x", two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "IdL3-s", mfloat },
791 {"fmovem.x", two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "Id#3-s", mfloat },
792 {"fmovem.x", two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+sl3", mfloat },
793 {"fmovem.x", two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+s#3", mfloat },
794
795 {"fmovem.l", two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
796 {"fmovem.l", two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "IiL8~s", mfloat },
797 /* FIXME: In the next instruction, we should only permit %dn if the
798 target is a single register. We should only permit %an if the
799 target is a single %fpiar. */
800 {"fmovem.l", two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*lL8", mfloat },
801
802 {"fmovem", two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "IdL3-s", mfloat },
803 {"fmovem", two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Idl3&s", mfloat },
804 {"fmovem", two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+sl3", mfloat },
805 {"fmovem", two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&sl3", mfloat },
806 {"fmovem", two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "Id#3-s", mfloat },
807 {"fmovem", two(0xF020, 0xE800), two(0xF1F8, 0xFF8F), "IiDk-s", mfloat },
808 {"fmovem", two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Id#3&s", mfloat },
809 {"fmovem", two(0xF000, 0xF800), two(0xF1C0, 0xFF8F), "IiDk&s", mfloat },
810 {"fmovem", two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+s#3", mfloat },
811 {"fmovem", two(0xF018, 0xD800), two(0xF1F8, 0xFF8F), "Ii+sDk", mfloat },
812 {"fmovem", two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&s#3", mfloat },
813 {"fmovem", two(0xF000, 0xD800), two(0xF1C0, 0xFF8F), "Ii&sDk", mfloat },
814 {"fmovem", two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
815 {"fmovem", two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*ss8", mfloat },
816 {"fmovem", two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "IiL8~s", mfloat },
817 {"fmovem", two(0xF000, 0x8000), two(0xF2C0, 0xE3FF), "Ii*sL8", mfloat },
818
819 {"fmul.b", two(0xF000, 0x5823), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
820 {"fmul.d", two(0xF000, 0x5423), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
821 {"fmul.l", two(0xF000, 0x4023), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
822 {"fmul.p", two(0xF000, 0x4C23), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
823 {"fmul.s", two(0xF000, 0x4423), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
824 {"fmul.w", two(0xF000, 0x5023), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
825 {"fmul.x", two(0xF000, 0x0023), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
826 {"fmul.x", two(0xF000, 0x4823), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
827
828 {"fsmul.b", two(0xF000, 0x5863), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
829 {"fsmul.d", two(0xF000, 0x5463), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
830 {"fsmul.l", two(0xF000, 0x4063), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
831 {"fsmul.p", two(0xF000, 0x4C63), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
832 {"fsmul.s", two(0xF000, 0x4463), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
833 {"fsmul.w", two(0xF000, 0x5063), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
834 {"fsmul.x", two(0xF000, 0x0063), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
835 {"fsmul.x", two(0xF000, 0x4863), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
836
837 {"fdmul.b", two(0xF000, 0x5867), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
838 {"fdmul.d", two(0xF000, 0x5467), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
839 {"fdmul.l", two(0xF000, 0x4067), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
840 {"fdmul.p", two(0xF000, 0x4C67), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
841 {"fdmul.s", two(0xF000, 0x4467), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
842 {"fdmul.w", two(0xF000, 0x5067), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
843 {"fdmul.x", two(0xF000, 0x0067), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
844 {"fdmul.x", two(0xF000, 0x4867), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
845
846 {"fneg.b", two(0xF000, 0x581A), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
847 {"fneg.d", two(0xF000, 0x541A), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
848 {"fneg.l", two(0xF000, 0x401A), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
849 {"fneg.p", two(0xF000, 0x4C1A), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
850 {"fneg.s", two(0xF000, 0x441A), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
851 {"fneg.w", two(0xF000, 0x501A), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
852 {"fneg.x", two(0xF000, 0x001A), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
853 {"fneg.x", two(0xF000, 0x481A), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
854 {"fneg.x", two(0xF000, 0x001A), two(0xF1C0, 0xE07F), "IiFt", mfloat },
855
856 {"fsneg.b", two(0xF000, 0x585A), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
857 {"fsneg.d", two(0xF000, 0x545A), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
858 {"fsneg.l", two(0xF000, 0x405A), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
859 {"fsneg.p", two(0xF000, 0x4C5A), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
860 {"fsneg.s", two(0xF000, 0x445A), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
861 {"fsneg.w", two(0xF000, 0x505A), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
862 {"fsneg.x", two(0xF000, 0x005A), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
863 {"fsneg.x", two(0xF000, 0x485A), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
864 {"fsneg.x", two(0xF000, 0x005A), two(0xF1C0, 0xE07F), "IiFt", m68040up },
865
866 {"fdneg.b", two(0xF000, 0x585E), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
867 {"fdneg.d", two(0xF000, 0x545E), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
868 {"fdneg.l", two(0xF000, 0x405E), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
869 {"fdneg.p", two(0xF000, 0x4C5E), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
870 {"fdneg.s", two(0xF000, 0x445E), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
871 {"fdneg.w", two(0xF000, 0x505E), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
872 {"fdneg.x", two(0xF000, 0x005E), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
873 {"fdneg.x", two(0xF000, 0x485E), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
874 {"fdneg.x", two(0xF000, 0x005E), two(0xF1C0, 0xE07F), "IiFt", m68040up },
875
876 {"fnop", two(0xF280, 0x0000), two(0xFFFF, 0xFFFF), "Ii", mfloat },
877
878 {"frem.b", two(0xF000, 0x5825), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
879 {"frem.d", two(0xF000, 0x5425), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
880 {"frem.l", two(0xF000, 0x4025), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
881 {"frem.p", two(0xF000, 0x4C25), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
882 {"frem.s", two(0xF000, 0x4425), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
883 {"frem.w", two(0xF000, 0x5025), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
884 {"frem.x", two(0xF000, 0x0025), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
885 {"frem.x", two(0xF000, 0x4825), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
886
887 {"frestore", one(0xF140), one(0xF1C0), "Id<s", mfloat },
888
889 {"fsave", one(0xF100), one(0xF1C0), "Id>s", mfloat },
890
891 {"fscale.b", two(0xF000, 0x5826), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
892 {"fscale.d", two(0xF000, 0x5426), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
893 {"fscale.l", two(0xF000, 0x4026), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
894 {"fscale.p", two(0xF000, 0x4C26), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
895 {"fscale.s", two(0xF000, 0x4426), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
896 {"fscale.w", two(0xF000, 0x5026), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
897 {"fscale.x", two(0xF000, 0x0026), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
898 {"fscale.x", two(0xF000, 0x4826), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
899
900 /* $ is necessary to prevent the assembler from using PC-relative.
901 If @ were used, "label: fseq label" could produce "ftrapeq",
902 because "label" became "pc@label". */
903 {"fseq", two(0xF040, 0x0001), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
904 {"fsf", two(0xF040, 0x0000), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
905 {"fsge", two(0xF040, 0x0013), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
906 {"fsgl", two(0xF040, 0x0016), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
907 {"fsgle", two(0xF040, 0x0017), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
908 {"fsgt", two(0xF040, 0x0012), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
909 {"fsle", two(0xF040, 0x0015), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
910 {"fslt", two(0xF040, 0x0014), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
911 {"fsne", two(0xF040, 0x000E), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
912 {"fsnge", two(0xF040, 0x001C), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
913 {"fsngl", two(0xF040, 0x0019), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
914 {"fsngle", two(0xF040, 0x0018), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
915 {"fsngt", two(0xF040, 0x001D), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
916 {"fsnle", two(0xF040, 0x001A), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
917 {"fsnlt", two(0xF040, 0x001B), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
918 {"fsoge", two(0xF040, 0x0003), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
919 {"fsogl", two(0xF040, 0x0006), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
920 {"fsogt", two(0xF040, 0x0002), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
921 {"fsole", two(0xF040, 0x0005), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
922 {"fsolt", two(0xF040, 0x0004), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
923 {"fsor", two(0xF040, 0x0007), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
924 {"fsseq", two(0xF040, 0x0011), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
925 {"fssf", two(0xF040, 0x0010), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
926 {"fssne", two(0xF040, 0x001E), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
927 {"fsst", two(0xF040, 0x001F), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
928 {"fst", two(0xF040, 0x000F), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
929 {"fsueq", two(0xF040, 0x0009), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
930 {"fsuge", two(0xF040, 0x000B), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
931 {"fsugt", two(0xF040, 0x000A), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
932 {"fsule", two(0xF040, 0x000D), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
933 {"fsult", two(0xF040, 0x000C), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
934 {"fsun", two(0xF040, 0x0008), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
935
936 {"fsgldiv.b", two(0xF000, 0x5824), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
937 {"fsgldiv.d", two(0xF000, 0x5424), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
938 {"fsgldiv.l", two(0xF000, 0x4024), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
939 {"fsgldiv.p", two(0xF000, 0x4C24), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
940 {"fsgldiv.s", two(0xF000, 0x4424), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
941 {"fsgldiv.w", two(0xF000, 0x5024), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
942 {"fsgldiv.x", two(0xF000, 0x0024), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
943 {"fsgldiv.x", two(0xF000, 0x4824), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
944 {"fsgldiv.x", two(0xF000, 0x0024), two(0xF1C0, 0xE07F), "IiFt", mfloat },
945
946 {"fsglmul.b", two(0xF000, 0x5827), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
947 {"fsglmul.d", two(0xF000, 0x5427), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
948 {"fsglmul.l", two(0xF000, 0x4027), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
949 {"fsglmul.p", two(0xF000, 0x4C27), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
950 {"fsglmul.s", two(0xF000, 0x4427), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
951 {"fsglmul.w", two(0xF000, 0x5027), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
952 {"fsglmul.x", two(0xF000, 0x0027), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
953 {"fsglmul.x", two(0xF000, 0x4827), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
954 {"fsglmul.x", two(0xF000, 0x0027), two(0xF1C0, 0xE07F), "IiFt", mfloat },
955
956 {"fsin.b", two(0xF000, 0x580E), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
957 {"fsin.d", two(0xF000, 0x540E), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
958 {"fsin.l", two(0xF000, 0x400E), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
959 {"fsin.p", two(0xF000, 0x4C0E), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
960 {"fsin.s", two(0xF000, 0x440E), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
961 {"fsin.w", two(0xF000, 0x500E), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
962 {"fsin.x", two(0xF000, 0x000E), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
963 {"fsin.x", two(0xF000, 0x480E), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
964 {"fsin.x", two(0xF000, 0x000E), two(0xF1C0, 0xE07F), "IiFt", mfloat },
965
966 {"fsincos.b", two(0xF000, 0x5830), two(0xF1C0, 0xFC78), "Ii;bF3F7", mfloat },
967 {"fsincos.d", two(0xF000, 0x5430), two(0xF1C0, 0xFC78), "Ii;FF3F7", mfloat },
968 {"fsincos.l", two(0xF000, 0x4030), two(0xF1C0, 0xFC78), "Ii;lF3F7", mfloat },
969 {"fsincos.p", two(0xF000, 0x4C30), two(0xF1C0, 0xFC78), "Ii;pF3F7", mfloat },
970 {"fsincos.s", two(0xF000, 0x4430), two(0xF1C0, 0xFC78), "Ii;fF3F7", mfloat },
971 {"fsincos.w", two(0xF000, 0x5030), two(0xF1C0, 0xFC78), "Ii;wF3F7", mfloat },
972 {"fsincos.x", two(0xF000, 0x0030), two(0xF1C0, 0xE078), "IiF8F3F7", mfloat },
973 {"fsincos.x", two(0xF000, 0x4830), two(0xF1C0, 0xFC78), "Ii;xF3F7", mfloat },
974
975 {"fsinh.b", two(0xF000, 0x5802), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
976 {"fsinh.d", two(0xF000, 0x5402), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
977 {"fsinh.l", two(0xF000, 0x4002), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
978 {"fsinh.p", two(0xF000, 0x4C02), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
979 {"fsinh.s", two(0xF000, 0x4402), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
980 {"fsinh.w", two(0xF000, 0x5002), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
981 {"fsinh.x", two(0xF000, 0x0002), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
982 {"fsinh.x", two(0xF000, 0x4802), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
983 {"fsinh.x", two(0xF000, 0x0002), two(0xF1C0, 0xE07F), "IiFt", mfloat },
984
985 {"fsqrt.b", two(0xF000, 0x5804), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
986 {"fsqrt.d", two(0xF000, 0x5404), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
987 {"fsqrt.l", two(0xF000, 0x4004), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
988 {"fsqrt.p", two(0xF000, 0x4C04), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
989 {"fsqrt.s", two(0xF000, 0x4404), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
990 {"fsqrt.w", two(0xF000, 0x5004), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
991 {"fsqrt.x", two(0xF000, 0x0004), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
992 {"fsqrt.x", two(0xF000, 0x4804), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
993 {"fsqrt.x", two(0xF000, 0x0004), two(0xF1C0, 0xE07F), "IiFt", mfloat },
994
995 {"fssqrt.b", two(0xF000, 0x5841), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
996 {"fssqrt.d", two(0xF000, 0x5441), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
997 {"fssqrt.l", two(0xF000, 0x4041), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
998 {"fssqrt.p", two(0xF000, 0x4C41), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
999 {"fssqrt.s", two(0xF000, 0x4441), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
1000 {"fssqrt.w", two(0xF000, 0x5041), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
1001 {"fssqrt.x", two(0xF000, 0x0041), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
1002 {"fssqrt.x", two(0xF000, 0x4841), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
1003 {"fssqrt.x", two(0xF000, 0x0041), two(0xF1C0, 0xE07F), "IiFt", m68040up },
1004
1005 {"fdsqrt.b", two(0xF000, 0x5845), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
1006 {"fdsqrt.d", two(0xF000, 0x5445), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
1007 {"fdsqrt.l", two(0xF000, 0x4045), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
1008 {"fdsqrt.p", two(0xF000, 0x4C45), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
1009 {"fdsqrt.s", two(0xF000, 0x4445), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
1010 {"fdsqrt.w", two(0xF000, 0x5045), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
1011 {"fdsqrt.x", two(0xF000, 0x0045), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
1012 {"fdsqrt.x", two(0xF000, 0x4845), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
1013 {"fdsqrt.x", two(0xF000, 0x0045), two(0xF1C0, 0xE07F), "IiFt", m68040up },
1014
1015 {"fsub.b", two(0xF000, 0x5828), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1016 {"fsub.d", two(0xF000, 0x5428), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1017 {"fsub.l", two(0xF000, 0x4028), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1018 {"fsub.p", two(0xF000, 0x4C28), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1019 {"fsub.s", two(0xF000, 0x4428), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1020 {"fsub.w", two(0xF000, 0x5028), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1021 {"fsub.x", two(0xF000, 0x0028), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1022 {"fsub.x", two(0xF000, 0x4828), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1023 {"fsub.x", two(0xF000, 0x0028), two(0xF1C0, 0xE07F), "IiFt", mfloat },
1024
1025 {"fssub.b", two(0xF000, 0x5868), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
1026 {"fssub.d", two(0xF000, 0x5468), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
1027 {"fssub.l", two(0xF000, 0x4068), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
1028 {"fssub.p", two(0xF000, 0x4C68), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
1029 {"fssub.s", two(0xF000, 0x4468), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
1030 {"fssub.w", two(0xF000, 0x5068), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
1031 {"fssub.x", two(0xF000, 0x0068), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
1032 {"fssub.x", two(0xF000, 0x4868), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
1033 {"fssub.x", two(0xF000, 0x0068), two(0xF1C0, 0xE07F), "IiFt", m68040up },
1034
1035 {"fdsub.b", two(0xF000, 0x586c), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
1036 {"fdsub.d", two(0xF000, 0x546c), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
1037 {"fdsub.l", two(0xF000, 0x406c), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
1038 {"fdsub.p", two(0xF000, 0x4C6c), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
1039 {"fdsub.s", two(0xF000, 0x446c), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
1040 {"fdsub.w", two(0xF000, 0x506c), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
1041 {"fdsub.x", two(0xF000, 0x006c), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
1042 {"fdsub.x", two(0xF000, 0x486c), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
1043 {"fdsub.x", two(0xF000, 0x006c), two(0xF1C0, 0xE07F), "IiFt", m68040up },
1044
1045 {"ftan.b", two(0xF000, 0x580F), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1046 {"ftan.d", two(0xF000, 0x540F), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1047 {"ftan.l", two(0xF000, 0x400F), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1048 {"ftan.p", two(0xF000, 0x4C0F), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1049 {"ftan.s", two(0xF000, 0x440F), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1050 {"ftan.w", two(0xF000, 0x500F), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1051 {"ftan.x", two(0xF000, 0x000F), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1052 {"ftan.x", two(0xF000, 0x480F), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1053 {"ftan.x", two(0xF000, 0x000F), two(0xF1C0, 0xE07F), "IiFt", mfloat },
1054
1055 {"ftanh.b", two(0xF000, 0x5809), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1056 {"ftanh.d", two(0xF000, 0x5409), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1057 {"ftanh.l", two(0xF000, 0x4009), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1058 {"ftanh.p", two(0xF000, 0x4C09), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1059 {"ftanh.s", two(0xF000, 0x4409), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1060 {"ftanh.w", two(0xF000, 0x5009), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1061 {"ftanh.x", two(0xF000, 0x0009), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1062 {"ftanh.x", two(0xF000, 0x4809), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1063 {"ftanh.x", two(0xF000, 0x0009), two(0xF1C0, 0xE07F), "IiFt", mfloat },
1064
1065 {"ftentox.b", two(0xF000, 0x5812), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1066 {"ftentox.d", two(0xF000, 0x5412), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1067 {"ftentox.l", two(0xF000, 0x4012), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1068 {"ftentox.p", two(0xF000, 0x4C12), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1069 {"ftentox.s", two(0xF000, 0x4412), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1070 {"ftentox.w", two(0xF000, 0x5012), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1071 {"ftentox.x", two(0xF000, 0x0012), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1072 {"ftentox.x", two(0xF000, 0x4812), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1073 {"ftentox.x", two(0xF000, 0x0012), two(0xF1C0, 0xE07F), "IiFt", mfloat },
1074
1075 {"ftrapeq", two(0xF07C, 0x0001), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1076 {"ftrapf", two(0xF07C, 0x0000), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1077 {"ftrapge", two(0xF07C, 0x0013), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1078 {"ftrapgl", two(0xF07C, 0x0016), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1079 {"ftrapgle", two(0xF07C, 0x0017), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1080 {"ftrapgt", two(0xF07C, 0x0012), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1081 {"ftraple", two(0xF07C, 0x0015), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1082 {"ftraplt", two(0xF07C, 0x0014), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1083 {"ftrapne", two(0xF07C, 0x000E), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1084 {"ftrapnge", two(0xF07C, 0x001C), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1085 {"ftrapngl", two(0xF07C, 0x0019), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1086 {"ftrapngle", two(0xF07C, 0x0018), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1087 {"ftrapngt", two(0xF07C, 0x001D), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1088 {"ftrapnle", two(0xF07C, 0x001A), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1089 {"ftrapnlt", two(0xF07C, 0x001B), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1090 {"ftrapoge", two(0xF07C, 0x0003), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1091 {"ftrapogl", two(0xF07C, 0x0006), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1092 {"ftrapogt", two(0xF07C, 0x0002), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1093 {"ftrapole", two(0xF07C, 0x0005), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1094 {"ftrapolt", two(0xF07C, 0x0004), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1095 {"ftrapor", two(0xF07C, 0x0007), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1096 {"ftrapseq", two(0xF07C, 0x0011), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1097 {"ftrapsf", two(0xF07C, 0x0010), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1098 {"ftrapsne", two(0xF07C, 0x001E), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1099 {"ftrapst", two(0xF07C, 0x001F), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1100 {"ftrapt", two(0xF07C, 0x000F), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1101 {"ftrapueq", two(0xF07C, 0x0009), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1102 {"ftrapuge", two(0xF07C, 0x000B), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1103 {"ftrapugt", two(0xF07C, 0x000A), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1104 {"ftrapule", two(0xF07C, 0x000D), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1105 {"ftrapult", two(0xF07C, 0x000C), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1106 {"ftrapun", two(0xF07C, 0x0008), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1107
1108 {"ftrapeq.w", two(0xF07A, 0x0001), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1109 {"ftrapf.w", two(0xF07A, 0x0000), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1110 {"ftrapge.w", two(0xF07A, 0x0013), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1111 {"ftrapgl.w", two(0xF07A, 0x0016), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1112 {"ftrapgle.w", two(0xF07A, 0x0017), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1113 {"ftrapgt.w", two(0xF07A, 0x0012), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1114 {"ftraple.w", two(0xF07A, 0x0015), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1115 {"ftraplt.w", two(0xF07A, 0x0014), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1116 {"ftrapne.w", two(0xF07A, 0x000E), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1117 {"ftrapnge.w", two(0xF07A, 0x001C), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1118 {"ftrapngl.w", two(0xF07A, 0x0019), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1119 {"ftrapngle.w", two(0xF07A, 0x0018), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1120 {"ftrapngt.w", two(0xF07A, 0x001D), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1121 {"ftrapnle.w", two(0xF07A, 0x001A), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1122 {"ftrapnlt.w", two(0xF07A, 0x001B), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1123 {"ftrapoge.w", two(0xF07A, 0x0003), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1124 {"ftrapogl.w", two(0xF07A, 0x0006), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1125 {"ftrapogt.w", two(0xF07A, 0x0002), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1126 {"ftrapole.w", two(0xF07A, 0x0005), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1127 {"ftrapolt.w", two(0xF07A, 0x0004), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1128 {"ftrapor.w", two(0xF07A, 0x0007), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1129 {"ftrapseq.w", two(0xF07A, 0x0011), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1130 {"ftrapsf.w", two(0xF07A, 0x0010), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1131 {"ftrapsne.w", two(0xF07A, 0x001E), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1132 {"ftrapst.w", two(0xF07A, 0x001F), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1133 {"ftrapt.w", two(0xF07A, 0x000F), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1134 {"ftrapueq.w", two(0xF07A, 0x0009), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1135 {"ftrapuge.w", two(0xF07A, 0x000B), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1136 {"ftrapugt.w", two(0xF07A, 0x000A), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1137 {"ftrapule.w", two(0xF07A, 0x000D), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1138 {"ftrapult.w", two(0xF07A, 0x000C), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1139 {"ftrapun.w", two(0xF07A, 0x0008), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1140
1141 {"ftrapeq.l", two(0xF07B, 0x0001), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1142 {"ftrapf.l", two(0xF07B, 0x0000), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1143 {"ftrapge.l", two(0xF07B, 0x0013), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1144 {"ftrapgl.l", two(0xF07B, 0x0016), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1145 {"ftrapgle.l", two(0xF07B, 0x0017), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1146 {"ftrapgt.l", two(0xF07B, 0x0012), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1147 {"ftraple.l", two(0xF07B, 0x0015), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1148 {"ftraplt.l", two(0xF07B, 0x0014), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1149 {"ftrapne.l", two(0xF07B, 0x000E), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1150 {"ftrapnge.l", two(0xF07B, 0x001C), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1151 {"ftrapngl.l", two(0xF07B, 0x0019), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1152 {"ftrapngle.l", two(0xF07B, 0x0018), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1153 {"ftrapngt.l", two(0xF07B, 0x001D), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1154 {"ftrapnle.l", two(0xF07B, 0x001A), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1155 {"ftrapnlt.l", two(0xF07B, 0x001B), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1156 {"ftrapoge.l", two(0xF07B, 0x0003), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1157 {"ftrapogl.l", two(0xF07B, 0x0006), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1158 {"ftrapogt.l", two(0xF07B, 0x0002), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1159 {"ftrapole.l", two(0xF07B, 0x0005), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1160 {"ftrapolt.l", two(0xF07B, 0x0004), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1161 {"ftrapor.l", two(0xF07B, 0x0007), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1162 {"ftrapseq.l", two(0xF07B, 0x0011), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1163 {"ftrapsf.l", two(0xF07B, 0x0010), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1164 {"ftrapsne.l", two(0xF07B, 0x001E), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1165 {"ftrapst.l", two(0xF07B, 0x001F), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1166 {"ftrapt.l", two(0xF07B, 0x000F), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1167 {"ftrapueq.l", two(0xF07B, 0x0009), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1168 {"ftrapuge.l", two(0xF07B, 0x000B), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1169 {"ftrapugt.l", two(0xF07B, 0x000A), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1170 {"ftrapule.l", two(0xF07B, 0x000D), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1171 {"ftrapult.l", two(0xF07B, 0x000C), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1172 {"ftrapun.l", two(0xF07B, 0x0008), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1173
1174 {"ftst.b", two(0xF000, 0x583A), two(0xF1C0, 0xFC7F), "Ii;b", mfloat },
1175 {"ftst.d", two(0xF000, 0x543A), two(0xF1C0, 0xFC7F), "Ii;F", mfloat },
1176 {"ftst.l", two(0xF000, 0x403A), two(0xF1C0, 0xFC7F), "Ii;l", mfloat },
1177 {"ftst.p", two(0xF000, 0x4C3A), two(0xF1C0, 0xFC7F), "Ii;p", mfloat },
1178 {"ftst.s", two(0xF000, 0x443A), two(0xF1C0, 0xFC7F), "Ii;f", mfloat },
1179 {"ftst.w", two(0xF000, 0x503A), two(0xF1C0, 0xFC7F), "Ii;w", mfloat },
1180 {"ftst.x", two(0xF000, 0x003A), two(0xF1C0, 0xE07F), "IiF8", mfloat },
1181 {"ftst.x", two(0xF000, 0x483A), two(0xF1C0, 0xFC7F), "Ii;x", mfloat },
1182
1183 {"ftwotox.b", two(0xF000, 0x5811), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1184 {"ftwotox.d", two(0xF000, 0x5411), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1185 {"ftwotox.l", two(0xF000, 0x4011), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1186 {"ftwotox.p", two(0xF000, 0x4C11), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1187 {"ftwotox.s", two(0xF000, 0x4411), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1188 {"ftwotox.w", two(0xF000, 0x5011), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1189 {"ftwotox.x", two(0xF000, 0x0011), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1190 {"ftwotox.x", two(0xF000, 0x4811), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1191 {"ftwotox.x", two(0xF000, 0x0011), two(0xF1C0, 0xE07F), "IiFt", mfloat },
1192
1193 {"halt", one(0045310), one(0177777), "", m68060 | mcf5200 },
1194
1195 {"illegal", one(0045374), one(0177777), "", m68000up },
1196
1197 {"jmp", one(0047300), one(0177700), "!s", m68000up | mcf5200 },
1198
1199 {"jra", one(0060000), one(0177400), "Bg", m68000up | mcf5200 },
1200 {"jra", one(0047300), one(0177700), "!s", m68000up | mcf5200 },
1201
1202 {"jsr", one(0047200), one(0177700), "!s", m68000up | mcf5200 },
1203
1204 {"jbsr", one(0060400), one(0177400), "Bg", m68000up | mcf5200 },
1205 {"jbsr", one(0047200), one(0177700), "!s", m68000up | mcf5200 },
1206
1207 {"lea", one(0040700), one(0170700), "!sAd", m68000up | mcf5200 },
1208
1209 {"lpstop", two(0174000,0000700),two(0177777,0177777),"#w", cpu32|m68060 },
1210
1211 {"link.w", one(0047120), one(0177770), "As#w", m68000up | mcf5200 },
1212 {"link.l", one(0044010), one(0177770), "As#l", m68020up | cpu32 },
1213 {"link", one(0047120), one(0177770), "As#W", m68000up | mcf5200 },
1214 {"link", one(0044010), one(0177770), "As#l", m68020up | cpu32 },
1215
1216 {"lsl.b", one(0160410), one(0170770), "QdDs", m68000up },
1217 {"lsl.b", one(0160450), one(0170770), "DdDs", m68000up },
1218 {"lsl.w", one(0160510), one(0170770), "QdDs", m68000up },
1219 {"lsl.w", one(0160550), one(0170770), "DdDs", m68000up },
1220 {"lsl.w", one(0161700), one(0177700), "~s", m68000up },
1221 {"lsl.l", one(0160610), one(0170770), "QdDs", m68000up | mcf5200 },
1222 {"lsl.l", one(0160650), one(0170770), "DdDs", m68000up | mcf5200 },
1223
1224 {"lsr.b", one(0160010), one(0170770), "QdDs", m68000up },
1225 {"lsr.b", one(0160050), one(0170770), "DdDs", m68000up },
1226 {"lsr.w", one(0160110), one(0170770), "QdDs", m68000up },
1227 {"lsr.w", one(0160150), one(0170770), "DdDs", m68000up },
1228 {"lsr.w", one(0161300), one(0177700), "~s", m68000up },
1229 {"lsr.l", one(0160210), one(0170770), "QdDs", m68000up | mcf5200 },
1230 {"lsr.l", one(0160250), one(0170770), "DdDs", m68000up | mcf5200 },
1231
1232 /* NOTE: The mcf5200 family programmer's reference manual does not
1233 indicate the byte form of the movea instruction is invalid (as it
1234 is on 68000 family cpus). However, experiments on the 5202 yeild
1235 unexpected results. The value is copied, but it is not sign extended
1236 (as is done with movea.w) and the top three bytes in the address
1237 register are not disturbed. I don't know if this is the intended
1238 behavior --- it could be a hole in instruction decoding (Motorola
1239 decided not to trap all invalid instructions for performance reasons)
1240 --- but I suspect that it is not.
1241
1242 I reported this to Motorola ISD Technical Communications Support,
1243 which replied that other coldfire assemblers reject movea.b. For
1244 this reason I've decided to not allow moveab.
1245
1246 jtc@cygnus.com - 97/01/24
1247 */
1248
1249 {"movea.l", one(0020100), one(0170700), "*lAd", m68000up | mcf5200 },
1250 {"movea.w", one(0030100), one(0170700), "*wAd", m68000up | mcf5200 },
1251
1252 {"movec", one(0047173), one(0177777), "R1Jj", m68010up | mcf5200 },
1253 {"movec", one(0047173), one(0177777), "R1#j", m68010up | mcf5200 },
1254 {"movec", one(0047172), one(0177777), "JjR1", m68010up },
1255 {"movec", one(0047172), one(0177777), "#jR1", m68010up },
1256
1257 {"movem.w", one(0044200), one(0177700), "Lw&s", m68000up },
1258 {"movem.w", one(0044240), one(0177770), "lw-s", m68000up },
1259 {"movem.w", one(0044200), one(0177700), "#w>s", m68000up },
1260 {"movem.w", one(0046200), one(0177700), "<sLw", m68000up },
1261 {"movem.w", one(0046200), one(0177700), "<s#w", m68000up },
1262 {"movem.l", one(0044300), one(0177700), "Lw&s", m68000up },
1263 {"movem.l", one(0044340), one(0177770), "lw-s", m68000up },
1264 {"movem.l", one(0044300), one(0177700), "#w>s", m68000up },
1265 {"movem.l", one(0046300), one(0177700), "<sLw", m68000up },
1266 {"movem.l", one(0046300), one(0177700), "<s#w", m68000up },
1267 /* FIXME: need specifier for mode 2 and 5 to simplify below insn patterns */
1268 {"movem.l", one(0044320), one(0177770), "Lwas", mcf5200 },
1269 {"movem.l", one(0044320), one(0177770), "#was", mcf5200 },
1270 {"movem.l", one(0044350), one(0177770), "Lwds", mcf5200 },
1271 {"movem.l", one(0044350), one(0177770), "#wds", mcf5200 },
1272 {"movem.l", one(0046320), one(0177770), "asLw", mcf5200 },
1273 {"movem.l", one(0046320), one(0177770), "as#w", mcf5200 },
1274 {"movem.l", one(0046350), one(0177770), "dsLw", mcf5200 },
1275 {"movem.l", one(0046350), one(0177770), "ds#w", mcf5200 },
1276
1277 {"movep.w", one(0000410), one(0170770), "dsDd", m68000up },
1278 {"movep.w", one(0000610), one(0170770), "Ddds", m68000up },
1279 {"movep.l", one(0000510), one(0170770), "dsDd", m68000up },
1280 {"movep.l", one(0000710), one(0170770), "Ddds", m68000up },
1281
1282 {"moveq", one(0070000), one(0170400), "MsDd", m68000up | mcf5200 },
1283 {"moveq", one(0070000), one(0170400), "#BDd", m68000up | mcf5200 },
1284
1285 /* The move opcode can generate the movea and moveq instructions. */
1286 {"move.b", one(0010000), one(0170000), ";b$d", m68000up },
1287 {"move.b", one(0010000), one(0170000), "ms%d", mcf5200 },
1288 {"move.b", one(0010000), one(0170000), "nspd", mcf5200 },
1289 {"move.b", one(0010000), one(0170000), "obmd", mcf5200 },
1290
1291 {"move.w", one(0030000), one(0170000), "*w%d", m68000up },
1292 {"move.w", one(0030000), one(0170000), "ms%d", mcf5200 },
1293 {"move.w", one(0030000), one(0170000), "nspd", mcf5200 },
1294 {"move.w", one(0030000), one(0170000), "owmd", mcf5200 },
1295
1296 {"move.l", one(0070000), one(0170400), "MsDd", m68000up | mcf5200 },
1297 {"move.l", one(0020000), one(0170000), "*l%d", m68000up },
1298 {"move.l", one(0020000), one(0170000), "ms%d", mcf5200 },
1299 {"move.l", one(0020000), one(0170000), "nspd", mcf5200 },
1300 {"move.l", one(0020000), one(0170000), "olmd", mcf5200 },
1301
1302 {"move", one(0030000), one(0170000), "*w%d", m68000up },
1303 {"move", one(0030000), one(0170000), "ms%d", mcf5200 },
1304 {"move", one(0030000), one(0170000), "nspd", mcf5200 },
1305 {"move", one(0030000), one(0170000), "owmd", mcf5200 },
1306 {"move", one(0040300), one(0177700), "Ss$s", m68000up },
1307 {"move", one(0040300), one(0177770), "SsDs", mcf5200 },
1308 {"move", one(0041300), one(0177700), "Cs$s", m68010up },
1309 {"move", one(0041300), one(0177770), "CsDs", mcf5200 },
1310 {"move", one(0042300), one(0177700), ";wCd", m68000up },
1311 {"move", one(0042300), one(0177700), "DsCd", mcf5200 },
1312 {"move", one(0042374), one(0177777), "#wCd", mcf5200 },
1313 {"move", one(0043300), one(0177700), ";wSd", m68000up },
1314 {"move", one(0043300), one(0177700), "DsSd", mcf5200 },
1315 {"move", one(0043374), one(0177777), "#wSd", mcf5200 },
1316
1317 {"move", one(0047140), one(0177770), "AsUd", m68000up },
1318 {"move", one(0047150), one(0177770), "UdAs", m68000up },
1319
1320 {"moves.b", two(0007000, 0), two(0177700, 07777), "~sR1", m68010up },
1321 {"moves.b", two(0007000, 04000), two(0177700, 07777), "R1~s", m68010up },
1322 {"moves.w", two(0007100, 0), two(0177700, 07777), "~sR1", m68010up },
1323 {"moves.w", two(0007100, 04000), two(0177700, 07777), "R1~s", m68010up },
1324 {"moves.l", two(0007200, 0), two(0177700, 07777), "~sR1", m68010up },
1325 {"moves.l", two(0007200, 04000), two(0177700, 07777), "R1~s", m68010up },
1326
1327 {"move16", two(0xf620, 0x8000), two(0xfff8, 0x8fff), "+s+1", m68040up },
1328 {"move16", one(0xf600), one(0xfff8), "+s_L", m68040up },
1329 {"move16", one(0xf608), one(0xfff8), "_L+s", m68040up },
1330 {"move16", one(0xf610), one(0xfff8), "as_L", m68040up },
1331 {"move16", one(0xf618), one(0xfff8), "_Las", m68040up },
1332
1333 {"muls.w", one(0140700), one(0170700), ";wDd", m68000up|mcf5200 },
1334 {"muls.l", two(0046000,004000), two(0177700,0107770), ";lD1", m68020up|cpu32 },
1335 {"muls.l", two(0046000,004000), two(0177700,0107770), "qsD1", mcf5200 },
1336 {"muls.l", two(0046000,006000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
1337
1338 {"mulu.w", one(0140300), one(0170700), ";wDd", m68000up|mcf5200 },
1339 {"mulu.l", two(0046000,000000), two(0177700,0107770), ";lD1", m68020up|cpu32 },
1340 {"mulu.l", two(0046000,000000), two(0177700,0107770), "qsD1", mcf5200 },
1341 {"mulu.l", two(0046000,002000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
1342
1343 {"nbcd", one(0044000), one(0177700), "$s", m68000up },
1344
1345 {"neg.b", one(0042000), one(0177700), "$s", m68000up },
1346 {"neg.w", one(0042100), one(0177700), "$s", m68000up },
1347 {"neg.l", one(0042200), one(0177700), "$s", m68000up },
1348 {"neg.l", one(0042200), one(0177700), "Ds", mcf5200},
1349
1350 {"negx.b", one(0040000), one(0177700), "$s", m68000up },
1351 {"negx.w", one(0040100), one(0177700), "$s", m68000up },
1352 {"negx.l", one(0040200), one(0177700), "$s", m68000up },
1353 {"negx.l", one(0040200), one(0177700), "Ds", mcf5200},
1354
1355 {"nop", one(0047161), one(0177777), "", m68000up | mcf5200},
1356
1357 {"not.b", one(0043000), one(0177700), "$s", m68000up },
1358 {"not.w", one(0043100), one(0177700), "$s", m68000up },
1359 {"not.l", one(0043200), one(0177700), "$s", m68000up },
1360 {"not.l", one(0043200), one(0177700), "Ds", mcf5200},
1361
1362 {"ori.b", one(0000000), one(0177700), "#b$s", m68000up },
1363 {"ori.w", one(0000100), one(0177700), "#w$s", m68000up },
1364 {"ori.l", one(0000200), one(0177700), "#l$s", m68000up },
1365 {"ori.l", one(0000200), one(0177700), "#lDs", mcf5200 },
1366 {"ori", one(0000074), one(0177777), "#bCs", m68000up },
1367 {"ori", one(0000100), one(0177700), "#w$s", m68000up },
1368 {"ori", one(0000174), one(0177777), "#wSs", m68000up },
1369
1370 /* The or opcode can generate the ori instruction. */
1371 {"or.b", one(0000000), one(0177700), "#b$s", m68000up },
1372 {"or.b", one(0100000), one(0170700), ";bDd", m68000up },
1373 {"or.b", one(0100400), one(0170700), "Dd~s", m68000up },
1374 {"or.w", one(0000100), one(0177700), "#w$s", m68000up },
1375 {"or.w", one(0100100), one(0170700), ";wDd", m68000up },
1376 {"or.w", one(0100500), one(0170700), "Dd~s", m68000up },
1377 {"or.l", one(0000200), one(0177700), "#l$s", m68000up },
1378 {"or.l", one(0000200), one(0177700), "#lDs", mcf5200 },
1379 {"or.l", one(0100200), one(0170700), ";lDd", m68000up | mcf5200 },
1380 {"or.l", one(0100600), one(0170700), "Dd~s", m68000up | mcf5200 },
1381 {"or", one(0000074), one(0177777), "#bCs", m68000up },
1382 {"or", one(0000100), one(0177700), "#w$s", m68000up },
1383 {"or", one(0000174), one(0177777), "#wSs", m68000up },
1384 {"or", one(0100100), one(0170700), ";wDd", m68000up },
1385 {"or", one(0100500), one(0170700), "Dd~s", m68000up },
1386
1387 {"pack", one(0100500), one(0170770), "DsDd#w", m68020up },
1388 {"pack", one(0100510), one(0170770), "-s-d#w", m68020up },
1389
1390 {"pbac", one(0xf087), one(0xffbf), "Bc", m68851 },
1391 {"pbac.w", one(0xf087), one(0xffff), "BW", m68851 },
1392 {"pbas", one(0xf086), one(0xffbf), "Bc", m68851 },
1393 {"pbas.w", one(0xf086), one(0xffff), "BW", m68851 },
1394 {"pbbc", one(0xf081), one(0xffbf), "Bc", m68851 },
1395 {"pbbc.w", one(0xf081), one(0xffff), "BW", m68851 },
1396 {"pbbs", one(0xf080), one(0xffbf), "Bc", m68851 },
1397 {"pbbs.w", one(0xf080), one(0xffff), "BW", m68851 },
1398 {"pbcc", one(0xf08f), one(0xffbf), "Bc", m68851 },
1399 {"pbcc.w", one(0xf08f), one(0xffff), "BW", m68851 },
1400 {"pbcs", one(0xf08e), one(0xffbf), "Bc", m68851 },
1401 {"pbcs.w", one(0xf08e), one(0xffff), "BW", m68851 },
1402 {"pbgc", one(0xf08d), one(0xffbf), "Bc", m68851 },
1403 {"pbgc.w", one(0xf08d), one(0xffff), "BW", m68851 },
1404 {"pbgs", one(0xf08c), one(0xffbf), "Bc", m68851 },
1405 {"pbgs.w", one(0xf08c), one(0xffff), "BW", m68851 },
1406 {"pbic", one(0xf08b), one(0xffbf), "Bc", m68851 },
1407 {"pbic.w", one(0xf08b), one(0xffff), "BW", m68851 },
1408 {"pbis", one(0xf08a), one(0xffbf), "Bc", m68851 },
1409 {"pbis.w", one(0xf08a), one(0xffff), "BW", m68851 },
1410 {"pblc", one(0xf083), one(0xffbf), "Bc", m68851 },
1411 {"pblc.w", one(0xf083), one(0xffff), "BW", m68851 },
1412 {"pbls", one(0xf082), one(0xffbf), "Bc", m68851 },
1413 {"pbls.w", one(0xf082), one(0xffff), "BW", m68851 },
1414 {"pbsc", one(0xf085), one(0xffbf), "Bc", m68851 },
1415 {"pbsc.w", one(0xf085), one(0xffff), "BW", m68851 },
1416 {"pbss", one(0xf084), one(0xffbf), "Bc", m68851 },
1417 {"pbss.w", one(0xf084), one(0xffff), "BW", m68851 },
1418 {"pbwc", one(0xf089), one(0xffbf), "Bc", m68851 },
1419 {"pbwc.w", one(0xf089), one(0xffff), "BW", m68851 },
1420 {"pbws", one(0xf088), one(0xffbf), "Bc", m68851 },
1421 {"pbws.w", one(0xf088), one(0xffff), "BW", m68851 },
1422
1423 {"pdbac", two(0xf048, 0x0007), two(0xfff8, 0xffff), "DsBw", m68851 },
1424 {"pdbas", two(0xf048, 0x0006), two(0xfff8, 0xffff), "DsBw", m68851 },
1425 {"pdbbc", two(0xf048, 0x0001), two(0xfff8, 0xffff), "DsBw", m68851 },
1426 {"pdbbs", two(0xf048, 0x0000), two(0xfff8, 0xffff), "DsBw", m68851 },
1427 {"pdbcc", two(0xf048, 0x000f), two(0xfff8, 0xffff), "DsBw", m68851 },
1428 {"pdbcs", two(0xf048, 0x000e), two(0xfff8, 0xffff), "DsBw", m68851 },
1429 {"pdbgc", two(0xf048, 0x000d), two(0xfff8, 0xffff), "DsBw", m68851 },
1430 {"pdbgs", two(0xf048, 0x000c), two(0xfff8, 0xffff), "DsBw", m68851 },
1431 {"pdbic", two(0xf048, 0x000b), two(0xfff8, 0xffff), "DsBw", m68851 },
1432 {"pdbis", two(0xf048, 0x000a), two(0xfff8, 0xffff), "DsBw", m68851 },
1433 {"pdblc", two(0xf048, 0x0003), two(0xfff8, 0xffff), "DsBw", m68851 },
1434 {"pdbls", two(0xf048, 0x0002), two(0xfff8, 0xffff), "DsBw", m68851 },
1435 {"pdbsc", two(0xf048, 0x0005), two(0xfff8, 0xffff), "DsBw", m68851 },
1436 {"pdbss", two(0xf048, 0x0004), two(0xfff8, 0xffff), "DsBw", m68851 },
1437 {"pdbwc", two(0xf048, 0x0009), two(0xfff8, 0xffff), "DsBw", m68851 },
1438 {"pdbws", two(0xf048, 0x0008), two(0xfff8, 0xffff), "DsBw", m68851 },
1439
1440 {"pea", one(0044100), one(0177700), "!s", m68000up|mcf5200 },
1441
1442 {"pflusha", one(0xf518), one(0xfff8), "", m68040up },
1443 {"pflusha", two(0xf000,0x2400), two(0xffff,0xffff), "", m68030 | m68851 },
1444
1445 {"pflush", two(0xf000,0x3010), two(0xffc0,0xfe10), "T3T9", m68030|m68851 },
1446 {"pflush", two(0xf000,0x3810), two(0xffc0,0xfe10), "T3T9&s", m68030|m68851 },
1447 {"pflush", two(0xf000,0x3008), two(0xffc0,0xfe18), "D3T9", m68030|m68851 },
1448 {"pflush", two(0xf000,0x3808), two(0xffc0,0xfe18), "D3T9&s", m68030|m68851 },
1449 {"pflush", two(0xf000,0x3000), two(0xffc0,0xfe1e), "f3T9", m68030|m68851 },
1450 {"pflush", two(0xf000,0x3800), two(0xffc0,0xfe1e), "f3T9&s", m68030|m68851 },
1451 {"pflush", one(0xf508), one(0xfff8), "as", m68040up },
1452 {"pflush", one(0xf508), one(0xfff8), "As", m68040up },
1453
1454 {"pflushan", one(0xf510), one(0xfff8), "", m68040up },
1455 {"pflushn", one(0xf500), one(0xfff8), "as", m68040up },
1456 {"pflushn", one(0xf500), one(0xfff8), "As", m68040up },
1457
1458 {"pflushr", two(0xf000, 0xa000), two(0xffc0, 0xffff), "|s", m68851 },
1459
1460 {"pflushs", two(0xf000, 0x3410), two(0xfff8, 0xfe10), "T3T9", m68851 },
1461 {"pflushs", two(0xf000, 0x3c10), two(0xfff8, 0xfe10), "T3T9&s", m68851 },
1462 {"pflushs", two(0xf000, 0x3408), two(0xfff8, 0xfe18), "D3T9", m68851 },
1463 {"pflushs", two(0xf000, 0x3c08), two(0xfff8, 0xfe18), "D3T9&s", m68851 },
1464 {"pflushs", two(0xf000, 0x3400), two(0xfff8, 0xfe1e), "f3T9", m68851 },
1465 {"pflushs", two(0xf000, 0x3c00), two(0xfff8, 0xfe1e), "f3T9&s", m68851 },
1466
1467 {"ploadr", two(0xf000,0x2210), two(0xffc0,0xfff0), "T3&s", m68030|m68851 },
1468 {"ploadr", two(0xf000,0x2208), two(0xffc0,0xfff8), "D3&s", m68030|m68851 },
1469 {"ploadr", two(0xf000,0x2200), two(0xffc0,0xfffe), "f3&s", m68030|m68851 },
1470 {"ploadw", two(0xf000,0x2010), two(0xffc0,0xfff0), "T3&s", m68030|m68851 },
1471 {"ploadw", two(0xf000,0x2008), two(0xffc0,0xfff8), "D3&s", m68030|m68851 },
1472 {"ploadw", two(0xf000,0x2000), two(0xffc0,0xfffe), "f3&s", m68030|m68851 },
1473
1474 {"plpar", one(0xf5c8), one(0xfff8), "as", m68060 },
1475 {"plpaw", one(0xf588), one(0xfff8), "as", m68060 },
1476
1477 {"pmove", two(0xf000,0x4000), two(0xffc0,0xffff), "*l08", m68030|m68851 },
1478 {"pmove", two(0xf000,0x5c00), two(0xffc0,0xffff), "*w18", m68851 },
1479 {"pmove", two(0xf000,0x4000), two(0xffc0,0xe3ff), "*b28", m68851 },
1480 {"pmove", two(0xf000,0x4200), two(0xffc0,0xffff), "08%s", m68030|m68851 },
1481 {"pmove", two(0xf000,0x5e00), two(0xffc0,0xffff), "18%s", m68851 },
1482 {"pmove", two(0xf000,0x4200), two(0xffc0,0xe3ff), "28%s", m68851 },
1483 {"pmove", two(0xf000,0x4000), two(0xffc0,0xe3ff), "|sW8", m68030|m68851 },
1484 {"pmove", two(0xf000,0x4200), two(0xffc0,0xe3ff), "W8~s", m68030|m68851 },
1485 {"pmove", two(0xf000,0x6200), two(0xffc0,0xe3e3), "*wX3", m68851 },
1486 {"pmove", two(0xf000,0x6000), two(0xffc0,0xe3e3), "X3%s", m68851 },
1487 {"pmove", two(0xf000,0x6000), two(0xffc0,0xffff), "*wY8", m68030|m68851 },
1488 {"pmove", two(0xf000,0x6200), two(0xffc0,0xffff), "Y8%s", m68030|m68851 },
1489 {"pmove", two(0xf000,0x6600), two(0xffc0,0xffff), "Z8%s", m68851 },
1490 {"pmove", two(0xf000,0x0800), two(0xffc0,0xfbff), "*l38", m68030 },
1491 {"pmove", two(0xf000,0x0a00), two(0xffc0,0xfbff), "38%s", m68030 },
1492
1493 {"pmovefd", two(0xf000, 0x4100), two(0xffc0, 0xe3ff), "*l08", m68030 },
1494 {"pmovefd", two(0xf000, 0x4100), two(0xffc0, 0xe3ff), "|sW8", m68030 },
1495 {"pmovefd", two(0xf000, 0x0900), two(0xffc0, 0xfbff), "*l38", m68030 },
1496
1497 {"prestore", one(0xf140), one(0xffc0), "<s", m68851 },
1498
1499 {"psave", one(0xf100), one(0xffc0), ">s", m68851 },
1500
1501 {"psac", two(0xf040, 0x0007), two(0xffc0, 0xffff), "$s", m68851 },
1502 {"psas", two(0xf040, 0x0006), two(0xffc0, 0xffff), "$s", m68851 },
1503 {"psbc", two(0xf040, 0x0001), two(0xffc0, 0xffff), "$s", m68851 },
1504 {"psbs", two(0xf040, 0x0000), two(0xffc0, 0xffff), "$s", m68851 },
1505 {"pscc", two(0xf040, 0x000f), two(0xffc0, 0xffff), "$s", m68851 },
1506 {"pscs", two(0xf040, 0x000e), two(0xffc0, 0xffff), "$s", m68851 },
1507 {"psgc", two(0xf040, 0x000d), two(0xffc0, 0xffff), "$s", m68851 },
1508 {"psgs", two(0xf040, 0x000c), two(0xffc0, 0xffff), "$s", m68851 },
1509 {"psic", two(0xf040, 0x000b), two(0xffc0, 0xffff), "$s", m68851 },
1510 {"psis", two(0xf040, 0x000a), two(0xffc0, 0xffff), "$s", m68851 },
1511 {"pslc", two(0xf040, 0x0003), two(0xffc0, 0xffff), "$s", m68851 },
1512 {"psls", two(0xf040, 0x0002), two(0xffc0, 0xffff), "$s", m68851 },
1513 {"pssc", two(0xf040, 0x0005), two(0xffc0, 0xffff), "$s", m68851 },
1514 {"psss", two(0xf040, 0x0004), two(0xffc0, 0xffff), "$s", m68851 },
1515 {"pswc", two(0xf040, 0x0009), two(0xffc0, 0xffff), "$s", m68851 },
1516 {"psws", two(0xf040, 0x0008), two(0xffc0, 0xffff), "$s", m68851 },
1517
1518 {"ptestr", two(0xf000,0x8210), two(0xffc0, 0xe3f0), "T3&st8", m68030|m68851 },
1519 {"ptestr", two(0xf000,0x8310), two(0xffc0,0xe310), "T3&st8A9", m68030|m68851 },
1520 {"ptestr", two(0xf000,0x8208), two(0xffc0,0xe3f8), "D3&st8", m68030|m68851 },
1521 {"ptestr", two(0xf000,0x8308), two(0xffc0,0xe318), "D3&st8A9", m68030|m68851 },
1522 {"ptestr", two(0xf000,0x8200), two(0xffc0,0xe3fe), "f3&st8", m68030|m68851 },
1523 {"ptestr", two(0xf000,0x8300), two(0xffc0,0xe31e), "f3&st8A9", m68030|m68851 },
1524 {"ptestr", one(0xf568), one(0xfff8), "as", m68040 },
1525
1526 {"ptestw", two(0xf000,0x8010), two(0xffc0,0xe3f0), "T3&st8", m68030|m68851 },
1527 {"ptestw", two(0xf000,0x8110), two(0xffc0,0xe310), "T3&st8A9", m68030|m68851 },
1528 {"ptestw", two(0xf000,0x8008), two(0xffc0,0xe3f8), "D3&st8", m68030|m68851 },
1529 {"ptestw", two(0xf000,0x8108), two(0xffc0,0xe318), "D3&st8A9", m68030|m68851 },
1530 {"ptestw", two(0xf000,0x8000), two(0xffc0,0xe3fe), "f3&st8", m68030|m68851 },
1531 {"ptestw", two(0xf000,0x8100), two(0xffc0,0xe31e), "f3&st8A9", m68030|m68851 },
1532 {"ptestw", one(0xf548), one(0xfff8), "as", m68040 },
1533
1534 {"ptrapac.w", two(0xf07a, 0x0007), two(0xffff, 0xffff), "#w", m68851 },
1535 {"ptrapac.l", two(0xf07b, 0x0007), two(0xffff, 0xffff), "#l", m68851 },
1536 {"ptrapac", two(0xf07c, 0x0007), two(0xffff, 0xffff), "", m68851 },
1537
1538 {"ptrapas.w", two(0xf07a, 0x0006), two(0xffff, 0xffff), "#w", m68851 },
1539 {"ptrapas.l", two(0xf07b, 0x0006), two(0xffff, 0xffff), "#l", m68851 },
1540 {"ptrapas", two(0xf07c, 0x0006), two(0xffff, 0xffff), "", m68851 },
1541
1542 {"ptrapbc.w", two(0xf07a, 0x0001), two(0xffff, 0xffff), "#w", m68851 },
1543 {"ptrapbc.l", two(0xf07b, 0x0001), two(0xffff, 0xffff), "#l", m68851 },
1544 {"ptrapbc", two(0xf07c, 0x0001), two(0xffff, 0xffff), "", m68851 },
1545
1546 {"ptrapbs.w", two(0xf07a, 0x0000), two(0xffff, 0xffff), "#w", m68851 },
1547 {"ptrapbs.l", two(0xf07b, 0x0000), two(0xffff, 0xffff), "#l", m68851 },
1548 {"ptrapbs", two(0xf07c, 0x0000), two(0xffff, 0xffff), "", m68851 },
1549
1550 {"ptrapcc.w", two(0xf07a, 0x000f), two(0xffff, 0xffff), "#w", m68851 },
1551 {"ptrapcc.l", two(0xf07b, 0x000f), two(0xffff, 0xffff), "#l", m68851 },
1552 {"ptrapcc", two(0xf07c, 0x000f), two(0xffff, 0xffff), "", m68851 },
1553
1554 {"ptrapcs.w", two(0xf07a, 0x000e), two(0xffff, 0xffff), "#w", m68851 },
1555 {"ptrapcs.l", two(0xf07b, 0x000e), two(0xffff, 0xffff), "#l", m68851 },
1556 {"ptrapcs", two(0xf07c, 0x000e), two(0xffff, 0xffff), "", m68851 },
1557
1558 {"ptrapgc.w", two(0xf07a, 0x000d), two(0xffff, 0xffff), "#w", m68851 },
1559 {"ptrapgc.l", two(0xf07b, 0x000d), two(0xffff, 0xffff), "#l", m68851 },
1560 {"ptrapgc", two(0xf07c, 0x000d), two(0xffff, 0xffff), "", m68851 },
1561
1562 {"ptrapgs.w", two(0xf07a, 0x000c), two(0xffff, 0xffff), "#w", m68851 },
1563 {"ptrapgs.l", two(0xf07b, 0x000c), two(0xffff, 0xffff), "#l", m68851 },
1564 {"ptrapgs", two(0xf07c, 0x000c), two(0xffff, 0xffff), "", m68851 },
1565
1566 {"ptrapic.w", two(0xf07a, 0x000b), two(0xffff, 0xffff), "#w", m68851 },
1567 {"ptrapic.l", two(0xf07b, 0x000b), two(0xffff, 0xffff), "#l", m68851 },
1568 {"ptrapic", two(0xf07c, 0x000b), two(0xffff, 0xffff), "", m68851 },
1569
1570 {"ptrapis.w", two(0xf07a, 0x000a), two(0xffff, 0xffff), "#w", m68851 },
1571 {"ptrapis.l", two(0xf07b, 0x000a), two(0xffff, 0xffff), "#l", m68851 },
1572 {"ptrapis", two(0xf07c, 0x000a), two(0xffff, 0xffff), "", m68851 },
1573
1574 {"ptraplc.w", two(0xf07a, 0x0003), two(0xffff, 0xffff), "#w", m68851 },
1575 {"ptraplc.l", two(0xf07b, 0x0003), two(0xffff, 0xffff), "#l", m68851 },
1576 {"ptraplc", two(0xf07c, 0x0003), two(0xffff, 0xffff), "", m68851 },
1577
1578 {"ptrapls.w", two(0xf07a, 0x0002), two(0xffff, 0xffff), "#w", m68851 },
1579 {"ptrapls.l", two(0xf07b, 0x0002), two(0xffff, 0xffff), "#l", m68851 },
1580 {"ptrapls", two(0xf07c, 0x0002), two(0xffff, 0xffff), "", m68851 },
1581
1582 {"ptrapsc.w", two(0xf07a, 0x0005), two(0xffff, 0xffff), "#w", m68851 },
1583 {"ptrapsc.l", two(0xf07b, 0x0005), two(0xffff, 0xffff), "#l", m68851 },
1584 {"ptrapsc", two(0xf07c, 0x0005), two(0xffff, 0xffff), "", m68851 },
1585
1586 {"ptrapss.w", two(0xf07a, 0x0004), two(0xffff, 0xffff), "#w", m68851 },
1587 {"ptrapss.l", two(0xf07b, 0x0004), two(0xffff, 0xffff), "#l", m68851 },
1588 {"ptrapss", two(0xf07c, 0x0004), two(0xffff, 0xffff), "", m68851 },
1589
1590 {"ptrapwc.w", two(0xf07a, 0x0009), two(0xffff, 0xffff), "#w", m68851 },
1591 {"ptrapwc.l", two(0xf07b, 0x0009), two(0xffff, 0xffff), "#l", m68851 },
1592 {"ptrapwc", two(0xf07c, 0x0009), two(0xffff, 0xffff), "", m68851 },
1593
1594 {"ptrapws.w", two(0xf07a, 0x0008), two(0xffff, 0xffff), "#w", m68851 },
1595 {"ptrapws.l", two(0xf07b, 0x0008), two(0xffff, 0xffff), "#l", m68851 },
1596 {"ptrapws", two(0xf07c, 0x0008), two(0xffff, 0xffff), "", m68851 },
1597
1598 {"pulse", one(0045314), one(0177777), "", m68060 | mcf5200 },
1599
1600 {"pvalid", two(0xf000, 0x2800), two(0xffc0, 0xffff), "Vs&s", m68851 },
1601 {"pvalid", two(0xf000, 0x2c00), two(0xffc0, 0xfff8), "A3&s", m68851 },
1602
1603
1604 {"reset", one(0047160), one(0177777), "", m68000up },
1605
1606 {"rol.b", one(0160430), one(0170770), "QdDs", m68000up },
1607 {"rol.b", one(0160470), one(0170770), "DdDs", m68000up },
1608 {"rol.w", one(0160530), one(0170770), "QdDs", m68000up },
1609 {"rol.w", one(0160570), one(0170770), "DdDs", m68000up },
1610 {"rol.w", one(0163700), one(0177700), "~s", m68000up },
1611 {"rol.l", one(0160630), one(0170770), "QdDs", m68000up },
1612 {"rol.l", one(0160670), one(0170770), "DdDs", m68000up },
1613
1614 {"ror.b", one(0160030), one(0170770), "QdDs", m68000up },
1615 {"ror.b", one(0160070), one(0170770), "DdDs", m68000up },
1616 {"ror.w", one(0160130), one(0170770), "QdDs", m68000up },
1617 {"ror.w", one(0160170), one(0170770), "DdDs", m68000up },
1618 {"ror.w", one(0163300), one(0177700), "~s", m68000up },
1619 {"ror.l", one(0160230), one(0170770), "QdDs", m68000up },
1620 {"ror.l", one(0160270), one(0170770), "DdDs", m68000up },
1621
1622 {"roxl.b", one(0160420), one(0170770), "QdDs", m68000up },
1623 {"roxl.b", one(0160460), one(0170770), "DdDs", m68000up },
1624 {"roxl.w", one(0160520), one(0170770), "QdDs", m68000up },
1625 {"roxl.w", one(0160560), one(0170770), "DdDs", m68000up },
1626 {"roxl.w", one(0162700), one(0177700), "~s", m68000up },
1627 {"roxl.l", one(0160620), one(0170770), "QdDs", m68000up },
1628 {"roxl.l", one(0160660), one(0170770), "DdDs", m68000up },
1629
1630 {"roxr.b", one(0160020), one(0170770), "QdDs", m68000up },
1631 {"roxr.b", one(0160060), one(0170770), "DdDs", m68000up },
1632 {"roxr.w", one(0160120), one(0170770), "QdDs", m68000up },
1633 {"roxr.w", one(0160160), one(0170770), "DdDs", m68000up },
1634 {"roxr.w", one(0162300), one(0177700), "~s", m68000up },
1635 {"roxr.l", one(0160220), one(0170770), "QdDs", m68000up },
1636 {"roxr.l", one(0160260), one(0170770), "DdDs", m68000up },
1637
1638 {"rtd", one(0047164), one(0177777), "#w", m68010up },
1639
1640 {"rte", one(0047163), one(0177777), "", m68000up|mcf5200 },
1641
1642 {"rtm", one(0003300), one(0177760), "Rs", m68020 },
1643
1644 {"rtr", one(0047167), one(0177777), "", m68000up },
1645
1646 {"rts", one(0047165), one(0177777), "", m68000up|mcf5200 },
1647
1648 {"sbcd", one(0100400), one(0170770), "DsDd", m68000up },
1649 {"sbcd", one(0100410), one(0170770), "-s-d", m68000up },
1650
1651
1652 {"scc", one(0052300), one(0177700), "$s", m68000up },
1653 {"scc", one(0052300), one(0177700), "Ds", mcf5200 },
1654 {"scs", one(0052700), one(0177700), "$s", m68000up },
1655 {"scs", one(0052700), one(0177700), "Ds", mcf5200 },
1656 {"seq", one(0053700), one(0177700), "$s", m68000up },
1657 {"seq", one(0053700), one(0177700), "Ds", mcf5200 },
1658 {"sf", one(0050700), one(0177700), "$s", m68000up },
1659 {"sf", one(0050700), one(0177700), "Ds", mcf5200 },
1660 {"sge", one(0056300), one(0177700), "$s", m68000up },
1661 {"sge", one(0056300), one(0177700), "Ds", mcf5200 },
1662 {"sgt", one(0057300), one(0177700), "$s", m68000up },
1663 {"sgt", one(0057300), one(0177700), "Ds", mcf5200 },
1664 {"shi", one(0051300), one(0177700), "$s", m68000up },
1665 {"shi", one(0051300), one(0177700), "Ds", mcf5200 },
1666 {"sle", one(0057700), one(0177700), "$s", m68000up },
1667 {"sle", one(0057700), one(0177700), "Ds", mcf5200 },
1668 {"sls", one(0051700), one(0177700), "$s", m68000up },
1669 {"sls", one(0051700), one(0177700), "Ds", mcf5200 },
1670 {"slt", one(0056700), one(0177700), "$s", m68000up },
1671 {"slt", one(0056700), one(0177700), "Ds", mcf5200 },
1672 {"smi", one(0055700), one(0177700), "$s", m68000up },
1673 {"smi", one(0055700), one(0177700), "Ds", mcf5200 },
1674 {"sne", one(0053300), one(0177700), "$s", m68000up },
1675 {"sne", one(0053300), one(0177700), "Ds", mcf5200 },
1676 {"spl", one(0055300), one(0177700), "$s", m68000up },
1677 {"spl", one(0055300), one(0177700), "Ds", mcf5200 },
1678 {"st", one(0050300), one(0177700), "$s", m68000up },
1679 {"st", one(0050300), one(0177700), "Ds", mcf5200 },
1680 {"svc", one(0054300), one(0177700), "$s", m68000up },
1681 {"svc", one(0054300), one(0177700), "Ds", mcf5200 },
1682 {"svs", one(0054700), one(0177700), "$s", m68000up },
1683 {"svs", one(0054700), one(0177700), "Ds", mcf5200 },
1684
1685 {"stop", one(0047162), one(0177777), "#w", m68000up | mcf5200 },
1686
1687 {"suba.l", one(0110700), one(0170700), "*lAd", m68000up | mcf5200 },
1688 {"suba.w", one(0110300), one(0170700), "*wAd", m68000up },
1689
1690 {"subi.b", one(0002000), one(0177700), "#b$s", m68000up },
1691 {"subi.w", one(0002100), one(0177700), "#w$s", m68000up },
1692 {"subi.l", one(0002200), one(0177700), "#l$s", m68000up },
1693 {"subi.l", one(0002200), one(0177700), "#lDs", mcf5200 },
1694
1695 {"subq.b", one(0050400), one(0170700), "Qd%s", m68000up },
1696 {"subq.w", one(0050500), one(0170700), "Qd%s", m68000up },
1697 {"subq.l", one(0050600), one(0170700), "Qd%s", m68000up | mcf5200 },
1698
1699 /* The sub opcode can generate the suba, subi, and subq instructions. */
1700 {"sub.b", one(0050400), one(0170700), "Qd%s", m68000up },
1701 {"sub.b", one(0002000), one(0177700), "#b$s", m68000up },
1702 {"sub.b", one(0110000), one(0170700), ";bDd", m68000up },
1703 {"sub.b", one(0110400), one(0170700), "Dd~s", m68000up },
1704 {"sub.w", one(0050500), one(0170700), "Qd%s", m68000up },
1705 {"sub.w", one(0002100), one(0177700), "#w$s", m68000up },
1706 {"sub.w", one(0110300), one(0170700), "*wAd", m68000up },
1707 {"sub.w", one(0110100), one(0170700), "*wDd", m68000up },
1708 {"sub.w", one(0110500), one(0170700), "Dd~s", m68000up },
1709 {"sub.l", one(0050600), one(0170700), "Qd%s", m68000up | mcf5200 },
1710 {"sub.l", one(0002200), one(0177700), "#l$s", m68000up },
1711 {"sub.l", one(0002200), one(0177700), "#lDs", mcf5200 },
1712 {"sub.l", one(0110700), one(0170700), "*lAd", m68000up | mcf5200 },
1713 {"sub.l", one(0110200), one(0170700), "*lDd", m68000up | mcf5200 },
1714 {"sub.l", one(0110600), one(0170700), "Dd~s", m68000up | mcf5200 },
1715
1716 {"subx.b", one(0110400), one(0170770), "DsDd", m68000up },
1717 {"subx.b", one(0110410), one(0170770), "-s-d", m68000up },
1718 {"subx.w", one(0110500), one(0170770), "DsDd", m68000up },
1719 {"subx.w", one(0110510), one(0170770), "-s-d", m68000up },
1720 {"subx.l", one(0110600), one(0170770), "DsDd", m68000up | mcf5200 },
1721 {"subx.l", one(0110610), one(0170770), "-s-d", m68000up },
1722
1723 {"swap", one(0044100), one(0177770), "Ds", m68000up | mcf5200 },
1724
1725 /* swbeg and swbegl are magic constants used on sysV68. The compiler
1726 generates them before a switch table. They tell the debugger and
1727 disassembler that a switch table follows. The parameter is the
1728 number of elements in the table. swbeg means that the entries in
1729 the table are word (2 byte) sized, and swbegl means that the
1730 entries in the table are longword (4 byte) sized. */
1731 {"swbeg", one(0045374), one(0177777), "#w", m68000up | mcf5200 },
1732 {"swbeg.l", one(0045375), one(0177777), "#l", m68000up | mcf5200 },
1733
1734 {"tas", one(0045300), one(0177700), "$s", m68000up },
1735
1736 #define TBL1(name,signed,round,size) \
1737 {name, two(0174000, (signed<<11)|(!round<<10)|(size<<6)|0000400), \
1738 two(0177700,0107777), "!sD1", cpu32 }, \
1739 {name, two(0174000, (signed<<11)|(!round<<10)|(size<<6)), \
1740 two(0177770,0107770), "DsD3D1", cpu32 }
1741 #define TBL(name1, name2, name3, s, r) \
1742 TBL1(name1, s, r, 0), TBL1(name2, s, r, 1), TBL1(name3, s, r, 2)
1743 TBL("tbls.b", "tbls.w", "tbls.l", 1, 1),
1744 TBL("tblsn.b", "tblsn.w", "tblsn.l", 1, 0),
1745 TBL("tblu.b", "tblu.w", "tblu.l", 0, 1),
1746 TBL("tblun.b", "tblun.w", "tblun.l", 0, 0),
1747
1748 {"trap", one(0047100), one(0177760), "Ts", m68000up | mcf5200 },
1749
1750 {"trapcc", one(0052374), one(0177777), "", m68020up | cpu32 },
1751 {"trapcs", one(0052774), one(0177777), "", m68020up | cpu32 },
1752 {"trapeq", one(0053774), one(0177777), "", m68020up | cpu32 },
1753 {"trapf", one(0050774), one(0177777), "", m68020up | cpu32 | mcf5200 },
1754 {"trapge", one(0056374), one(0177777), "", m68020up | cpu32 },
1755 {"trapgt", one(0057374), one(0177777), "", m68020up | cpu32 },
1756 {"traphi", one(0051374), one(0177777), "", m68020up | cpu32 },
1757 {"traple", one(0057774), one(0177777), "", m68020up | cpu32 },
1758 {"trapls", one(0051774), one(0177777), "", m68020up | cpu32 },
1759 {"traplt", one(0056774), one(0177777), "", m68020up | cpu32 },
1760 {"trapmi", one(0055774), one(0177777), "", m68020up | cpu32 },
1761 {"trapne", one(0053374), one(0177777), "", m68020up | cpu32 },
1762 {"trappl", one(0055374), one(0177777), "", m68020up | cpu32 },
1763 {"trapt", one(0050374), one(0177777), "", m68020up | cpu32 },
1764 {"trapvc", one(0054374), one(0177777), "", m68020up | cpu32 },
1765 {"trapvs", one(0054774), one(0177777), "", m68020up | cpu32 },
1766
1767 {"trapcc.w", one(0052372), one(0177777), "#w", m68020up|cpu32 },
1768 {"trapcs.w", one(0052772), one(0177777), "#w", m68020up|cpu32 },
1769 {"trapeq.w", one(0053772), one(0177777), "#w", m68020up|cpu32 },
1770 {"trapf.w", one(0050772), one(0177777), "#w", m68020up|cpu32|mcf5200},
1771 {"trapge.w", one(0056372), one(0177777), "#w", m68020up|cpu32 },
1772 {"trapgt.w", one(0057372), one(0177777), "#w", m68020up|cpu32 },
1773 {"traphi.w", one(0051372), one(0177777), "#w", m68020up|cpu32 },
1774 {"traple.w", one(0057772), one(0177777), "#w", m68020up|cpu32 },
1775 {"trapls.w", one(0051772), one(0177777), "#w", m68020up|cpu32 },
1776 {"traplt.w", one(0056772), one(0177777), "#w", m68020up|cpu32 },
1777 {"trapmi.w", one(0055772), one(0177777), "#w", m68020up|cpu32 },
1778 {"trapne.w", one(0053372), one(0177777), "#w", m68020up|cpu32 },
1779 {"trappl.w", one(0055372), one(0177777), "#w", m68020up|cpu32 },
1780 {"trapt.w", one(0050372), one(0177777), "#w", m68020up|cpu32 },
1781 {"trapvc.w", one(0054372), one(0177777), "#w", m68020up|cpu32 },
1782 {"trapvs.w", one(0054772), one(0177777), "#w", m68020up|cpu32 },
1783
1784 {"trapcc.l", one(0052373), one(0177777), "#l", m68020up|cpu32 },
1785 {"trapcs.l", one(0052773), one(0177777), "#l", m68020up|cpu32 },
1786 {"trapeq.l", one(0053773), one(0177777), "#l", m68020up|cpu32 },
1787 {"trapf.l", one(0050773), one(0177777), "#l", m68020up|cpu32|mcf5200},
1788 {"trapge.l", one(0056373), one(0177777), "#l", m68020up|cpu32 },
1789 {"trapgt.l", one(0057373), one(0177777), "#l", m68020up|cpu32 },
1790 {"traphi.l", one(0051373), one(0177777), "#l", m68020up|cpu32 },
1791 {"traple.l", one(0057773), one(0177777), "#l", m68020up|cpu32 },
1792 {"trapls.l", one(0051773), one(0177777), "#l", m68020up|cpu32 },
1793 {"traplt.l", one(0056773), one(0177777), "#l", m68020up|cpu32 },
1794 {"trapmi.l", one(0055773), one(0177777), "#l", m68020up|cpu32 },
1795 {"trapne.l", one(0053373), one(0177777), "#l", m68020up|cpu32 },
1796 {"trappl.l", one(0055373), one(0177777), "#l", m68020up|cpu32 },
1797 {"trapt.l", one(0050373), one(0177777), "#l", m68020up|cpu32 },
1798 {"trapvc.l", one(0054373), one(0177777), "#l", m68020up|cpu32 },
1799 {"trapvs.l", one(0054773), one(0177777), "#l", m68020up|cpu32 },
1800
1801 {"trapv", one(0047166), one(0177777), "", m68000up },
1802
1803 {"tst.b", one(0045000), one(0177700), ";b", m68020up|cpu32|mcf5200 },
1804 {"tst.b", one(0045000), one(0177700), "$b", m68000up },
1805 {"tst.w", one(0045100), one(0177700), "*w", m68020up|cpu32|mcf5200 },
1806 {"tst.w", one(0045100), one(0177700), "$w", m68000up },
1807 {"tst.l", one(0045200), one(0177700), "*l", m68020up|cpu32|mcf5200 },
1808 {"tst.l", one(0045200), one(0177700), "$l", m68000up },
1809
1810 {"unlk", one(0047130), one(0177770), "As", m68000up | mcf5200 },
1811
1812 {"unpk", one(0100600), one(0170770), "DsDd#w", m68020up },
1813 {"unpk", one(0100610), one(0170770), "-s-d#w", m68020up },
1814
1815 {"wddata.b", one(0172000), one(0177700), "~s", mcf5200 },
1816 {"wddata.w", one(0172100), one(0177700), "~s", mcf5200 },
1817 {"wddata.l", one(0172200), one(0177700), "~s", mcf5200 },
1818
1819 };
1820
1821 const int m68k_numopcodes = sizeof m68k_opcodes / sizeof m68k_opcodes[0];
1822
1823 /* These aliases used to be in the above table, each one duplicating
1824 all of the entries for its primary exactly. This table was
1825 constructed by mechanical processing of the opcode table, with a
1826 small number of tweaks done by hand. There are probably a lot more
1827 aliases above that could be moved down here, except for very minor
1828 differences. */
1829
1830 const struct m68k_opcode_alias m68k_opcode_aliases[] =
1831 {
1832 { "add", "add.w", },
1833 { "adda", "adda.w", },
1834 { "addi", "addi.w", },
1835 { "addq", "addq.w", },
1836 { "addx", "addx.w", },
1837 { "asl", "asl.w", },
1838 { "asr", "asr.w", },
1839 { "bhi", "bhi.w", },
1840 { "bls", "bls.w", },
1841 { "bcc", "bcc.w", },
1842 { "bcs", "bcs.w", },
1843 { "bne", "bne.w", },
1844 { "beq", "beq.w", },
1845 { "bvc", "bvc.w", },
1846 { "bvs", "bvs.w", },
1847 { "bpl", "bpl.w", },
1848 { "bmi", "bmi.w", },
1849 { "bge", "bge.w", },
1850 { "blt", "blt.w", },
1851 { "bgt", "bgt.w", },
1852 { "ble", "ble.w", },
1853 { "bra", "bra.w", },
1854 { "bsr", "bsr.w", },
1855 { "bhi.b", "bhi.s", },
1856 { "bls.b", "bls.s", },
1857 { "bcc.b", "bcc.s", },
1858 { "bcs.b", "bcs.s", },
1859 { "bne.b", "bne.s", },
1860 { "beq.b", "beq.s", },
1861 { "bvc.b", "bvc.s", },
1862 { "bvs.b", "bvs.s", },
1863 { "bpl.b", "bpl.s", },
1864 { "bmi.b", "bmi.s", },
1865 { "bge.b", "bge.s", },
1866 { "blt.b", "blt.s", },
1867 { "bgt.b", "bgt.s", },
1868 { "ble.b", "ble.s", },
1869 { "bra.b", "bra.s", },
1870 { "bsr.b", "bsr.s", },
1871 { "bhs", "bcc.w" },
1872 { "bhs.s", "bcc.s" },
1873 { "bhs.b", "bcc.s" },
1874 { "bhs.w", "bcc.w" },
1875 { "bhs.l", "bcc.l" },
1876 { "blo", "bcs.w" },
1877 { "blo.s", "bcs.s" },
1878 { "blo.b", "bcs.s" },
1879 { "blo.w", "bcs.w" },
1880 { "blo.l", "bcs.l" },
1881 { "br", "bra.w", },
1882 { "br.s", "bra.s", },
1883 { "br.b", "bra.s", },
1884 { "br.w", "bra.w", },
1885 { "br.l", "bra.l", },
1886 { "jfnlt", "bcc", }, /* apparently a sun alias */
1887 { "jfngt", "ble", }, /* apparently a sun alias */
1888 { "jfeq", "beq.s", }, /* apparently a sun alias */
1889 { "bchg.b", "bchg", },
1890 { "bchg.l", "bchg", },
1891 { "bclr.b", "bclr", },
1892 { "bclr.l", "bclr", },
1893 { "bset.b", "bset", },
1894 { "bset.l", "bset", },
1895 { "btst.b", "btst", },
1896 { "btst.l", "btst", },
1897 { "cas2", "cas2.w", },
1898 { "cas", "cas.w", },
1899 { "chk2", "chk2.w", },
1900 { "chk", "chk.w", },
1901 { "clr", "clr.w", },
1902 { "cmp2", "cmp2.w", },
1903 { "cmpa", "cmpa.w", },
1904 { "cmpi", "cmpi.w", },
1905 { "cmpm", "cmpm.w", },
1906 { "cmp", "cmp.w", },
1907 { "dbcc.w", "dbcc", },
1908 { "dbcs.w", "dbcs", },
1909 { "dbeq.w", "dbeq", },
1910 { "dbf.w", "dbf", },
1911 { "dbge.w", "dbge", },
1912 { "dbgt.w", "dbgt", },
1913 { "dbhi.w", "dbhi", },
1914 { "dble.w", "dble", },
1915 { "dbls.w", "dbls", },
1916 { "dblt.w", "dblt", },
1917 { "dbmi.w", "dbmi", },
1918 { "dbne.w", "dbne", },
1919 { "dbpl.w", "dbpl", },
1920 { "dbt.w", "dbt", },
1921 { "dbvc.w", "dbvc", },
1922 { "dbvs.w", "dbvs", },
1923 { "dbhs", "dbcc", },
1924 { "dbhs.w", "dbcc", },
1925 { "dbra", "dbf", },
1926 { "dbra.w", "dbf", },
1927 { "tdivs.l", "divs.l", },
1928 { "divs", "divs.w", },
1929 { "divu", "divu.w", },
1930 { "ext", "ext.w", },
1931 { "extb.w", "ext.w", },
1932 { "extw.l", "ext.l", },
1933 { "fbneq", "fbne", },
1934 { "fbsneq", "fbsne", },
1935 { "fdbneq", "fdbne", },
1936 { "fdbsneq", "fdbsne", },
1937 { "fmovecr", "fmovecrx", },
1938 { "fmovm", "fmovem", },
1939 { "fsneq", "fsne", },
1940 { "fssneq", "fssne", },
1941 { "ftrapneq", "ftrapne", },
1942 { "ftrapsneq", "ftrapsne", },
1943 { "fjneq", "fjne", },
1944 { "fjsneq", "fjsne", },
1945 { "jmp.l", "jmp", },
1946 { "jmp.s", "jmp", },
1947 { "jsr.l", "jsr", },
1948 { "jsr.s", "jsr", },
1949 { "lea.l", "lea", },
1950 { "lsl", "lsl.w", },
1951 { "lsr", "lsr.w", },
1952 { "movea", "movea.w", },
1953 { "movem", "movem.w", },
1954 { "movm.l", "movem.l", },
1955 { "movm.w", "movem.w", },
1956 { "movm", "movem.w", },
1957 { "movep", "movep.w", },
1958 { "movp.w", "movep.w", },
1959 { "moves", "moves.w" },
1960 { "muls", "muls.w", },
1961 { "mulu", "mulu.w", },
1962 { "nbcd.b", "nbcd" },
1963 { "neg", "neg.w", },
1964 { "negx", "negx.w", },
1965 { "not", "not.w", },
1966 { "pea.l", "pea", },
1967 { "rol", "rol.w", },
1968 { "ror", "ror.w", },
1969 { "roxl", "roxl.w", },
1970 { "roxr", "roxr.w", },
1971 { "sbcd.b", "sbcd", },
1972 { "scc.b", "scc", },
1973 { "scs.b", "scs", },
1974 { "seq.b", "seq", },
1975 { "sf.b", "sf", },
1976 { "sge.b", "sge", },
1977 { "sgt.b", "sgt", },
1978 { "shi.b", "shi", },
1979 { "sle.b", "sle", },
1980 { "sls.b", "sls", },
1981 { "slt.b", "slt", },
1982 { "smi.b", "smi", },
1983 { "sne.b", "sne", },
1984 { "spl.b", "spl", },
1985 { "st.b", "st", },
1986 { "svc.b", "svc", },
1987 { "svs.b", "svs", },
1988 { "sfge", "sge", },
1989 { "sfgt", "sgt", },
1990 { "sfle", "sle", },
1991 { "sflt", "slt", },
1992 { "sfneq", "sne", },
1993 { "suba", "suba.w", },
1994 { "subi", "subi.w", },
1995 { "subq", "subq.w", },
1996 { "sub", "sub.w", },
1997 { "subx", "subx.w", },
1998 { "swap.w", "swap", },
1999 { "tas.b", "tas", },
2000 { "tpcc", "trapcc", },
2001 { "tcc", "trapcc", },
2002 { "tst", "tst.w", },
2003 { "jbra", "jra", },
2004 { "jbhi", "jhi", },
2005 { "jbls", "jls", },
2006 { "jbcc", "jcc", },
2007 { "jbcs", "jcs", },
2008 { "jbne", "jne", },
2009 { "jbeq", "jeq", },
2010 { "jbvc", "jvc", },
2011 { "jbvs", "jvs", },
2012 { "jbpl", "jpl", },
2013 { "jbmi", "jmi", },
2014 { "jbge", "jge", },
2015 { "jblt", "jlt", },
2016 { "jbgt", "jgt", },
2017 { "jble", "jle", },
2018 { "movq.l", "moveq", },
2019 { "moveq.l", "moveq", },
2020 { "mov.l", "move.l", },
2021 { "movq", "moveq", },
2022 { "mova.l", "movea.l", },
2023 { "mova.w", "movea.w", },
2024 { "mov.b", "move.b", },
2025 { "movc", "movec", },
2026 { "movec.l", "movec", },
2027 { "movp.l", "movep.l", },
2028 { "mov.w", "move.w", },
2029 { "movs.b", "moves.b", },
2030 { "movs.l", "moves.l", },
2031 { "movs.w", "moves.w", },
2032
2033 { "tdivu.l", "divu.l", }, /* for m68k-svr4 */
2034 { "fmov.b", "fmove.b", },
2035 { "fsmov.b", "fsmove.b", },
2036 { "fdmov.b", "fdmove.b", },
2037 { "fmov.d", "fmove.d", },
2038 { "fsmov.d", "fsmove.d", },
2039 { "fmov.l", "fmove.l", },
2040 { "fsmov.l", "fsmove.l", },
2041 { "fdmov.l", "fdmove.l", },
2042 { "fmov.p", "fmove.p", },
2043 { "fsmov.p", "fsmove.p", },
2044 { "fdmov.p", "fdmove.p", },
2045 { "fmov.s", "fmove.s", },
2046 { "fsmov.s", "fsmove.s", },
2047 { "fdmov.s", "fdmove.s", },
2048 { "fmov.w", "fmove.w", },
2049 { "fsmov.w", "fsmove.w", },
2050 { "fdmov.w", "fdmove.w", },
2051 { "fmov.x", "fmove.x", },
2052 { "fsmov.x", "fsmove.x", },
2053 { "fdmov.x", "fdmove.x", },
2054 { "fmovcr", "fmovecr", },
2055 { "fmovcr.x", "fmovecr.x", },
2056 { "ftest.b", "ftst.b", },
2057 { "ftest.d", "ftst.d", },
2058 { "ftest.l", "ftst.l", },
2059 { "ftest.p", "ftst.p", },
2060 { "ftest.s", "ftst.s", },
2061 { "ftest.w", "ftst.w", },
2062 { "ftest.x", "ftst.x", },
2063 };
2064
2065 const int m68k_numaliases =
2066 sizeof m68k_opcode_aliases / sizeof m68k_opcode_aliases[0];