OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [opcodes/] [m68k-opc.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 106 markom
/* 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 "opcode/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
{"addaw",       one(0150300),   one(0170700), "*wAd", m68000up },
38
{"addal",       one(0150700),   one(0170700), "*lAd", m68000up | mcf },
39
 
40
{"addib",       one(0003000),   one(0177700), "#b$s", m68000up },
41
{"addiw",       one(0003100),   one(0177700), "#w$s", m68000up },
42
{"addil",       one(0003200),   one(0177700), "#l$s", m68000up },
43
{"addil",       one(0003200),   one(0177700), "#lDs", mcf },
44
 
45
{"addqb",       one(0050000),   one(0170700), "Qd$b", m68000up },
46
{"addqw",       one(0050100),   one(0170700), "Qd%w", m68000up },
47
{"addql",       one(0050200),   one(0170700), "Qd%l", m68000up | mcf },
48
 
49
/* The add opcode can generate the adda, addi, and addq instructions.  */
50
{"addb",        one(0050000),   one(0170700), "Qd$b", m68000up },
51
{"addb",        one(0003000),   one(0177700), "#b$s", m68000up },
52
{"addb",        one(0150000),   one(0170700), ";bDd", m68000up },
53
{"addb",        one(0150400),   one(0170700), "Dd~b", m68000up },
54
{"addw",        one(0050100),   one(0170700), "Qd%w", m68000up },
55
{"addw",        one(0150300),   one(0170700), "*wAd", m68000up },
56
{"addw",        one(0003100),   one(0177700), "#w$s", m68000up },
57
{"addw",        one(0150100),   one(0170700), "*wDd", m68000up },
58
{"addw",        one(0150500),   one(0170700), "Dd~w", m68000up },
59
{"addl",        one(0050200),   one(0170700), "Qd%l", m68000up | mcf },
60
{"addl",        one(0003200),   one(0177700), "#l$s", m68000up },
61
{"addl",        one(0003200),   one(0177700), "#lDs", mcf },
62
{"addl",        one(0150700),   one(0170700), "*lAd", m68000up | mcf },
63
{"addl",        one(0150200),   one(0170700), "*lDd", m68000up | mcf },
64
{"addl",        one(0150600),   one(0170700), "Dd~l", m68000up | mcf },
65
 
66
{"addxb",       one(0150400),   one(0170770), "DsDd", m68000up },
67
{"addxb",       one(0150410),   one(0170770), "-s-d", m68000up },
68
{"addxw",       one(0150500),   one(0170770), "DsDd", m68000up },
69
{"addxw",       one(0150510),   one(0170770), "-s-d", m68000up },
70
{"addxl",       one(0150600),   one(0170770), "DsDd", m68000up | mcf },
71
{"addxl",       one(0150610),   one(0170770), "-s-d", m68000up },
72
 
73
{"andib",       one(0001000),   one(0177700), "#b$s", m68000up },
74
{"andib",       one(0001074),   one(0177777), "#bCs", m68000up },
75
{"andiw",       one(0001100),   one(0177700), "#w$s", m68000up },
76
{"andiw",       one(0001174),   one(0177777), "#wSs", m68000up },
77
{"andil",       one(0001200),   one(0177700), "#l$s", m68000up },
78
{"andil",       one(0001200),   one(0177700), "#lDs", mcf },
79
{"andi",        one(0001100),   one(0177700), "#w$s", m68000up },
80
{"andi",        one(0001074),   one(0177777), "#bCs", m68000up },
81
{"andi",        one(0001174),   one(0177777), "#wSs", m68000up },
82
 
83
/* The and opcode can generate the andi instruction.  */
84
{"andb",        one(0001000),   one(0177700), "#b$s", m68000up },
85
{"andb",        one(0001074),   one(0177777), "#bCs", m68000up },
86
{"andb",        one(0140000),   one(0170700), ";bDd", m68000up },
87
{"andb",        one(0140400),   one(0170700), "Dd~b", m68000up },
88
{"andw",        one(0001100),   one(0177700), "#w$s", m68000up },
89
{"andw",        one(0001174),   one(0177777), "#wSs", m68000up },
90
{"andw",        one(0140100),   one(0170700), ";wDd", m68000up },
91
{"andw",        one(0140500),   one(0170700), "Dd~w", m68000up },
92
{"andl",        one(0001200),   one(0177700), "#l$s", m68000up },
93
{"andl",        one(0001200),   one(0177700), "#lDs", mcf },
94
{"andl",        one(0140200),   one(0170700), ";lDd", m68000up | mcf },
95
{"andl",        one(0140600),   one(0170700), "Dd~l", m68000up | mcf },
96
{"and",         one(0001100),   one(0177700), "#w$w", m68000up },
97
{"and",         one(0001074),   one(0177777), "#bCs", m68000up },
98
{"and",         one(0001174),   one(0177777), "#wSs", m68000up },
99
{"and",         one(0140100),   one(0170700), ";wDd", m68000up },
100
{"and",         one(0140500),   one(0170700), "Dd~w", m68000up },
101
 
102
{"aslb",        one(0160400),   one(0170770), "QdDs", m68000up },
103
{"aslb",        one(0160440),   one(0170770), "DdDs", m68000up },
104
{"aslw",        one(0160500),   one(0170770), "QdDs", m68000up },
105
{"aslw",        one(0160540),   one(0170770), "DdDs", m68000up },
106
{"aslw",        one(0160700),   one(0177700), "~s",   m68000up },
107
{"asll",        one(0160600),   one(0170770), "QdDs", m68000up | mcf },
108
{"asll",        one(0160640),   one(0170770), "DdDs", m68000up | mcf },
109
 
110
{"asrb",        one(0160000),   one(0170770), "QdDs", m68000up },
111
{"asrb",        one(0160040),   one(0170770), "DdDs", m68000up },
112
{"asrw",        one(0160100),   one(0170770), "QdDs", m68000up },
113
{"asrw",        one(0160140),   one(0170770), "DdDs", m68000up },
114
{"asrw",        one(0160300),   one(0177700), "~s",   m68000up },
115
{"asrl",        one(0160200),   one(0170770), "QdDs", m68000up | mcf },
116
{"asrl",        one(0160240),   one(0170770), "DdDs", m68000up | mcf },
117
 
118
{"bhiw",        one(0061000),   one(0177777), "BW", m68000up | mcf },
119
{"blsw",        one(0061400),   one(0177777), "BW", m68000up | mcf },
120
{"bccw",        one(0062000),   one(0177777), "BW", m68000up | mcf },
121
{"bcsw",        one(0062400),   one(0177777), "BW", m68000up | mcf },
122
{"bnew",        one(0063000),   one(0177777), "BW", m68000up | mcf },
123
{"beqw",        one(0063400),   one(0177777), "BW", m68000up | mcf },
124
{"bvcw",        one(0064000),   one(0177777), "BW", m68000up | mcf },
125
{"bvsw",        one(0064400),   one(0177777), "BW", m68000up | mcf },
126
{"bplw",        one(0065000),   one(0177777), "BW", m68000up | mcf },
127
{"bmiw",        one(0065400),   one(0177777), "BW", m68000up | mcf },
128
{"bgew",        one(0066000),   one(0177777), "BW", m68000up | mcf },
129
{"bltw",        one(0066400),   one(0177777), "BW", m68000up | mcf },
130
{"bgtw",        one(0067000),   one(0177777), "BW", m68000up | mcf },
131
{"blew",        one(0067400),   one(0177777), "BW", m68000up | mcf },
132
 
133
{"bhil",        one(0061377),   one(0177777), "BL", m68020up | cpu32 },
134
{"blsl",        one(0061777),   one(0177777), "BL", m68020up | cpu32 },
135
{"bccl",        one(0062377),   one(0177777), "BL", m68020up | cpu32 },
136
{"bcsl",        one(0062777),   one(0177777), "BL", m68020up | cpu32 },
137
{"bnel",        one(0063377),   one(0177777), "BL", m68020up | cpu32 },
138
{"beql",        one(0063777),   one(0177777), "BL", m68020up | cpu32 },
139
{"bvcl",        one(0064377),   one(0177777), "BL", m68020up | cpu32 },
140
{"bvsl",        one(0064777),   one(0177777), "BL", m68020up | cpu32 },
141
{"bpll",        one(0065377),   one(0177777), "BL", m68020up | cpu32 },
142
{"bmil",        one(0065777),   one(0177777), "BL", m68020up | cpu32 },
143
{"bgel",        one(0066377),   one(0177777), "BL", m68020up | cpu32 },
144
{"bltl",        one(0066777),   one(0177777), "BL", m68020up | cpu32 },
145
{"bgtl",        one(0067377),   one(0177777), "BL", m68020up | cpu32 },
146
{"blel",        one(0067777),   one(0177777), "BL", m68020up | cpu32 },
147
 
148
{"bhis",        one(0061000),   one(0177400), "BB", m68000up | mcf },
149
{"blss",        one(0061400),   one(0177400), "BB", m68000up | mcf },
150
{"bccs",        one(0062000),   one(0177400), "BB", m68000up | mcf },
151
{"bcss",        one(0062400),   one(0177400), "BB", m68000up | mcf },
152
{"bnes",        one(0063000),   one(0177400), "BB", m68000up | mcf },
153
{"beqs",        one(0063400),   one(0177400), "BB", m68000up | mcf },
154
{"bvcs",        one(0064000),   one(0177400), "BB", m68000up | mcf },
155
{"bvss",        one(0064400),   one(0177400), "BB", m68000up | mcf },
156
{"bpls",        one(0065000),   one(0177400), "BB", m68000up | mcf },
157
{"bmis",        one(0065400),   one(0177400), "BB", m68000up | mcf },
158
{"bges",        one(0066000),   one(0177400), "BB", m68000up | mcf },
159
{"blts",        one(0066400),   one(0177400), "BB", m68000up | mcf },
160
{"bgts",        one(0067000),   one(0177400), "BB", m68000up | mcf },
161
{"bles",        one(0067400),   one(0177400), "BB", m68000up | mcf },
162
 
163
{"jhi",         one(0061000),   one(0177400), "Bg", m68000up | mcf },
164
{"jls",         one(0061400),   one(0177400), "Bg", m68000up | mcf },
165
{"jcc",         one(0062000),   one(0177400), "Bg", m68000up | mcf },
166
{"jcs",         one(0062400),   one(0177400), "Bg", m68000up | mcf },
167
{"jne",         one(0063000),   one(0177400), "Bg", m68000up | mcf },
168
{"jeq",         one(0063400),   one(0177400), "Bg", m68000up | mcf },
169
{"jvc",         one(0064000),   one(0177400), "Bg", m68000up | mcf },
170
{"jvs",         one(0064400),   one(0177400), "Bg", m68000up | mcf },
171
{"jpl",         one(0065000),   one(0177400), "Bg", m68000up | mcf },
172
{"jmi",         one(0065400),   one(0177400), "Bg", m68000up | mcf },
173
{"jge",         one(0066000),   one(0177400), "Bg", m68000up | mcf },
174
{"jlt",         one(0066400),   one(0177400), "Bg", m68000up | mcf },
175
{"jgt",         one(0067000),   one(0177400), "Bg", m68000up | mcf },
176
{"jle",         one(0067400),   one(0177400), "Bg", m68000up | mcf },
177
 
178
{"bchg",        one(0000500),   one(0170700), "Dd$s", m68000up | mcf },
179
{"bchg",        one(0004100),   one(0177700), "#b$s", m68000up },
180
{"bchg",        one(0004100),   one(0177700), "#bqs", mcf },
181
 
182
{"bclr",        one(0000600),   one(0170700), "Dd$s", m68000up },
183
{"bclr",        one(0000600),   one(0170700), "Ddvs", mcf },
184
{"bclr",        one(0004200),   one(0177700), "#b$s", m68000up },
185
{"bclr",        one(0004200),   one(0177700), "#bqs", mcf },
186
 
187
{"bfchg",       two(0165300, 0), two(0177700, 0170000),  "?sO2O3",   m68020up },
188
{"bfclr",       two(0166300, 0), two(0177700, 0170000),  "?sO2O3",   m68020up },
189
{"bfexts",      two(0165700, 0), two(0177700, 0100000),  "/sO2O3D1", m68020up },
190
{"bfextu",      two(0164700, 0), two(0177700, 0100000),  "/sO2O3D1", m68020up },
191
{"bfffo",       two(0166700, 0), two(0177700, 0100000),  "/sO2O3D1", m68020up },
192
{"bfins",       two(0167700, 0), two(0177700, 0100000),  "D1?sO2O3", m68020up },
193
{"bfset",       two(0167300, 0), two(0177700, 0170000),  "?sO2O3",   m68020up },
194
{"bftst",       two(0164300, 0), two(0177700, 0170000),  "/sO2O3",   m68020up },
195
 
196
{"bgnd",        one(0045372),           one(0177777), "", cpu32 },
197
 
198
{"bkpt",        one(0044110),           one(0177770), "ts", m68010up },
199
 
200
{"braw",        one(0060000),   one(0177777), "BW", m68000up | mcf },
201
{"bral",        one(0060377),   one(0177777), "BL", m68020up | cpu32 },
202
{"bras",        one(0060000),   one(0177400), "BB", m68000up | mcf },
203
 
204
{"bset",        one(0000700),   one(0170700), "Dd$s", m68000up },
205
{"bset",        one(0000700),   one(0170700), "Ddvs", mcf },
206
{"bset",        one(0004300),   one(0177700), "#b$s", m68000up },
207
{"bset",        one(0004300),   one(0177700), "#bqs", mcf },
208
 
209
{"bsrw",        one(0060400),   one(0177777), "BW", m68000up | mcf },
210
{"bsrl",        one(0060777),   one(0177777), "BL", m68020up | cpu32 },
211
{"bsrs",        one(0060400),   one(0177400), "BB", m68000up | mcf },
212
 
213
{"btst",        one(0000400),   one(0170700), "Dd;b", m68000up | mcf },
214
{"btst",        one(0004000),   one(0177700), "#b@s", m68000up },
215
{"btst",        one(0004000),   one(0177700), "#bqs", mcf },
216
 
217
{"callm",       one(0003300),           one(0177700), "#b!s", m68020 },
218
 
219
{"cas2w",     two(0006374,0), two(0177777,0007070), "D3D6D2D5r1r4", m68020up },
220
{"cas2w",     two(0006374,0), two(0177777,0007070), "D3D6D2D5R1R4", m68020up },
221
{"cas2l",     two(0007374,0), two(0177777,0007070), "D3D6D2D5r1r4", m68020up },
222
{"cas2l",     two(0007374,0), two(0177777,0007070), "D3D6D2D5R1R4", m68020up },
223
 
224
{"casb",        two(0005300, 0), two(0177700, 0177070),  "D3D2~s", m68020up },
225
{"casw",        two(0006300, 0), two(0177700, 0177070),  "D3D2~s", m68020up },
226
{"casl",        two(0007300, 0), two(0177700, 0177070),  "D3D2~s", m68020up },
227
 
228
{"chk2b", two(0000300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 },
229
{"chk2w", two(0001300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 },
230
{"chk2l", two(0002300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 },
231
 
232
{"chkl",        one(0040400),           one(0170700), ";lDd", m68000up },
233
{"chkw",        one(0040600),           one(0170700), ";wDd", m68000up },
234
 
235
#define SCOPE_LINE (0x1 << 3)
236
#define SCOPE_PAGE (0x2 << 3)
237
#define SCOPE_ALL  (0x3 << 3)
238
 
239
{"cinva",       one(0xf400|SCOPE_ALL),  one(0xff38), "ce",   m68040up },
240
{"cinvl",       one(0xf400|SCOPE_LINE), one(0xff38), "ceas", m68040up },
241
{"cinvp",       one(0xf400|SCOPE_PAGE), one(0xff38), "ceas", m68040up },
242
 
243
{"cpusha",      one(0xf420|SCOPE_ALL),  one(0xff38), "ce",   m68040up },
244
{"cpushl",      one(0xf420|SCOPE_LINE), one(0xff38), "ceas", m68040up },
245
{"cpushl",      one(0x04e8),            one(0xfff8), "as",   mcf },
246
{"cpushp",      one(0xf420|SCOPE_PAGE), one(0xff38), "ceas", m68040up },
247
 
248
#undef SCOPE_LINE
249
#undef SCOPE_PAGE
250
#undef SCOPE_ALL
251
 
252
{"clrb",        one(0041000),   one(0177700), "$s", m68000up | mcf },
253
{"clrw",        one(0041100),   one(0177700), "$s", m68000up | mcf },
254
{"clrl",        one(0041200),   one(0177700), "$s", m68000up | mcf },
255
 
256
{"cmp2b",       two(0000300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
257
{"cmp2w",       two(0001300,0),  two(0177700,07777), "!sR1", m68020up | cpu32 },
258
{"cmp2l",       two(0002300,0),  two(0177700,07777), "!sR1", m68020up | cpu32 },
259
 
260
{"cmpaw",       one(0130300),   one(0170700), "*wAd", m68000up },
261
{"cmpal",       one(0130700),   one(0170700), "*lAd", m68000up | mcf },
262
 
263
{"cmpib",       one(0006000),   one(0177700), "#b@s", m68000up },
264
{"cmpiw",       one(0006100),   one(0177700), "#w@s", m68000up },
265
{"cmpil",       one(0006200),   one(0177700), "#l@s", m68000up },
266
{"cmpil",       one(0006200),   one(0177700), "#lDs", mcf },
267
 
268
{"cmpmb",       one(0130410),   one(0170770), "+s+d", m68000up },
269
{"cmpmw",       one(0130510),   one(0170770), "+s+d", m68000up },
270
{"cmpml",       one(0130610),   one(0170770), "+s+d", m68000up },
271
 
272
/* The cmp opcode can generate the cmpa, cmpm, and cmpi instructions.  */
273
{"cmpb",        one(0006000),   one(0177700), "#b@s", m68000up },
274
{"cmpb",        one(0130410),   one(0170770), "+s+d", m68000up },
275
{"cmpb",        one(0130000),   one(0170700), ";bDd", m68000up },
276
{"cmpw",        one(0130300),   one(0170700), "*wAd", m68000up },
277
{"cmpw",        one(0006100),   one(0177700), "#w@s", m68000up },
278
{"cmpw",        one(0130510),   one(0170770), "+s+d", m68000up },
279
{"cmpw",        one(0130100),   one(0170700), "*wDd", m68000up },
280
{"cmpl",        one(0130700),   one(0170700), "*lAd", m68000up | mcf },
281
{"cmpl",        one(0006200),   one(0177700), "#l@s", m68000up },
282
{"cmpl",        one(0006200),   one(0177700), "#lDs", mcf },
283
{"cmpl",        one(0130610),   one(0170770), "+s+d", m68000up },
284
{"cmpl",        one(0130200),   one(0170700), "*lDd", m68000up | mcf },
285
 
286
{"dbcc",        one(0052310),   one(0177770), "DsBw", m68000up },
287
{"dbcs",        one(0052710),   one(0177770), "DsBw", m68000up },
288
{"dbeq",        one(0053710),   one(0177770), "DsBw", m68000up },
289
{"dbf",         one(0050710),   one(0177770), "DsBw", m68000up },
290
{"dbge",        one(0056310),   one(0177770), "DsBw", m68000up },
291
{"dbgt",        one(0057310),   one(0177770), "DsBw", m68000up },
292
{"dbhi",        one(0051310),   one(0177770), "DsBw", m68000up },
293
{"dble",        one(0057710),   one(0177770), "DsBw", m68000up },
294
{"dbls",        one(0051710),   one(0177770), "DsBw", m68000up },
295
{"dblt",        one(0056710),   one(0177770), "DsBw", m68000up },
296
{"dbmi",        one(0055710),   one(0177770), "DsBw", m68000up },
297
{"dbne",        one(0053310),   one(0177770), "DsBw", m68000up },
298
{"dbpl",        one(0055310),   one(0177770), "DsBw", m68000up },
299
{"dbt",         one(0050310),   one(0177770), "DsBw", m68000up },
300
{"dbvc",        one(0054310),   one(0177770), "DsBw", m68000up },
301
{"dbvs",        one(0054710),   one(0177770), "DsBw", m68000up },
302
 
303
{"divsw",       one(0100700),           one(0170700), ";wDd", m68000up },
304
{"divsw",       one(0100700),   one(0170700), "vsDd", mcf5307 | mcf5206e },
305
 
306
{"divsl", two(0046100,0006000),two(0177700,0107770),";lD3D1", m68020up|cpu32 },
307
{"divsl", two(0046100,0004000),two(0177700,0107770),";lDD",   m68020up|cpu32 },
308
{"divsl", two(0046100,0004000),two(0177700,0107770),"vsDD",   mcf5307 | mcf5206e },
309
 
310
{"divsll", two(0046100,0004000),two(0177700,0107770),";lD3D1",m68020up|cpu32 },
311
{"divsll", two(0046100,0004000),two(0177700,0107770),";lDD",  m68020up|cpu32 },
312
 
313
{"divuw",       one(0100300),           one(0170700), ";wDd", m68000up },
314
{"divuw",       one(0100300),           one(0170700), "vsDd", mcf5307 | mcf5206e },
315
 
316
{"divul", two(0046100,0002000),two(0177700,0107770),";lD3D1", m68020up|cpu32 },
317
{"divul", two(0046100,0000000),two(0177700,0107770),";lDD",   m68020up|cpu32 },
318
{"divul", two(0046100,0000000),two(0177700,0107770),"vsDD",   mcf5307 | mcf5206e },
319
 
320
{"divull", two(0046100,0000000),two(0177700,0107770),";lD3D1",m68020up|cpu32 },
321
{"divull", two(0046100,0000000),two(0177700,0107770),";lDD",  m68020up|cpu32 },
322
 
323
{"eorib",       one(0005000),   one(0177700), "#b$s", m68000up },
324
{"eorib",       one(0005074),   one(0177777), "#bCs", m68000up },
325
{"eoriw",       one(0005100),   one(0177700), "#w$s", m68000up },
326
{"eoriw",       one(0005174),   one(0177777), "#wSs", m68000up },
327
{"eoril",       one(0005200),   one(0177700), "#l$s", m68000up },
328
{"eoril",       one(0005200),   one(0177700), "#lDs", mcf },
329
{"eori",        one(0005074),   one(0177777), "#bCs", m68000up },
330
{"eori",        one(0005174),   one(0177777), "#wSs", m68000up },
331
{"eori",        one(0005100),   one(0177700), "#w$s", m68000up },
332
 
333
/* The eor opcode can generate the eori instruction.  */
334
{"eorb",        one(0005000),   one(0177700), "#b$s", m68000up },
335
{"eorb",        one(0005074),   one(0177777), "#bCs", m68000up },
336
{"eorb",        one(0130400),   one(0170700), "Dd$s", m68000up },
337
{"eorw",        one(0005100),   one(0177700), "#w$s", m68000up },
338
{"eorw",        one(0005174),   one(0177777), "#wSs", m68000up },
339
{"eorw",        one(0130500),   one(0170700), "Dd$s", m68000up },
340
{"eorl",        one(0005200),   one(0177700), "#l$s", m68000up },
341
{"eorl",        one(0005200),   one(0177700), "#lDs", mcf },
342
{"eorl",        one(0130600),   one(0170700), "Dd$s", m68000up | mcf },
343
{"eor",         one(0005074),   one(0177777), "#bCs", m68000up },
344
{"eor",         one(0005174),   one(0177777), "#wSs", m68000up },
345
{"eor",         one(0005100),   one(0177700), "#w$s", m68000up },
346
{"eor",         one(0130500),   one(0170700), "Dd$s", m68000up },
347
 
348
{"exg",         one(0140500),   one(0170770), "DdDs", m68000up },
349
{"exg",         one(0140510),   one(0170770), "AdAs", m68000up },
350
{"exg",         one(0140610),   one(0170770), "DdAs", m68000up },
351
{"exg",         one(0140610),   one(0170770), "AsDd", m68000up },
352
 
353
{"extw",        one(0044200),   one(0177770), "Ds", m68000up|mcf },
354
{"extl",        one(0044300),   one(0177770), "Ds", m68000up|mcf },
355
{"extbl",       one(0044700),   one(0177770), "Ds", m68020up|cpu32|mcf },
356
 
357
/* float stuff starts here */
358
 
359
{"fabsb",       two(0xF000, 0x5818), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
360
{"fabsd",       two(0xF000, 0x5418), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
361
{"fabsl",       two(0xF000, 0x4018), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
362
{"fabsp",       two(0xF000, 0x4C18), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
363
{"fabss",       two(0xF000, 0x4418), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
364
{"fabsw",       two(0xF000, 0x5018), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
365
{"fabsx",       two(0xF000, 0x0018), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
366
{"fabsx",       two(0xF000, 0x4818), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
367
{"fabsx",       two(0xF000, 0x0018), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
368
 
369
{"fsabsb",      two(0xF000, 0x5858), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
370
{"fsabsd",      two(0xF000, 0x5458), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
371
{"fsabsl",      two(0xF000, 0x4058), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
372
{"fsabsp",      two(0xF000, 0x4C58), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
373
{"fsabss",      two(0xF000, 0x4458), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
374
{"fsabsw",      two(0xF000, 0x5058), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
375
{"fsabsx",      two(0xF000, 0x0058), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
376
{"fsabsx",      two(0xF000, 0x4858), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
377
{"fsabsx",      two(0xF000, 0x0058), two(0xF1C0, 0xE07F), "IiFt",   m68040up },
378
 
379
{"fdabsb",      two(0xF000, 0x585c), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up},
380
{"fdabsd",      two(0xF000, 0x545c), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up},
381
{"fdabsl",      two(0xF000, 0x405c), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up},
382
{"fdabsp",      two(0xF000, 0x4C5c), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up},
383
{"fdabss",      two(0xF000, 0x445c), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up},
384
{"fdabsw",      two(0xF000, 0x505c), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up},
385
{"fdabsx",      two(0xF000, 0x005c), two(0xF1C0, 0xE07F), "IiF8F7", m68040up},
386
{"fdabsx",      two(0xF000, 0x485c), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up},
387
{"fdabsx",      two(0xF000, 0x005c), two(0xF1C0, 0xE07F), "IiFt",   m68040up},
388
 
389
{"facosb",      two(0xF000, 0x581C), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
390
{"facosd",      two(0xF000, 0x541C), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
391
{"facosl",      two(0xF000, 0x401C), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
392
{"facosp",      two(0xF000, 0x4C1C), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
393
{"facoss",      two(0xF000, 0x441C), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
394
{"facosw",      two(0xF000, 0x501C), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
395
{"facosx",      two(0xF000, 0x001C), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
396
{"facosx",      two(0xF000, 0x481C), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
397
{"facosx",      two(0xF000, 0x001C), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
398
 
399
{"faddb",       two(0xF000, 0x5822), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
400
{"faddd",       two(0xF000, 0x5422), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
401
{"faddl",       two(0xF000, 0x4022), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
402
{"faddp",       two(0xF000, 0x4C22), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
403
{"fadds",       two(0xF000, 0x4422), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
404
{"faddw",       two(0xF000, 0x5022), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
405
{"faddx",       two(0xF000, 0x0022), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
406
{"faddx",       two(0xF000, 0x4822), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
407
 
408
{"fsaddb",      two(0xF000, 0x5862), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
409
{"fsaddd",      two(0xF000, 0x5462), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
410
{"fsaddl",      two(0xF000, 0x4062), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
411
{"fsaddp",      two(0xF000, 0x4C62), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
412
{"fsadds",      two(0xF000, 0x4462), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
413
{"fsaddw",      two(0xF000, 0x5062), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
414
{"fsaddx",      two(0xF000, 0x0062), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
415
{"fsaddx",      two(0xF000, 0x4862), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
416
 
417
{"fdaddb",      two(0xF000, 0x5866), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
418
{"fdaddd",      two(0xF000, 0x5466), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
419
{"fdaddl",      two(0xF000, 0x4066), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
420
{"fdaddp",      two(0xF000, 0x4C66), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
421
{"fdadds",      two(0xF000, 0x4466), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
422
{"fdaddw",      two(0xF000, 0x5066), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
423
{"fdaddx",      two(0xF000, 0x0066), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
424
{"fdaddx",      two(0xF000, 0x4866), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
425
 
426
{"fasinb",      two(0xF000, 0x580C), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
427
{"fasind",      two(0xF000, 0x540C), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
428
{"fasinl",      two(0xF000, 0x400C), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
429
{"fasinp",      two(0xF000, 0x4C0C), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
430
{"fasins",      two(0xF000, 0x440C), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
431
{"fasinw",      two(0xF000, 0x500C), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
432
{"fasinx",      two(0xF000, 0x000C), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
433
{"fasinx",      two(0xF000, 0x480C), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
434
{"fasinx",      two(0xF000, 0x000C), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
435
 
436
{"fatanb",      two(0xF000, 0x580A), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
437
{"fatand",      two(0xF000, 0x540A), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
438
{"fatanl",      two(0xF000, 0x400A), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
439
{"fatanp",      two(0xF000, 0x4C0A), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
440
{"fatans",      two(0xF000, 0x440A), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
441
{"fatanw",      two(0xF000, 0x500A), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
442
{"fatanx",      two(0xF000, 0x000A), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
443
{"fatanx",      two(0xF000, 0x480A), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
444
{"fatanx",      two(0xF000, 0x000A), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
445
 
446
{"fatanhb",     two(0xF000, 0x580D), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
447
{"fatanhd",     two(0xF000, 0x540D), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
448
{"fatanhl",     two(0xF000, 0x400D), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
449
{"fatanhp",     two(0xF000, 0x4C0D), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
450
{"fatanhs",     two(0xF000, 0x440D), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
451
{"fatanhw",     two(0xF000, 0x500D), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
452
{"fatanhx",     two(0xF000, 0x000D), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
453
{"fatanhx",     two(0xF000, 0x480D), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
454
{"fatanhx",     two(0xF000, 0x000D), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
455
 
456
{"fbeq",        one(0xF081),            one(0xF1FF), "IdBW", mfloat },
457
{"fbf",         one(0xF080),            one(0xF1FF), "IdBW", mfloat },
458
{"fbge",        one(0xF093),            one(0xF1FF), "IdBW", mfloat },
459
{"fbgl",        one(0xF096),            one(0xF1FF), "IdBW", mfloat },
460
{"fbgle",       one(0xF097),            one(0xF1FF), "IdBW", mfloat },
461
{"fbgt",        one(0xF092),            one(0xF1FF), "IdBW", mfloat },
462
{"fble",        one(0xF095),            one(0xF1FF), "IdBW", mfloat },
463
{"fblt",        one(0xF094),            one(0xF1FF), "IdBW", mfloat },
464
{"fbne",        one(0xF08E),            one(0xF1FF), "IdBW", mfloat },
465
{"fbnge",       one(0xF09C),            one(0xF1FF), "IdBW", mfloat },
466
{"fbngl",       one(0xF099),            one(0xF1FF), "IdBW", mfloat },
467
{"fbngle",      one(0xF098),            one(0xF1FF), "IdBW", mfloat },
468
{"fbngt",       one(0xF09D),            one(0xF1FF), "IdBW", mfloat },
469
{"fbnle",       one(0xF09A),            one(0xF1FF), "IdBW", mfloat },
470
{"fbnlt",       one(0xF09B),            one(0xF1FF), "IdBW", mfloat },
471
{"fboge",       one(0xF083),            one(0xF1FF), "IdBW", mfloat },
472
{"fbogl",       one(0xF086),            one(0xF1FF), "IdBW", mfloat },
473
{"fbogt",       one(0xF082),            one(0xF1FF), "IdBW", mfloat },
474
{"fbole",       one(0xF085),            one(0xF1FF), "IdBW", mfloat },
475
{"fbolt",       one(0xF084),            one(0xF1FF), "IdBW", mfloat },
476
{"fbor",        one(0xF087),            one(0xF1FF), "IdBW", mfloat },
477
{"fbseq",       one(0xF091),            one(0xF1FF), "IdBW", mfloat },
478
{"fbsf",        one(0xF090),            one(0xF1FF), "IdBW", mfloat },
479
{"fbsne",       one(0xF09E),            one(0xF1FF), "IdBW", mfloat },
480
{"fbst",        one(0xF09F),            one(0xF1FF), "IdBW", mfloat },
481
{"fbt",         one(0xF08F),            one(0xF1FF), "IdBW", mfloat },
482
{"fbueq",       one(0xF089),            one(0xF1FF), "IdBW", mfloat },
483
{"fbuge",       one(0xF08B),            one(0xF1FF), "IdBW", mfloat },
484
{"fbugt",       one(0xF08A),            one(0xF1FF), "IdBW", mfloat },
485
{"fbule",       one(0xF08D),            one(0xF1FF), "IdBW", mfloat },
486
{"fbult",       one(0xF08C),            one(0xF1FF), "IdBW", mfloat },
487
{"fbun",        one(0xF088),            one(0xF1FF), "IdBW", mfloat },
488
 
489
{"fbeql",       one(0xF0C1),            one(0xF1FF), "IdBC", mfloat },
490
{"fbfl",        one(0xF0C0),            one(0xF1FF), "IdBC", mfloat },
491
{"fbgel",       one(0xF0D3),            one(0xF1FF), "IdBC", mfloat },
492
{"fbgll",       one(0xF0D6),            one(0xF1FF), "IdBC", mfloat },
493
{"fbglel",      one(0xF0D7),            one(0xF1FF), "IdBC", mfloat },
494
{"fbgtl",       one(0xF0D2),            one(0xF1FF), "IdBC", mfloat },
495
{"fblel",       one(0xF0D5),            one(0xF1FF), "IdBC", mfloat },
496
{"fbltl",       one(0xF0D4),            one(0xF1FF), "IdBC", mfloat },
497
{"fbnel",       one(0xF0CE),            one(0xF1FF), "IdBC", mfloat },
498
{"fbngel",      one(0xF0DC),            one(0xF1FF), "IdBC", mfloat },
499
{"fbngll",      one(0xF0D9),            one(0xF1FF), "IdBC", mfloat },
500
{"fbnglel",     one(0xF0D8),            one(0xF1FF), "IdBC", mfloat },
501
{"fbngtl",      one(0xF0DD),            one(0xF1FF), "IdBC", mfloat },
502
{"fbnlel",      one(0xF0DA),            one(0xF1FF), "IdBC", mfloat },
503
{"fbnltl",      one(0xF0DB),            one(0xF1FF), "IdBC", mfloat },
504
{"fbogel",      one(0xF0C3),            one(0xF1FF), "IdBC", mfloat },
505
{"fbogll",      one(0xF0C6),            one(0xF1FF), "IdBC", mfloat },
506
{"fbogtl",      one(0xF0C2),            one(0xF1FF), "IdBC", mfloat },
507
{"fbolel",      one(0xF0C5),            one(0xF1FF), "IdBC", mfloat },
508
{"fboltl",      one(0xF0C4),            one(0xF1FF), "IdBC", mfloat },
509
{"fborl",       one(0xF0C7),            one(0xF1FF), "IdBC", mfloat },
510
{"fbseql",      one(0xF0D1),            one(0xF1FF), "IdBC", mfloat },
511
{"fbsfl",       one(0xF0D0),            one(0xF1FF), "IdBC", mfloat },
512
{"fbsnel",      one(0xF0DE),            one(0xF1FF), "IdBC", mfloat },
513
{"fbstl",       one(0xF0DF),            one(0xF1FF), "IdBC", mfloat },
514
{"fbtl",        one(0xF0CF),            one(0xF1FF), "IdBC", mfloat },
515
{"fbueql",      one(0xF0C9),            one(0xF1FF), "IdBC", mfloat },
516
{"fbugel",      one(0xF0CB),            one(0xF1FF), "IdBC", mfloat },
517
{"fbugtl",      one(0xF0CA),            one(0xF1FF), "IdBC", mfloat },
518
{"fbulel",      one(0xF0CD),            one(0xF1FF), "IdBC", mfloat },
519
{"fbultl",      one(0xF0CC),            one(0xF1FF), "IdBC", mfloat },
520
{"fbunl",       one(0xF0C8),            one(0xF1FF), "IdBC", mfloat },
521
 
522
{"fjeq",        one(0xF081),            one(0xF1BF), "IdBc", mfloat },
523
{"fjf",         one(0xF080),            one(0xF1BF), "IdBc", mfloat },
524
{"fjge",        one(0xF093),            one(0xF1BF), "IdBc", mfloat },
525
{"fjgl",        one(0xF096),            one(0xF1BF), "IdBc", mfloat },
526
{"fjgle",       one(0xF097),            one(0xF1BF), "IdBc", mfloat },
527
{"fjgt",        one(0xF092),            one(0xF1BF), "IdBc", mfloat },
528
{"fjle",        one(0xF095),            one(0xF1BF), "IdBc", mfloat },
529
{"fjlt",        one(0xF094),            one(0xF1BF), "IdBc", mfloat },
530
{"fjne",        one(0xF08E),            one(0xF1BF), "IdBc", mfloat },
531
{"fjnge",       one(0xF09C),            one(0xF1BF), "IdBc", mfloat },
532
{"fjngl",       one(0xF099),            one(0xF1BF), "IdBc", mfloat },
533
{"fjngle",      one(0xF098),            one(0xF1BF), "IdBc", mfloat },
534
{"fjngt",       one(0xF09D),            one(0xF1BF), "IdBc", mfloat },
535
{"fjnle",       one(0xF09A),            one(0xF1BF), "IdBc", mfloat },
536
{"fjnlt",       one(0xF09B),            one(0xF1BF), "IdBc", mfloat },
537
{"fjoge",       one(0xF083),            one(0xF1BF), "IdBc", mfloat },
538
{"fjogl",       one(0xF086),            one(0xF1BF), "IdBc", mfloat },
539
{"fjogt",       one(0xF082),            one(0xF1BF), "IdBc", mfloat },
540
{"fjole",       one(0xF085),            one(0xF1BF), "IdBc", mfloat },
541
{"fjolt",       one(0xF084),            one(0xF1BF), "IdBc", mfloat },
542
{"fjor",        one(0xF087),            one(0xF1BF), "IdBc", mfloat },
543
{"fjseq",       one(0xF091),            one(0xF1BF), "IdBc", mfloat },
544
{"fjsf",        one(0xF090),            one(0xF1BF), "IdBc", mfloat },
545
{"fjsne",       one(0xF09E),            one(0xF1BF), "IdBc", mfloat },
546
{"fjst",        one(0xF09F),            one(0xF1BF), "IdBc", mfloat },
547
{"fjt",         one(0xF08F),            one(0xF1BF), "IdBc", mfloat },
548
{"fjueq",       one(0xF089),            one(0xF1BF), "IdBc", mfloat },
549
{"fjuge",       one(0xF08B),            one(0xF1BF), "IdBc", mfloat },
550
{"fjugt",       one(0xF08A),            one(0xF1BF), "IdBc", mfloat },
551
{"fjule",       one(0xF08D),            one(0xF1BF), "IdBc", mfloat },
552
{"fjult",       one(0xF08C),            one(0xF1BF), "IdBc", mfloat },
553
{"fjun",        one(0xF088),            one(0xF1BF), "IdBc", mfloat },
554
 
555
{"fcmpb",       two(0xF000, 0x5838), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
556
{"fcmpd",       two(0xF000, 0x5438), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
557
{"fcmpl",       two(0xF000, 0x4038), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
558
{"fcmpp",       two(0xF000, 0x4C38), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
559
{"fcmps",       two(0xF000, 0x4438), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
560
{"fcmpw",       two(0xF000, 0x5038), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
561
{"fcmpx",       two(0xF000, 0x0038), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
562
{"fcmpx",       two(0xF000, 0x4838), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
563
 
564
{"fcosb",       two(0xF000, 0x581D), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
565
{"fcosd",       two(0xF000, 0x541D), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
566
{"fcosl",       two(0xF000, 0x401D), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
567
{"fcosp",       two(0xF000, 0x4C1D), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
568
{"fcoss",       two(0xF000, 0x441D), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
569
{"fcosw",       two(0xF000, 0x501D), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
570
{"fcosx",       two(0xF000, 0x001D), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
571
{"fcosx",       two(0xF000, 0x481D), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
572
{"fcosx",       two(0xF000, 0x001D), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
573
 
574
{"fcoshb",      two(0xF000, 0x5819), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
575
{"fcoshd",      two(0xF000, 0x5419), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
576
{"fcoshl",      two(0xF000, 0x4019), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
577
{"fcoshp",      two(0xF000, 0x4C19), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
578
{"fcoshs",      two(0xF000, 0x4419), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
579
{"fcoshw",      two(0xF000, 0x5019), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
580
{"fcoshx",      two(0xF000, 0x0019), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
581
{"fcoshx",      two(0xF000, 0x4819), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
582
{"fcoshx",      two(0xF000, 0x0019), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
583
 
584
{"fdbeq",       two(0xF048, 0x0001), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
585
{"fdbf",        two(0xF048, 0x0000), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
586
{"fdbge",       two(0xF048, 0x0013), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
587
{"fdbgl",       two(0xF048, 0x0016), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
588
{"fdbgle",      two(0xF048, 0x0017), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
589
{"fdbgt",       two(0xF048, 0x0012), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
590
{"fdble",       two(0xF048, 0x0015), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
591
{"fdblt",       two(0xF048, 0x0014), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
592
{"fdbne",       two(0xF048, 0x000E), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
593
{"fdbnge",      two(0xF048, 0x001C), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
594
{"fdbngl",      two(0xF048, 0x0019), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
595
{"fdbngle",     two(0xF048, 0x0018), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
596
{"fdbngt",      two(0xF048, 0x001D), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
597
{"fdbnle",      two(0xF048, 0x001A), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
598
{"fdbnlt",      two(0xF048, 0x001B), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
599
{"fdboge",      two(0xF048, 0x0003), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
600
{"fdbogl",      two(0xF048, 0x0006), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
601
{"fdbogt",      two(0xF048, 0x0002), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
602
{"fdbole",      two(0xF048, 0x0005), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
603
{"fdbolt",      two(0xF048, 0x0004), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
604
{"fdbor",       two(0xF048, 0x0007), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
605
{"fdbseq",      two(0xF048, 0x0011), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
606
{"fdbsf",       two(0xF048, 0x0010), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
607
{"fdbsne",      two(0xF048, 0x001E), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
608
{"fdbst",       two(0xF048, 0x001F), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
609
{"fdbt",        two(0xF048, 0x000F), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
610
{"fdbueq",      two(0xF048, 0x0009), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
611
{"fdbuge",      two(0xF048, 0x000B), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
612
{"fdbugt",      two(0xF048, 0x000A), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
613
{"fdbule",      two(0xF048, 0x000D), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
614
{"fdbult",      two(0xF048, 0x000C), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
615
{"fdbun",       two(0xF048, 0x0008), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
616
 
617
{"fdivb",       two(0xF000, 0x5820), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
618
{"fdivd",       two(0xF000, 0x5420), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
619
{"fdivl",       two(0xF000, 0x4020), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
620
{"fdivp",       two(0xF000, 0x4C20), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
621
{"fdivs",       two(0xF000, 0x4420), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
622
{"fdivw",       two(0xF000, 0x5020), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
623
{"fdivx",       two(0xF000, 0x0020), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
624
{"fdivx",       two(0xF000, 0x4820), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
625
 
626
{"fsdivb",      two(0xF000, 0x5860), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
627
{"fsdivd",      two(0xF000, 0x5460), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
628
{"fsdivl",      two(0xF000, 0x4060), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
629
{"fsdivp",      two(0xF000, 0x4C60), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
630
{"fsdivs",      two(0xF000, 0x4460), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
631
{"fsdivw",      two(0xF000, 0x5060), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
632
{"fsdivx",      two(0xF000, 0x0060), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
633
{"fsdivx",      two(0xF000, 0x4860), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
634
 
635
{"fddivb",      two(0xF000, 0x5864), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
636
{"fddivd",      two(0xF000, 0x5464), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
637
{"fddivl",      two(0xF000, 0x4064), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
638
{"fddivp",      two(0xF000, 0x4C64), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
639
{"fddivs",      two(0xF000, 0x4464), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
640
{"fddivw",      two(0xF000, 0x5064), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
641
{"fddivx",      two(0xF000, 0x0064), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
642
{"fddivx",      two(0xF000, 0x4864), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
643
 
644
{"fetoxb",      two(0xF000, 0x5810), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
645
{"fetoxd",      two(0xF000, 0x5410), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
646
{"fetoxl",      two(0xF000, 0x4010), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
647
{"fetoxp",      two(0xF000, 0x4C10), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
648
{"fetoxs",      two(0xF000, 0x4410), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
649
{"fetoxw",      two(0xF000, 0x5010), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
650
{"fetoxx",      two(0xF000, 0x0010), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
651
{"fetoxx",      two(0xF000, 0x4810), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
652
{"fetoxx",      two(0xF000, 0x0010), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
653
 
654
{"fetoxm1b",    two(0xF000, 0x5808), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
655
{"fetoxm1d",    two(0xF000, 0x5408), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
656
{"fetoxm1l",    two(0xF000, 0x4008), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
657
{"fetoxm1p",    two(0xF000, 0x4C08), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
658
{"fetoxm1s",    two(0xF000, 0x4408), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
659
{"fetoxm1w",    two(0xF000, 0x5008), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
660
{"fetoxm1x",    two(0xF000, 0x0008), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
661
{"fetoxm1x",    two(0xF000, 0x4808), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
662
{"fetoxm1x",    two(0xF000, 0x0008), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
663
 
664
{"fgetexpb",    two(0xF000, 0x581E), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
665
{"fgetexpd",    two(0xF000, 0x541E), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
666
{"fgetexpl",    two(0xF000, 0x401E), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
667
{"fgetexpp",    two(0xF000, 0x4C1E), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
668
{"fgetexps",    two(0xF000, 0x441E), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
669
{"fgetexpw",    two(0xF000, 0x501E), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
670
{"fgetexpx",    two(0xF000, 0x001E), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
671
{"fgetexpx",    two(0xF000, 0x481E), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
672
{"fgetexpx",    two(0xF000, 0x001E), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
673
 
674
{"fgetmanb",    two(0xF000, 0x581F), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
675
{"fgetmand",    two(0xF000, 0x541F), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
676
{"fgetmanl",    two(0xF000, 0x401F), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
677
{"fgetmanp",    two(0xF000, 0x4C1F), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
678
{"fgetmans",    two(0xF000, 0x441F), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
679
{"fgetmanw",    two(0xF000, 0x501F), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
680
{"fgetmanx",    two(0xF000, 0x001F), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
681
{"fgetmanx",    two(0xF000, 0x481F), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
682
{"fgetmanx",    two(0xF000, 0x001F), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
683
 
684
{"fintb",       two(0xF000, 0x5801), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
685
{"fintd",       two(0xF000, 0x5401), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
686
{"fintl",       two(0xF000, 0x4001), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
687
{"fintp",       two(0xF000, 0x4C01), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
688
{"fints",       two(0xF000, 0x4401), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
689
{"fintw",       two(0xF000, 0x5001), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
690
{"fintx",       two(0xF000, 0x0001), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
691
{"fintx",       two(0xF000, 0x4801), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
692
{"fintx",       two(0xF000, 0x0001), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
693
 
694
{"fintrzb",     two(0xF000, 0x5803), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
695
{"fintrzd",     two(0xF000, 0x5403), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
696
{"fintrzl",     two(0xF000, 0x4003), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
697
{"fintrzp",     two(0xF000, 0x4C03), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
698
{"fintrzs",     two(0xF000, 0x4403), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
699
{"fintrzw",     two(0xF000, 0x5003), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
700
{"fintrzx",     two(0xF000, 0x0003), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
701
{"fintrzx",     two(0xF000, 0x4803), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
702
{"fintrzx",     two(0xF000, 0x0003), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
703
 
704
{"flog10b",     two(0xF000, 0x5815), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
705
{"flog10d",     two(0xF000, 0x5415), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
706
{"flog10l",     two(0xF000, 0x4015), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
707
{"flog10p",     two(0xF000, 0x4C15), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
708
{"flog10s",     two(0xF000, 0x4415), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
709
{"flog10w",     two(0xF000, 0x5015), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
710
{"flog10x",     two(0xF000, 0x0015), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
711
{"flog10x",     two(0xF000, 0x4815), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
712
{"flog10x",     two(0xF000, 0x0015), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
713
 
714
{"flog2b",      two(0xF000, 0x5816), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
715
{"flog2d",      two(0xF000, 0x5416), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
716
{"flog2l",      two(0xF000, 0x4016), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
717
{"flog2p",      two(0xF000, 0x4C16), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
718
{"flog2s",      two(0xF000, 0x4416), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
719
{"flog2w",      two(0xF000, 0x5016), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
720
{"flog2x",      two(0xF000, 0x0016), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
721
{"flog2x",      two(0xF000, 0x4816), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
722
{"flog2x",      two(0xF000, 0x0016), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
723
 
724
{"flognb",      two(0xF000, 0x5814), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
725
{"flognd",      two(0xF000, 0x5414), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
726
{"flognl",      two(0xF000, 0x4014), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
727
{"flognp",      two(0xF000, 0x4C14), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
728
{"flogns",      two(0xF000, 0x4414), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
729
{"flognw",      two(0xF000, 0x5014), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
730
{"flognx",      two(0xF000, 0x0014), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
731
{"flognx",      two(0xF000, 0x4814), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
732
{"flognx",      two(0xF000, 0x0014), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
733
 
734
{"flognp1b",    two(0xF000, 0x5806), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
735
{"flognp1d",    two(0xF000, 0x5406), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
736
{"flognp1l",    two(0xF000, 0x4006), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
737
{"flognp1p",    two(0xF000, 0x4C06), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
738
{"flognp1s",    two(0xF000, 0x4406), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
739
{"flognp1w",    two(0xF000, 0x5006), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
740
{"flognp1x",    two(0xF000, 0x0006), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
741
{"flognp1x",    two(0xF000, 0x4806), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
742
{"flognp1x",    two(0xF000, 0x0006), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
743
 
744
{"fmodb",       two(0xF000, 0x5821), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
745
{"fmodd",       two(0xF000, 0x5421), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
746
{"fmodl",       two(0xF000, 0x4021), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
747
{"fmodp",       two(0xF000, 0x4C21), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
748
{"fmods",       two(0xF000, 0x4421), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
749
{"fmodw",       two(0xF000, 0x5021), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
750
{"fmodx",       two(0xF000, 0x0021), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
751
{"fmodx",       two(0xF000, 0x4821), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
752
 
753
{"fmoveb",      two(0xF000, 0x5800), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
754
{"fmoveb",      two(0xF000, 0x7800), two(0xF1C0, 0xFC7F), "IiF7$b", mfloat },
755
{"fmoved",      two(0xF000, 0x5400), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
756
{"fmoved",      two(0xF000, 0x7400), two(0xF1C0, 0xFC7F), "IiF7~F", mfloat },
757
{"fmovel",      two(0xF000, 0x4000), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
758
{"fmovel",      two(0xF000, 0x6000), two(0xF1C0, 0xFC7F), "IiF7$l", mfloat },
759
/* FIXME: the next two variants should not permit moving an address
760
   register to anything but the floating point instruction register.  */
761
{"fmovel",      two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
762
{"fmovel",      two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*ls8", mfloat },
763
{"fmovep",      two(0xF000, 0x4C00), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
764
{"fmovep",      two(0xF000, 0x6C00), two(0xF1C0, 0xFC00), "IiF7~pkC", mfloat },
765
{"fmovep",      two(0xF000, 0x7C00), two(0xF1C0, 0xFC0F), "IiF7~pDk", mfloat },
766
{"fmoves",      two(0xF000, 0x4400), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
767
{"fmoves",      two(0xF000, 0x6400), two(0xF1C0, 0xFC7F), "IiF7$f", mfloat },
768
{"fmovew",      two(0xF000, 0x5000), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
769
{"fmovew",      two(0xF000, 0x7000), two(0xF1C0, 0xFC7F), "IiF7$w", mfloat },
770
{"fmovex",      two(0xF000, 0x0000), two(0xF1FF, 0xE07F), "IiF8F7", mfloat },
771
{"fmovex",      two(0xF000, 0x4800), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
772
{"fmovex",      two(0xF000, 0x6800), two(0xF1C0, 0xFC7F), "IiF7~x", mfloat },
773
 
774
{"fsmoveb",     two(0xF000, 0x5840), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
775
{"fsmoved",     two(0xF000, 0x5440), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
776
{"fsmovel",     two(0xF000, 0x4040), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
777
{"fsmoves",     two(0xF000, 0x4440), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
778
{"fsmovew",     two(0xF000, 0x5040), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
779
{"fsmovex",     two(0xF000, 0x0040), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
780
{"fsmovex",     two(0xF000, 0x4840), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
781
{"fsmovep",     two(0xF000, 0x4C40), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
782
 
783
{"fdmoveb",     two(0xF000, 0x5844), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
784
{"fdmoved",     two(0xF000, 0x5444), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
785
{"fdmovel",     two(0xF000, 0x4044), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
786
{"fdmoves",     two(0xF000, 0x4444), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
787
{"fdmovew",     two(0xF000, 0x5044), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
788
{"fdmovex",     two(0xF000, 0x0044), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
789
{"fdmovex",     two(0xF000, 0x4844), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
790
{"fdmovep",     two(0xF000, 0x4C44), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
791
 
792
{"fmovecrx",    two(0xF000, 0x5C00), two(0xF1FF, 0xFC00), "Ii#CF7", mfloat },
793
 
794
{"fmovemx",     two(0xF000, 0xF800), two(0xF1C0, 0xFF8F), "IiDk&s", mfloat },
795
{"fmovemx",     two(0xF020, 0xE800), two(0xF1F8, 0xFF8F), "IiDk-s", mfloat },
796
{"fmovemx",     two(0xF000, 0xD800), two(0xF1C0, 0xFF8F), "Ii&sDk", mfloat },
797
{"fmovemx",     two(0xF018, 0xD800), two(0xF1F8, 0xFF8F), "Ii+sDk", mfloat },
798
{"fmovemx",     two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Idl3&s", mfloat },
799
{"fmovemx",     two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Id#3&s", mfloat },
800
{"fmovemx",     two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&sl3", mfloat },
801
{"fmovemx",     two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&s#3", mfloat },
802
{"fmovemx",     two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "IdL3-s", mfloat },
803
{"fmovemx",     two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "Id#3-s", mfloat },
804
{"fmovemx",     two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+sl3", mfloat },
805
{"fmovemx",     two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+s#3", mfloat },
806
 
807
{"fmoveml",     two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
808
{"fmoveml",     two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "IiL8~s", mfloat },
809
/* FIXME: In the next instruction, we should only permit %dn if the
810
   target is a single register.  We should only permit %an if the
811
   target is a single %fpiar.  */
812
{"fmoveml",     two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*lL8", mfloat },
813
 
814
{"fmovem",      two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "IdL3-s", mfloat },
815
{"fmovem",      two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Idl3&s", mfloat },
816
{"fmovem",      two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+sl3", mfloat },
817
{"fmovem",      two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&sl3", mfloat },
818
{"fmovem",      two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "Id#3-s", mfloat },
819
{"fmovem",      two(0xF020, 0xE800), two(0xF1F8, 0xFF8F), "IiDk-s", mfloat },
820
{"fmovem",      two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Id#3&s", mfloat },
821
{"fmovem",      two(0xF000, 0xF800), two(0xF1C0, 0xFF8F), "IiDk&s", mfloat },
822
{"fmovem",      two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+s#3", mfloat },
823
{"fmovem",      two(0xF018, 0xD800), two(0xF1F8, 0xFF8F), "Ii+sDk", mfloat },
824
{"fmovem",      two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&s#3", mfloat },
825
{"fmovem",      two(0xF000, 0xD800), two(0xF1C0, 0xFF8F), "Ii&sDk", mfloat },
826
{"fmovem",      two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
827
{"fmovem",      two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*ss8", mfloat },
828
{"fmovem",      two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "IiL8~s", mfloat },
829
{"fmovem",      two(0xF000, 0x8000), two(0xF2C0, 0xE3FF), "Ii*sL8", mfloat },
830
 
831
{"fmulb",       two(0xF000, 0x5823), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
832
{"fmuld",       two(0xF000, 0x5423), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
833
{"fmull",       two(0xF000, 0x4023), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
834
{"fmulp",       two(0xF000, 0x4C23), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
835
{"fmuls",       two(0xF000, 0x4423), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
836
{"fmulw",       two(0xF000, 0x5023), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
837
{"fmulx",       two(0xF000, 0x0023), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
838
{"fmulx",       two(0xF000, 0x4823), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
839
 
840
{"fsmulb",      two(0xF000, 0x5863), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
841
{"fsmuld",      two(0xF000, 0x5463), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
842
{"fsmull",      two(0xF000, 0x4063), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
843
{"fsmulp",      two(0xF000, 0x4C63), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
844
{"fsmuls",      two(0xF000, 0x4463), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
845
{"fsmulw",      two(0xF000, 0x5063), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
846
{"fsmulx",      two(0xF000, 0x0063), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
847
{"fsmulx",      two(0xF000, 0x4863), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
848
 
849
{"fdmulb",      two(0xF000, 0x5867), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
850
{"fdmuld",      two(0xF000, 0x5467), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
851
{"fdmull",      two(0xF000, 0x4067), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
852
{"fdmulp",      two(0xF000, 0x4C67), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
853
{"fdmuls",      two(0xF000, 0x4467), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
854
{"fdmulw",      two(0xF000, 0x5067), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
855
{"fdmulx",      two(0xF000, 0x0067), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
856
{"fdmulx",      two(0xF000, 0x4867), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
857
 
858
{"fnegb",       two(0xF000, 0x581A), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
859
{"fnegd",       two(0xF000, 0x541A), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
860
{"fnegl",       two(0xF000, 0x401A), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
861
{"fnegp",       two(0xF000, 0x4C1A), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
862
{"fnegs",       two(0xF000, 0x441A), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
863
{"fnegw",       two(0xF000, 0x501A), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
864
{"fnegx",       two(0xF000, 0x001A), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
865
{"fnegx",       two(0xF000, 0x481A), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
866
{"fnegx",       two(0xF000, 0x001A), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
867
 
868
{"fsnegb",      two(0xF000, 0x585A), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
869
{"fsnegd",      two(0xF000, 0x545A), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
870
{"fsnegl",      two(0xF000, 0x405A), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
871
{"fsnegp",      two(0xF000, 0x4C5A), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
872
{"fsnegs",      two(0xF000, 0x445A), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
873
{"fsnegw",      two(0xF000, 0x505A), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
874
{"fsnegx",      two(0xF000, 0x005A), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
875
{"fsnegx",      two(0xF000, 0x485A), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
876
{"fsnegx",      two(0xF000, 0x005A), two(0xF1C0, 0xE07F), "IiFt",   m68040up },
877
 
878
{"fdnegb",      two(0xF000, 0x585E), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
879
{"fdnegd",      two(0xF000, 0x545E), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
880
{"fdnegl",      two(0xF000, 0x405E), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
881
{"fdnegp",      two(0xF000, 0x4C5E), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
882
{"fdnegs",      two(0xF000, 0x445E), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
883
{"fdnegw",      two(0xF000, 0x505E), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
884
{"fdnegx",      two(0xF000, 0x005E), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
885
{"fdnegx",      two(0xF000, 0x485E), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
886
{"fdnegx",      two(0xF000, 0x005E), two(0xF1C0, 0xE07F), "IiFt",   m68040up },
887
 
888
{"fnop",        two(0xF280, 0x0000), two(0xFFFF, 0xFFFF), "Ii", mfloat },
889
 
890
{"fremb",       two(0xF000, 0x5825), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
891
{"fremd",       two(0xF000, 0x5425), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
892
{"freml",       two(0xF000, 0x4025), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
893
{"fremp",       two(0xF000, 0x4C25), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
894
{"frems",       two(0xF000, 0x4425), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
895
{"fremw",       two(0xF000, 0x5025), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
896
{"fremx",       two(0xF000, 0x0025), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
897
{"fremx",       two(0xF000, 0x4825), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
898
 
899
{"frestore",    one(0xF140),            one(0xF1C0), "Id<s", mfloat },
900
 
901
{"fsave",       one(0xF100),            one(0xF1C0), "Id>s", mfloat },
902
 
903
{"fscaleb",     two(0xF000, 0x5826), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
904
{"fscaled",     two(0xF000, 0x5426), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
905
{"fscalel",     two(0xF000, 0x4026), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
906
{"fscalep",     two(0xF000, 0x4C26), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
907
{"fscales",     two(0xF000, 0x4426), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
908
{"fscalew",     two(0xF000, 0x5026), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
909
{"fscalex",     two(0xF000, 0x0026), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
910
{"fscalex",     two(0xF000, 0x4826), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
911
 
912
/* $ is necessary to prevent the assembler from using PC-relative.
913
   If @ were used, "label: fseq label" could produce "ftrapeq",
914
   because "label" became "pc@label".  */
915
{"fseq",        two(0xF040, 0x0001), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
916
{"fsf",         two(0xF040, 0x0000), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
917
{"fsge",        two(0xF040, 0x0013), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
918
{"fsgl",        two(0xF040, 0x0016), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
919
{"fsgle",       two(0xF040, 0x0017), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
920
{"fsgt",        two(0xF040, 0x0012), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
921
{"fsle",        two(0xF040, 0x0015), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
922
{"fslt",        two(0xF040, 0x0014), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
923
{"fsne",        two(0xF040, 0x000E), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
924
{"fsnge",       two(0xF040, 0x001C), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
925
{"fsngl",       two(0xF040, 0x0019), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
926
{"fsngle",      two(0xF040, 0x0018), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
927
{"fsngt",       two(0xF040, 0x001D), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
928
{"fsnle",       two(0xF040, 0x001A), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
929
{"fsnlt",       two(0xF040, 0x001B), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
930
{"fsoge",       two(0xF040, 0x0003), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
931
{"fsogl",       two(0xF040, 0x0006), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
932
{"fsogt",       two(0xF040, 0x0002), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
933
{"fsole",       two(0xF040, 0x0005), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
934
{"fsolt",       two(0xF040, 0x0004), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
935
{"fsor",        two(0xF040, 0x0007), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
936
{"fsseq",       two(0xF040, 0x0011), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
937
{"fssf",        two(0xF040, 0x0010), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
938
{"fssne",       two(0xF040, 0x001E), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
939
{"fsst",        two(0xF040, 0x001F), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
940
{"fst",         two(0xF040, 0x000F), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
941
{"fsueq",       two(0xF040, 0x0009), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
942
{"fsuge",       two(0xF040, 0x000B), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
943
{"fsugt",       two(0xF040, 0x000A), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
944
{"fsule",       two(0xF040, 0x000D), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
945
{"fsult",       two(0xF040, 0x000C), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
946
{"fsun",        two(0xF040, 0x0008), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
947
 
948
{"fsgldivb",    two(0xF000, 0x5824), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
949
{"fsgldivd",    two(0xF000, 0x5424), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
950
{"fsgldivl",    two(0xF000, 0x4024), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
951
{"fsgldivp",    two(0xF000, 0x4C24), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
952
{"fsgldivs",    two(0xF000, 0x4424), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
953
{"fsgldivw",    two(0xF000, 0x5024), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
954
{"fsgldivx",    two(0xF000, 0x0024), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
955
{"fsgldivx",    two(0xF000, 0x4824), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
956
{"fsgldivx",    two(0xF000, 0x0024), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
957
 
958
{"fsglmulb",    two(0xF000, 0x5827), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
959
{"fsglmuld",    two(0xF000, 0x5427), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
960
{"fsglmull",    two(0xF000, 0x4027), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
961
{"fsglmulp",    two(0xF000, 0x4C27), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
962
{"fsglmuls",    two(0xF000, 0x4427), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
963
{"fsglmulw",    two(0xF000, 0x5027), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
964
{"fsglmulx",    two(0xF000, 0x0027), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
965
{"fsglmulx",    two(0xF000, 0x4827), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
966
{"fsglmulx",    two(0xF000, 0x0027), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
967
 
968
{"fsinb",       two(0xF000, 0x580E), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
969
{"fsind",       two(0xF000, 0x540E), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
970
{"fsinl",       two(0xF000, 0x400E), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
971
{"fsinp",       two(0xF000, 0x4C0E), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
972
{"fsins",       two(0xF000, 0x440E), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
973
{"fsinw",       two(0xF000, 0x500E), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
974
{"fsinx",       two(0xF000, 0x000E), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
975
{"fsinx",       two(0xF000, 0x480E), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
976
{"fsinx",       two(0xF000, 0x000E), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
977
 
978
{"fsincosb",    two(0xF000, 0x5830), two(0xF1C0, 0xFC78), "Ii;bF3F7", mfloat },
979
{"fsincosd",    two(0xF000, 0x5430), two(0xF1C0, 0xFC78), "Ii;FF3F7", mfloat },
980
{"fsincosl",    two(0xF000, 0x4030), two(0xF1C0, 0xFC78), "Ii;lF3F7", mfloat },
981
{"fsincosp",    two(0xF000, 0x4C30), two(0xF1C0, 0xFC78), "Ii;pF3F7", mfloat },
982
{"fsincoss",    two(0xF000, 0x4430), two(0xF1C0, 0xFC78), "Ii;fF3F7", mfloat },
983
{"fsincosw",    two(0xF000, 0x5030), two(0xF1C0, 0xFC78), "Ii;wF3F7", mfloat },
984
{"fsincosx",    two(0xF000, 0x0030), two(0xF1C0, 0xE078), "IiF8F3F7", mfloat },
985
{"fsincosx",    two(0xF000, 0x4830), two(0xF1C0, 0xFC78), "Ii;xF3F7", mfloat },
986
 
987
{"fsinhb",      two(0xF000, 0x5802), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
988
{"fsinhd",      two(0xF000, 0x5402), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
989
{"fsinhl",      two(0xF000, 0x4002), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
990
{"fsinhp",      two(0xF000, 0x4C02), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
991
{"fsinhs",      two(0xF000, 0x4402), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
992
{"fsinhw",      two(0xF000, 0x5002), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
993
{"fsinhx",      two(0xF000, 0x0002), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
994
{"fsinhx",      two(0xF000, 0x4802), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
995
{"fsinhx",      two(0xF000, 0x0002), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
996
 
997
{"fsqrtb",      two(0xF000, 0x5804), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
998
{"fsqrtd",      two(0xF000, 0x5404), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
999
{"fsqrtl",      two(0xF000, 0x4004), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1000
{"fsqrtp",      two(0xF000, 0x4C04), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1001
{"fsqrts",      two(0xF000, 0x4404), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1002
{"fsqrtw",      two(0xF000, 0x5004), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1003
{"fsqrtx",      two(0xF000, 0x0004), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1004
{"fsqrtx",      two(0xF000, 0x4804), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1005
{"fsqrtx",      two(0xF000, 0x0004), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
1006
 
1007
{"fssqrtb",     two(0xF000, 0x5841), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
1008
{"fssqrtd",     two(0xF000, 0x5441), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
1009
{"fssqrtl",     two(0xF000, 0x4041), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
1010
{"fssqrtp",     two(0xF000, 0x4C41), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
1011
{"fssqrts",     two(0xF000, 0x4441), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
1012
{"fssqrtw",     two(0xF000, 0x5041), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
1013
{"fssqrtx",     two(0xF000, 0x0041), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
1014
{"fssqrtx",     two(0xF000, 0x4841), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
1015
{"fssqrtx",     two(0xF000, 0x0041), two(0xF1C0, 0xE07F), "IiFt",   m68040up },
1016
 
1017
{"fdsqrtb",     two(0xF000, 0x5845), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
1018
{"fdsqrtd",     two(0xF000, 0x5445), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
1019
{"fdsqrtl",     two(0xF000, 0x4045), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
1020
{"fdsqrtp",     two(0xF000, 0x4C45), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
1021
{"fdsqrts",     two(0xF000, 0x4445), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
1022
{"fdsqrtw",     two(0xF000, 0x5045), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
1023
{"fdsqrtx",     two(0xF000, 0x0045), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
1024
{"fdsqrtx",     two(0xF000, 0x4845), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
1025
{"fdsqrtx",     two(0xF000, 0x0045), two(0xF1C0, 0xE07F), "IiFt",   m68040up },
1026
 
1027
{"fsubb",       two(0xF000, 0x5828), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1028
{"fsubd",       two(0xF000, 0x5428), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1029
{"fsubl",       two(0xF000, 0x4028), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1030
{"fsubp",       two(0xF000, 0x4C28), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1031
{"fsubs",       two(0xF000, 0x4428), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1032
{"fsubw",       two(0xF000, 0x5028), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1033
{"fsubx",       two(0xF000, 0x0028), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1034
{"fsubx",       two(0xF000, 0x4828), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1035
{"fsubx",       two(0xF000, 0x0028), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
1036
 
1037
{"fssubb",      two(0xF000, 0x5868), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
1038
{"fssubd",      two(0xF000, 0x5468), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
1039
{"fssubl",      two(0xF000, 0x4068), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
1040
{"fssubp",      two(0xF000, 0x4C68), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
1041
{"fssubs",      two(0xF000, 0x4468), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
1042
{"fssubw",      two(0xF000, 0x5068), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
1043
{"fssubx",      two(0xF000, 0x0068), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
1044
{"fssubx",      two(0xF000, 0x4868), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
1045
{"fssubx",      two(0xF000, 0x0068), two(0xF1C0, 0xE07F), "IiFt",   m68040up },
1046
 
1047
{"fdsubb",      two(0xF000, 0x586c), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
1048
{"fdsubd",      two(0xF000, 0x546c), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
1049
{"fdsubl",      two(0xF000, 0x406c), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
1050
{"fdsubp",      two(0xF000, 0x4C6c), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
1051
{"fdsubs",      two(0xF000, 0x446c), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
1052
{"fdsubw",      two(0xF000, 0x506c), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
1053
{"fdsubx",      two(0xF000, 0x006c), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
1054
{"fdsubx",      two(0xF000, 0x486c), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
1055
{"fdsubx",      two(0xF000, 0x006c), two(0xF1C0, 0xE07F), "IiFt",   m68040up },
1056
 
1057
{"ftanb",       two(0xF000, 0x580F), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1058
{"ftand",       two(0xF000, 0x540F), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1059
{"ftanl",       two(0xF000, 0x400F), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1060
{"ftanp",       two(0xF000, 0x4C0F), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1061
{"ftans",       two(0xF000, 0x440F), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1062
{"ftanw",       two(0xF000, 0x500F), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1063
{"ftanx",       two(0xF000, 0x000F), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1064
{"ftanx",       two(0xF000, 0x480F), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1065
{"ftanx",       two(0xF000, 0x000F), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
1066
 
1067
{"ftanhb",      two(0xF000, 0x5809), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1068
{"ftanhd",      two(0xF000, 0x5409), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1069
{"ftanhl",      two(0xF000, 0x4009), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1070
{"ftanhp",      two(0xF000, 0x4C09), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1071
{"ftanhs",      two(0xF000, 0x4409), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1072
{"ftanhw",      two(0xF000, 0x5009), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1073
{"ftanhx",      two(0xF000, 0x0009), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1074
{"ftanhx",      two(0xF000, 0x4809), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1075
{"ftanhx",      two(0xF000, 0x0009), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
1076
 
1077
{"ftentoxb",    two(0xF000, 0x5812), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1078
{"ftentoxd",    two(0xF000, 0x5412), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1079
{"ftentoxl",    two(0xF000, 0x4012), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1080
{"ftentoxp",    two(0xF000, 0x4C12), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1081
{"ftentoxs",    two(0xF000, 0x4412), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1082
{"ftentoxw",    two(0xF000, 0x5012), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1083
{"ftentoxx",    two(0xF000, 0x0012), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1084
{"ftentoxx",    two(0xF000, 0x4812), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1085
{"ftentoxx",    two(0xF000, 0x0012), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
1086
 
1087
{"ftrapeq",     two(0xF07C, 0x0001), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1088
{"ftrapf",      two(0xF07C, 0x0000), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1089
{"ftrapge",     two(0xF07C, 0x0013), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1090
{"ftrapgl",     two(0xF07C, 0x0016), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1091
{"ftrapgle",    two(0xF07C, 0x0017), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1092
{"ftrapgt",     two(0xF07C, 0x0012), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1093
{"ftraple",     two(0xF07C, 0x0015), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1094
{"ftraplt",     two(0xF07C, 0x0014), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1095
{"ftrapne",     two(0xF07C, 0x000E), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1096
{"ftrapnge",    two(0xF07C, 0x001C), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1097
{"ftrapngl",    two(0xF07C, 0x0019), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1098
{"ftrapngle",   two(0xF07C, 0x0018), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1099
{"ftrapngt",    two(0xF07C, 0x001D), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1100
{"ftrapnle",    two(0xF07C, 0x001A), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1101
{"ftrapnlt",    two(0xF07C, 0x001B), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1102
{"ftrapoge",    two(0xF07C, 0x0003), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1103
{"ftrapogl",    two(0xF07C, 0x0006), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1104
{"ftrapogt",    two(0xF07C, 0x0002), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1105
{"ftrapole",    two(0xF07C, 0x0005), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1106
{"ftrapolt",    two(0xF07C, 0x0004), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1107
{"ftrapor",     two(0xF07C, 0x0007), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1108
{"ftrapseq",    two(0xF07C, 0x0011), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1109
{"ftrapsf",     two(0xF07C, 0x0010), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1110
{"ftrapsne",    two(0xF07C, 0x001E), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1111
{"ftrapst",     two(0xF07C, 0x001F), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1112
{"ftrapt",      two(0xF07C, 0x000F), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1113
{"ftrapueq",    two(0xF07C, 0x0009), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1114
{"ftrapuge",    two(0xF07C, 0x000B), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1115
{"ftrapugt",    two(0xF07C, 0x000A), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1116
{"ftrapule",    two(0xF07C, 0x000D), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1117
{"ftrapult",    two(0xF07C, 0x000C), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1118
{"ftrapun",     two(0xF07C, 0x0008), two(0xF1FF, 0xFFFF), "Ii", mfloat },
1119
 
1120
{"ftrapeqw",    two(0xF07A, 0x0001), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1121
{"ftrapfw",     two(0xF07A, 0x0000), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1122
{"ftrapgew",    two(0xF07A, 0x0013), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1123
{"ftrapglw",    two(0xF07A, 0x0016), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1124
{"ftrapglew",   two(0xF07A, 0x0017), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1125
{"ftrapgtw",    two(0xF07A, 0x0012), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1126
{"ftraplew",    two(0xF07A, 0x0015), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1127
{"ftrapltw",    two(0xF07A, 0x0014), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1128
{"ftrapnew",    two(0xF07A, 0x000E), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1129
{"ftrapngew",   two(0xF07A, 0x001C), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1130
{"ftrapnglw",   two(0xF07A, 0x0019), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1131
{"ftrapnglew",  two(0xF07A, 0x0018), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1132
{"ftrapngtw",   two(0xF07A, 0x001D), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1133
{"ftrapnlew",   two(0xF07A, 0x001A), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1134
{"ftrapnltw",   two(0xF07A, 0x001B), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1135
{"ftrapogew",   two(0xF07A, 0x0003), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1136
{"ftrapoglw",   two(0xF07A, 0x0006), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1137
{"ftrapogtw",   two(0xF07A, 0x0002), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1138
{"ftrapolew",   two(0xF07A, 0x0005), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1139
{"ftrapoltw",   two(0xF07A, 0x0004), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1140
{"ftraporw",    two(0xF07A, 0x0007), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1141
{"ftrapseqw",   two(0xF07A, 0x0011), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1142
{"ftrapsfw",    two(0xF07A, 0x0010), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1143
{"ftrapsnew",   two(0xF07A, 0x001E), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1144
{"ftrapstw",    two(0xF07A, 0x001F), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1145
{"ftraptw",     two(0xF07A, 0x000F), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1146
{"ftrapueqw",   two(0xF07A, 0x0009), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1147
{"ftrapugew",   two(0xF07A, 0x000B), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1148
{"ftrapugtw",   two(0xF07A, 0x000A), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1149
{"ftrapulew",   two(0xF07A, 0x000D), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1150
{"ftrapultw",   two(0xF07A, 0x000C), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1151
{"ftrapunw",    two(0xF07A, 0x0008), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
1152
 
1153
{"ftrapeql",    two(0xF07B, 0x0001), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1154
{"ftrapfl",     two(0xF07B, 0x0000), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1155
{"ftrapgel",    two(0xF07B, 0x0013), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1156
{"ftrapgll",    two(0xF07B, 0x0016), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1157
{"ftrapglel",   two(0xF07B, 0x0017), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1158
{"ftrapgtl",    two(0xF07B, 0x0012), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1159
{"ftraplel",    two(0xF07B, 0x0015), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1160
{"ftrapltl",    two(0xF07B, 0x0014), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1161
{"ftrapnel",    two(0xF07B, 0x000E), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1162
{"ftrapngel",   two(0xF07B, 0x001C), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1163
{"ftrapngll",   two(0xF07B, 0x0019), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1164
{"ftrapnglel",  two(0xF07B, 0x0018), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1165
{"ftrapngtl",   two(0xF07B, 0x001D), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1166
{"ftrapnlel",   two(0xF07B, 0x001A), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1167
{"ftrapnltl",   two(0xF07B, 0x001B), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1168
{"ftrapogel",   two(0xF07B, 0x0003), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1169
{"ftrapogll",   two(0xF07B, 0x0006), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1170
{"ftrapogtl",   two(0xF07B, 0x0002), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1171
{"ftrapolel",   two(0xF07B, 0x0005), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1172
{"ftrapoltl",   two(0xF07B, 0x0004), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1173
{"ftraporl",    two(0xF07B, 0x0007), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1174
{"ftrapseql",   two(0xF07B, 0x0011), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1175
{"ftrapsfl",    two(0xF07B, 0x0010), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1176
{"ftrapsnel",   two(0xF07B, 0x001E), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1177
{"ftrapstl",    two(0xF07B, 0x001F), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1178
{"ftraptl",     two(0xF07B, 0x000F), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1179
{"ftrapueql",   two(0xF07B, 0x0009), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1180
{"ftrapugel",   two(0xF07B, 0x000B), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1181
{"ftrapugtl",   two(0xF07B, 0x000A), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1182
{"ftrapulel",   two(0xF07B, 0x000D), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1183
{"ftrapultl",   two(0xF07B, 0x000C), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1184
{"ftrapunl",    two(0xF07B, 0x0008), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
1185
 
1186
{"ftstb",       two(0xF000, 0x583A), two(0xF1C0, 0xFC7F), "Ii;b", mfloat },
1187
{"ftstd",       two(0xF000, 0x543A), two(0xF1C0, 0xFC7F), "Ii;F", mfloat },
1188
{"ftstl",       two(0xF000, 0x403A), two(0xF1C0, 0xFC7F), "Ii;l", mfloat },
1189
{"ftstp",       two(0xF000, 0x4C3A), two(0xF1C0, 0xFC7F), "Ii;p", mfloat },
1190
{"ftsts",       two(0xF000, 0x443A), two(0xF1C0, 0xFC7F), "Ii;f", mfloat },
1191
{"ftstw",       two(0xF000, 0x503A), two(0xF1C0, 0xFC7F), "Ii;w", mfloat },
1192
{"ftstx",       two(0xF000, 0x003A), two(0xF1C0, 0xE07F), "IiF8", mfloat },
1193
{"ftstx",       two(0xF000, 0x483A), two(0xF1C0, 0xFC7F), "Ii;x", mfloat },
1194
 
1195
{"ftwotoxb",    two(0xF000, 0x5811), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
1196
{"ftwotoxd",    two(0xF000, 0x5411), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
1197
{"ftwotoxl",    two(0xF000, 0x4011), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
1198
{"ftwotoxp",    two(0xF000, 0x4C11), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
1199
{"ftwotoxs",    two(0xF000, 0x4411), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
1200
{"ftwotoxw",    two(0xF000, 0x5011), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
1201
{"ftwotoxx",    two(0xF000, 0x0011), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
1202
{"ftwotoxx",    two(0xF000, 0x4811), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
1203
{"ftwotoxx",    two(0xF000, 0x0011), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
1204
 
1205
{"halt",        one(0045310),   one(0177777), "",     m68060 | mcf },
1206
 
1207
{"illegal",     one(0045374),   one(0177777), "",     m68000up },
1208
 
1209
{"jmp",         one(0047300),   one(0177700), "!s", m68000up | mcf },
1210
 
1211
{"jra",         one(0060000),   one(0177400), "Bg", m68000up | mcf },
1212
{"jra",         one(0047300),   one(0177700), "!s", m68000up | mcf },
1213
 
1214
{"jsr",         one(0047200),   one(0177700), "!s", m68000up | mcf },
1215
 
1216
{"jbsr",        one(0060400),   one(0177400), "Bg", m68000up | mcf },
1217
{"jbsr",        one(0047200),   one(0177700), "!s", m68000up | mcf },
1218
 
1219
{"lea",         one(0040700),   one(0170700), "!sAd", m68000up | mcf },
1220
 
1221
{"lpstop",      two(0174000,0000700),two(0177777,0177777),"#w", cpu32|m68060 },
1222
 
1223
{"linkw",       one(0047120),   one(0177770), "As#w", m68000up | mcf },
1224
{"linkl",       one(0044010),   one(0177770), "As#l", m68020up | cpu32 },
1225
{"link",        one(0047120),   one(0177770), "As#W", m68000up | mcf },
1226
{"link",        one(0044010),   one(0177770), "As#l", m68020up | cpu32 },
1227
 
1228
{"lslb",        one(0160410),   one(0170770), "QdDs", m68000up },
1229
{"lslb",        one(0160450),   one(0170770), "DdDs", m68000up },
1230
{"lslw",        one(0160510),   one(0170770), "QdDs", m68000up },
1231
{"lslw",        one(0160550),   one(0170770), "DdDs", m68000up },
1232
{"lslw",        one(0161700),   one(0177700), "~s",   m68000up },
1233
{"lsll",        one(0160610),   one(0170770), "QdDs", m68000up | mcf },
1234
{"lsll",        one(0160650),   one(0170770), "DdDs", m68000up | mcf },
1235
 
1236
{"lsrb",        one(0160010),   one(0170770), "QdDs", m68000up },
1237
{"lsrb",        one(0160050),   one(0170770), "DdDs", m68000up },
1238
{"lsrw",        one(0160110),   one(0170770), "QdDs", m68000up },
1239
{"lsrw",        one(0160150),   one(0170770), "DdDs", m68000up },
1240
{"lsrw",        one(0161300),   one(0177700), "~s",   m68000up },
1241
{"lsrl",        one(0160210),   one(0170770), "QdDs", m68000up | mcf },
1242
{"lsrl",        one(0160250),   one(0170770), "DdDs", m68000up | mcf },
1243
 
1244
  /* FIXME: add MAM mode (`&' after <ea> operand) / remove MACM */
1245
{"macw",  two(0120000, 0000000), two(0170660, 0005400), "uMum", mcf5307 | mcf5206e },
1246
{"macw",  two(0120000, 0001000), two(0170660, 0005400), "uMumMh", mcf5307 | mcf5206e },
1247
{"macw",  two(0120220, 0000000), two(0170670, 0005460), "uNuoasRn", mcf5307 | mcf5206e },
1248
{"macw",  two(0120230, 0000000), two(0170670, 0005460), "uNuo+sRn", mcf5307 | mcf5206e },
1249
{"macw",  two(0120240, 0000000), two(0170670, 0005460), "uNuo-sRn", mcf5307 | mcf5206e },
1250
{"macw",  two(0120250, 0000000), two(0170670, 0005460), "uNuodsRn", mcf5307 | mcf5206e },
1251
{"macw",  two(0120220, 0001000), two(0170670, 0005460), "uNuoMhasRn", mcf5307 | mcf5206e },
1252
{"macw",  two(0120230, 0001000), two(0170670, 0005460), "uNuoMh+sRn", mcf5307 | mcf5206e },
1253
{"macw",  two(0120240, 0001000), two(0170670, 0005460), "uNuoMh-sRn", mcf5307 | mcf5206e },
1254
{"macw",  two(0120250, 0001000), two(0170670, 0005460), "uNuoMhdsRn", mcf5307 | mcf5206e },
1255
{"macmw", two(0120220, 0000040), two(0170670, 0005460), "uNuoasRn", mcf5307 | mcf5206e },
1256
{"macmw", two(0120230, 0000040), two(0170670, 0005460), "uNuo+sRn", mcf5307 | mcf5206e },
1257
{"macmw", two(0120240, 0000040), two(0170670, 0005460), "uNuo-sRn", mcf5307 | mcf5206e },
1258
{"macmw", two(0120250, 0000040), two(0170670, 0005460), "uNuodsRn", mcf5307 | mcf5206e },
1259
{"macmw", two(0120220, 0001040), two(0170670, 0005460), "uNuoMhasRn", mcf5307 | mcf5206e },
1260
{"macmw", two(0120230, 0001040), two(0170670, 0005460), "uNuoMh+sRn", mcf5307 | mcf5206e },
1261
{"macmw", two(0120240, 0001040), two(0170670, 0005460), "uNuoMh-sRn", mcf5307 | mcf5206e },
1262
{"macmw", two(0120250, 0001040), two(0170670, 0005460), "uNuoMhdsRn", mcf5307 | mcf5206e },
1263
 
1264
{"macl",  two(0120000, 0004000), two(0170660, 0005400), "RsRm", mcf5307 | mcf5206e },
1265
{"macl",  two(0120000, 0005000), two(0170660, 0005400), "RsRmMh", mcf5307 | mcf5206e },
1266
{"macl",  two(0120220, 0004000), two(0170670, 0005460), "R3R1asRn", mcf5307 | mcf5206e },
1267
{"macl",  two(0120230, 0004000), two(0170670, 0005460), "R3R1+sRn", mcf5307 | mcf5206e },
1268
{"macl",  two(0120240, 0004000), two(0170670, 0005460), "R3R1-sRn", mcf5307 | mcf5206e },
1269
{"macl",  two(0120250, 0004000), two(0170670, 0005460), "R3R1dsRn", mcf5307 | mcf5206e },
1270
{"macl",  two(0120220, 0005000), two(0170670, 0005460), "R3R1MhasRn", mcf5307 | mcf5206e },
1271
{"macl",  two(0120230, 0005000), two(0170670, 0005460), "R3R1Mh+sRn", mcf5307 | mcf5206e },
1272
{"macl",  two(0120240, 0005000), two(0170670, 0005460), "R3R1Mh-sRn", mcf5307 | mcf5206e },
1273
{"macl",  two(0120250, 0005000), two(0170670, 0005460), "R3R1MhdsRn", mcf5307 | mcf5206e },
1274
{"macml", two(0120220, 0004040), two(0170670, 0005460), "R3R1asRn", mcf5307 | mcf5206e },
1275
{"macml", two(0120230, 0004040), two(0170670, 0005460), "R3R1+sRn", mcf5307 | mcf5206e },
1276
{"macml", two(0120240, 0004040), two(0170670, 0005460), "R3R1-sRn", mcf5307 | mcf5206e },
1277
{"macml", two(0120250, 0004040), two(0170670, 0005460), "R3R1dsRn", mcf5307 | mcf5206e },
1278
{"macml", two(0120220, 0005040), two(0170670, 0005460), "R3R1MhasRn", mcf5307 | mcf5206e },
1279
{"macml", two(0120230, 0005040), two(0170670, 0005460), "R3R1Mh+sRn", mcf5307 | mcf5206e },
1280
{"macml", two(0120240, 0005040), two(0170670, 0005460), "R3R1Mh-sRn", mcf5307 | mcf5206e },
1281
{"macml", two(0120250, 0005040), two(0170670, 0005460), "R3R1MhdsRn", mcf5307 | mcf5206e },
1282
 
1283
/* NOTE: The mcf5200 family programmer's reference manual does not
1284
   indicate the byte form of the movea instruction is invalid (as it
1285
   is on 68000 family cpus).  However, experiments on the 5202 yeild
1286
   unexpected results.  The value is copied, but it is not sign extended
1287
   (as is done with movea.w) and the top three bytes in the address
1288
   register are not disturbed.  I don't know if this is the intended
1289
   behavior --- it could be a hole in instruction decoding (Motorola
1290
   decided not to trap all invalid instructions for performance reasons)
1291
   --- but I suspect that it is not.
1292
 
1293
   I reported this to Motorola ISD Technical Communications Support,
1294
   which replied that other coldfire assemblers reject movea.b.  For
1295
   this reason I've decided to not allow moveab.
1296
 
1297
        jtc@cygnus.com - 97/01/24
1298
 */
1299
 
1300
{"moveal",      one(0020100),   one(0170700), "*lAd", m68000up | mcf },
1301
{"moveaw",      one(0030100),   one(0170700), "*wAd", m68000up | mcf },
1302
 
1303
{"movec",       one(0047173),   one(0177777), "R1Jj", m68010up | mcf },
1304
{"movec",       one(0047173),   one(0177777), "R1#j", m68010up | mcf },
1305
{"movec",       one(0047172),   one(0177777), "JjR1", m68010up },
1306
{"movec",       one(0047172),   one(0177777), "#jR1", m68010up },
1307
 
1308
{"movemw",      one(0044200),   one(0177700), "Lw&s", m68000up },
1309
{"movemw",      one(0044240),   one(0177770), "lw-s", m68000up },
1310
{"movemw",      one(0044200),   one(0177700), "#w>s", m68000up },
1311
{"movemw",      one(0046200),   one(0177700), "<sLw", m68000up },
1312
{"movemw",      one(0046200),   one(0177700), "<s#w", m68000up },
1313
{"moveml",      one(0044300),   one(0177700), "Lw&s", m68000up },
1314
{"moveml",      one(0044340),   one(0177770), "lw-s", m68000up },
1315
{"moveml",      one(0044300),   one(0177700), "#w>s", m68000up },
1316
{"moveml",      one(0046300),   one(0177700), "<sLw", m68000up },
1317
{"moveml",      one(0046300),   one(0177700), "<s#w", m68000up },
1318
/* FIXME: need specifier for mode 2 and 5 to simplify below insn patterns */
1319
{"moveml",      one(0044320),   one(0177770), "Lwas", mcf },
1320
{"moveml",      one(0044320),   one(0177770), "#was", mcf },
1321
{"moveml",      one(0044350),   one(0177770), "Lwds", mcf },
1322
{"moveml",      one(0044350),   one(0177770), "#wds", mcf },
1323
{"moveml",      one(0046320),   one(0177770), "asLw", mcf },
1324
{"moveml",      one(0046320),   one(0177770), "as#w", mcf },
1325
{"moveml",      one(0046350),   one(0177770), "dsLw", mcf },
1326
{"moveml",      one(0046350),   one(0177770), "ds#w", mcf },
1327
 
1328
{"movepw",      one(0000410),   one(0170770), "dsDd", m68000up },
1329
{"movepw",      one(0000610),   one(0170770), "Ddds", m68000up },
1330
{"movepl",      one(0000510),   one(0170770), "dsDd", m68000up },
1331
{"movepl",      one(0000710),   one(0170770), "Ddds", m68000up },
1332
 
1333
{"moveq",       one(0070000),   one(0170400), "MsDd", m68000up | mcf },
1334
{"moveq",       one(0070000),   one(0170400), "#BDd", m68000up | mcf },
1335
 
1336
/* The move opcode can generate the movea and moveq instructions.  */
1337
{"moveb",       one(0010000),   one(0170000), ";b$d", m68000up },
1338
{"moveb",       one(0010000),   one(0170000), "ms%d", mcf },
1339
{"moveb",       one(0010000),   one(0170000), "nspd", mcf },
1340
{"moveb",       one(0010000),   one(0170000), "obmd", mcf },
1341
 
1342
{"movew",       one(0030000),   one(0170000), "*w%d", m68000up },
1343
{"movew",       one(0030000),   one(0170000), "ms%d", mcf },
1344
{"movew",       one(0030000),   one(0170000), "nspd", mcf },
1345
{"movew",       one(0030000),   one(0170000), "owmd", mcf },
1346
{"movew",       one(0040300),   one(0177700), "Ss$s", m68000up },
1347
{"movew",       one(0040300),   one(0177770), "SsDs", mcf },
1348
{"movew",       one(0041300),   one(0177700), "Cs$s", m68010up },
1349
{"movew",       one(0041300),   one(0177770), "CsDs", mcf },
1350
{"movew",       one(0042300),   one(0177700), ";wCd", m68000up },
1351
{"movew",       one(0042300),   one(0177700), "DsCd", mcf },
1352
{"movew",       one(0042374),   one(0177777), "#wCd", mcf },
1353
{"movew",       one(0043300),   one(0177700), ";wSd", m68000up },
1354
{"movew",       one(0043300),   one(0177700), "DsSd", mcf },
1355
{"movew",       one(0043374),   one(0177777), "#wSd", mcf },
1356
 
1357
{"movel",       one(0070000),   one(0170400), "MsDd", m68000up | mcf },
1358
{"movel",       one(0020000),   one(0170000), "*l%d", m68000up },
1359
{"movel",       one(0020000),   one(0170000), "ms%d", mcf },
1360
{"movel",       one(0020000),   one(0170000), "nspd", mcf },
1361
{"movel",       one(0020000),   one(0170000), "olmd", mcf },
1362
{"movel",       one(0047140),   one(0177770), "AsUd", m68000up },
1363
{"movel",       one(0047150),   one(0177770), "UdAs", m68000up },
1364
{"movel",       one(0120600),   one(0177760), "EsRs", mcf5307 | mcf5206e },
1365
{"movel",       one(0120400),   one(0177760), "RsEs", mcf5307 | mcf5206e },
1366
{"movel",       one(0120474),   one(0177777), "#lEs", mcf5307 | mcf5206e },
1367
{"movel",       one(0124600),   one(0177760), "GsRs", mcf5307 | mcf5206e },
1368
{"movel",       one(0124400),   one(0177760), "RsGs", mcf5307 | mcf5206e },
1369
{"movel",       one(0124474),   one(0177777), "#lGs", mcf5307 | mcf5206e },
1370
{"movel",       one(0126600),   one(0177760), "HsRs", mcf5307 | mcf5206e },
1371
{"movel",       one(0126400),   one(0177760), "RsHs", mcf5307 | mcf5206e },
1372
{"movel",       one(0126474),   one(0177777), "#lHs", mcf5307 | mcf5206e },
1373
{"movel",       one(0124700),   one(0177777), "GsCs", mcf5307 | mcf5206e },
1374
 
1375
{"move",        one(0030000),   one(0170000), "*w%d", m68000up },
1376
{"move",        one(0030000),   one(0170000), "ms%d", mcf },
1377
{"move",        one(0030000),   one(0170000), "nspd", mcf },
1378
{"move",        one(0030000),   one(0170000), "owmd", mcf },
1379
{"move",        one(0040300),   one(0177700), "Ss$s", m68000up },
1380
{"move",        one(0040300),   one(0177770), "SsDs", mcf },
1381
{"move",        one(0041300),   one(0177700), "Cs$s", m68010up },
1382
{"move",        one(0041300),   one(0177770), "CsDs", mcf },
1383
{"move",        one(0042300),   one(0177700), ";wCd", m68000up },
1384
{"move",        one(0042300),   one(0177700), "DsCd", mcf },
1385
{"move",        one(0042374),   one(0177777), "#wCd", mcf },
1386
{"move",        one(0043300),   one(0177700), ";wSd", m68000up },
1387
{"move",        one(0043300),   one(0177700), "DsSd", mcf },
1388
{"move",        one(0043374),   one(0177777), "#wSd", mcf },
1389
 
1390
{"move",        one(0047140),   one(0177770), "AsUd", m68000up },
1391
{"move",        one(0047150),   one(0177770), "UdAs", m68000up },
1392
 
1393
{"movesb",      two(0007000, 0),     two(0177700, 07777), "~sR1", m68010up },
1394
{"movesb",      two(0007000, 04000), two(0177700, 07777), "R1~s", m68010up },
1395
{"movesw",      two(0007100, 0),     two(0177700, 07777), "~sR1", m68010up },
1396
{"movesw",      two(0007100, 04000), two(0177700, 07777), "R1~s", m68010up },
1397
{"movesl",      two(0007200, 0),     two(0177700, 07777), "~sR1", m68010up },
1398
{"movesl",      two(0007200, 04000), two(0177700, 07777), "R1~s", m68010up },
1399
 
1400
{"move16",      two(0xf620, 0x8000), two(0xfff8, 0x8fff), "+s+1", m68040up },
1401
{"move16",      one(0xf600),            one(0xfff8), "+s_L", m68040up },
1402
{"move16",      one(0xf608),            one(0xfff8), "_L+s", m68040up },
1403
{"move16",      one(0xf610),            one(0xfff8), "as_L", m68040up },
1404
{"move16",      one(0xf618),            one(0xfff8), "_Las", m68040up },
1405
 
1406
  /* FIXME: add MAM mode (`&' after <ea> operand) / remove MSACM */
1407
{"msacw",  two(0120000, 0000400), two(0170660, 0005400), "uMum", mcf5307 | mcf5206e },
1408
{"msacw",  two(0120000, 0001400), two(0170660, 0005400), "uMumMh", mcf5307 | mcf5206e },
1409
{"msacw",  two(0120220, 0000400), two(0170670, 0005460), "uNuoasRn", mcf5307 | mcf5206e },
1410
{"msacw",  two(0120230, 0000400), two(0170670, 0005460), "uNuo+sRn", mcf5307 | mcf5206e },
1411
{"msacw",  two(0120240, 0000400), two(0170670, 0005460), "uNuo-sRn", mcf5307 | mcf5206e },
1412
{"msacw",  two(0120250, 0000400), two(0170670, 0005460), "uNuodsRn", mcf5307 | mcf5206e },
1413
{"msacw",  two(0120220, 0001400), two(0170670, 0005460), "uNuoMhasRn", mcf5307 | mcf5206e },
1414
{"msacw",  two(0120230, 0001400), two(0170670, 0005460), "uNuoMh+sRn", mcf5307 | mcf5206e },
1415
{"msacw",  two(0120240, 0001400), two(0170670, 0005460), "uNuoMh-sRn", mcf5307 | mcf5206e },
1416
{"msacw",  two(0120250, 0001400), two(0170670, 0005460), "uNuoMhdsRn", mcf5307 | mcf5206e },
1417
{"msacmw", two(0120220, 0000440), two(0170670, 0005460), "uNuoasRn", mcf5307 | mcf5206e },
1418
{"msacmw", two(0120230, 0000440), two(0170670, 0005460), "uNuo+sRn", mcf5307 | mcf5206e },
1419
{"msacmw", two(0120240, 0000440), two(0170670, 0005460), "uNuo-sRn", mcf5307 | mcf5206e },
1420
{"msacmw", two(0120250, 0000440), two(0170670, 0005460), "uNuodsRn", mcf5307 | mcf5206e },
1421
{"msacmw", two(0120220, 0001440), two(0170670, 0005460), "uNuoMhasRn", mcf5307 | mcf5206e },
1422
{"msacmw", two(0120230, 0001440), two(0170670, 0005460), "uNuoMh+sRn", mcf5307 | mcf5206e },
1423
{"msacmw", two(0120240, 0001440), two(0170670, 0005460), "uNuoMh-sRn", mcf5307 | mcf5206e },
1424
{"msacmw", two(0120250, 0001440), two(0170670, 0005460), "uNuoMhdsRn", mcf5307 | mcf5206e },
1425
 
1426
{"msacl",  two(0120000, 0004400), two(0170660, 0005400), "RsRm", mcf5307 | mcf5206e },
1427
{"msacl",  two(0120000, 0005400), two(0170660, 0005400), "RsRmMh", mcf5307 | mcf5206e },
1428
{"msacl",  two(0120220, 0004400), two(0170670, 0005460), "R3R1asRn", mcf5307 | mcf5206e },
1429
{"msacl",  two(0120230, 0004400), two(0170670, 0005460), "R3R1+sRn", mcf5307 | mcf5206e },
1430
{"msacl",  two(0120240, 0004400), two(0170670, 0005460), "R3R1-sRn", mcf5307 | mcf5206e },
1431
{"msacl",  two(0120250, 0004400), two(0170670, 0005460), "R3R1dsRn", mcf5307 | mcf5206e },
1432
{"msacl",  two(0120220, 0005400), two(0170670, 0005460), "R3R1MhasRn", mcf5307 | mcf5206e },
1433
{"msacl",  two(0120230, 0005400), two(0170670, 0005460), "R3R1Mh+sRn", mcf5307 | mcf5206e },
1434
{"msacl",  two(0120240, 0005400), two(0170670, 0005460), "R3R1Mh-sRn", mcf5307 | mcf5206e },
1435
{"msacl",  two(0120250, 0005400), two(0170670, 0005460), "R3R1MhdsRn", mcf5307 | mcf5206e },
1436
{"msacml", two(0120220, 0004440), two(0170670, 0005460), "R3R1asRn", mcf5307 | mcf5206e },
1437
{"msacml", two(0120230, 0004440), two(0170670, 0005460), "R3R1+sRn", mcf5307 | mcf5206e },
1438
{"msacml", two(0120240, 0004440), two(0170670, 0005460), "R3R1-sRn", mcf5307 | mcf5206e },
1439
{"msacml", two(0120250, 0004440), two(0170670, 0005460), "R3R1dsRn", mcf5307 | mcf5206e },
1440
{"msacml", two(0120220, 0005440), two(0170670, 0005460), "R3R1MhasRn", mcf5307 | mcf5206e },
1441
{"msacml", two(0120230, 0005440), two(0170670, 0005460), "R3R1Mh+sRn", mcf5307 | mcf5206e },
1442
{"msacml", two(0120240, 0005440), two(0170670, 0005460), "R3R1Mh-sRn", mcf5307 | mcf5206e },
1443
{"msacml", two(0120250, 0005440), two(0170670, 0005460), "R3R1MhdsRn", mcf5307 | mcf5206e },
1444
 
1445
{"mulsw",       one(0140700),           one(0170700), ";wDd", m68000up|mcf },
1446
{"mulsl",       two(0046000,004000), two(0177700,0107770), ";lD1", m68020up|cpu32 },
1447
{"mulsl",       two(0046000,004000), two(0177700,0107770), "qsD1", mcf },
1448
{"mulsl",       two(0046000,006000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
1449
 
1450
{"muluw",       one(0140300),           one(0170700), ";wDd", m68000up|mcf },
1451
{"mulul",       two(0046000,000000), two(0177700,0107770), ";lD1", m68020up|cpu32 },
1452
{"mulul",       two(0046000,000000), two(0177700,0107770), "qsD1", mcf },
1453
{"mulul",       two(0046000,002000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
1454
 
1455
{"nbcd",        one(0044000),   one(0177700), "$s", m68000up },
1456
 
1457
{"negb",        one(0042000),   one(0177700), "$s", m68000up },
1458
{"negw",        one(0042100),   one(0177700), "$s", m68000up },
1459
{"negl",        one(0042200),   one(0177700), "$s", m68000up },
1460
{"negl",        one(0042200),   one(0177700), "Ds", mcf},
1461
 
1462
{"negxb",       one(0040000),   one(0177700), "$s", m68000up },
1463
{"negxw",       one(0040100),   one(0177700), "$s", m68000up },
1464
{"negxl",       one(0040200),   one(0177700), "$s", m68000up },
1465
{"negxl",       one(0040200),   one(0177700), "Ds", mcf},
1466
 
1467
{"nop",         one(0047161),   one(0177777), "", m68000up | mcf},
1468
 
1469
{"notb",        one(0043000),   one(0177700), "$s", m68000up },
1470
{"notw",        one(0043100),   one(0177700), "$s", m68000up },
1471
{"notl",        one(0043200),   one(0177700), "$s", m68000up },
1472
{"notl",        one(0043200),   one(0177700), "Ds", mcf},
1473
 
1474
{"orib",        one(0000000),   one(0177700), "#b$s", m68000up },
1475
{"orib",        one(0000074),   one(0177777), "#bCs", m68000up },
1476
{"oriw",        one(0000100),   one(0177700), "#w$s", m68000up },
1477
{"oriw",        one(0000174),   one(0177777), "#wSs", m68000up },
1478
{"oril",        one(0000200),   one(0177700), "#l$s", m68000up },
1479
{"oril",        one(0000200),   one(0177700), "#lDs", mcf },
1480
{"ori",         one(0000074),   one(0177777), "#bCs", m68000up },
1481
{"ori",         one(0000100),   one(0177700), "#w$s", m68000up },
1482
{"ori",         one(0000174),   one(0177777), "#wSs", m68000up },
1483
 
1484
/* The or opcode can generate the ori instruction.  */
1485
{"orb",         one(0000000),   one(0177700), "#b$s", m68000up },
1486
{"orb",         one(0000074),   one(0177777), "#bCs", m68000up },
1487
{"orb",         one(0100000),   one(0170700), ";bDd", m68000up },
1488
{"orb",         one(0100400),   one(0170700), "Dd~s", m68000up },
1489
{"orw",         one(0000100),   one(0177700), "#w$s", m68000up },
1490
{"orw",         one(0000174),   one(0177777), "#wSs", m68000up },
1491
{"orw",         one(0100100),   one(0170700), ";wDd", m68000up },
1492
{"orw",         one(0100500),   one(0170700), "Dd~s", m68000up },
1493
{"orl",         one(0000200),   one(0177700), "#l$s", m68000up },
1494
{"orl",         one(0000200),   one(0177700), "#lDs", mcf },
1495
{"orl",         one(0100200),   one(0170700), ";lDd", m68000up | mcf },
1496
{"orl",         one(0100600),   one(0170700), "Dd~s", m68000up | mcf },
1497
{"or",          one(0000074),   one(0177777), "#bCs", m68000up },
1498
{"or",          one(0000100),   one(0177700), "#w$s", m68000up },
1499
{"or",          one(0000174),   one(0177777), "#wSs", m68000up },
1500
{"or",          one(0100100),   one(0170700), ";wDd", m68000up },
1501
{"or",          one(0100500),   one(0170700), "Dd~s", m68000up },
1502
 
1503
{"pack",        one(0100500),   one(0170770), "DsDd#w", m68020up },
1504
{"pack",        one(0100510),   one(0170770), "-s-d#w", m68020up },
1505
 
1506
{"pbac",        one(0xf087),            one(0xffbf), "Bc", m68851 },
1507
{"pbacw",       one(0xf087),            one(0xffff), "BW", m68851 },
1508
{"pbas",        one(0xf086),            one(0xffbf), "Bc", m68851 },
1509
{"pbasw",       one(0xf086),            one(0xffff), "BW", m68851 },
1510
{"pbbc",        one(0xf081),            one(0xffbf), "Bc", m68851 },
1511
{"pbbcw",       one(0xf081),            one(0xffff), "BW", m68851 },
1512
{"pbbs",        one(0xf080),            one(0xffbf), "Bc", m68851 },
1513
{"pbbsw",       one(0xf080),            one(0xffff), "BW", m68851 },
1514
{"pbcc",        one(0xf08f),            one(0xffbf), "Bc", m68851 },
1515
{"pbccw",       one(0xf08f),            one(0xffff), "BW", m68851 },
1516
{"pbcs",        one(0xf08e),            one(0xffbf), "Bc", m68851 },
1517
{"pbcsw",       one(0xf08e),            one(0xffff), "BW", m68851 },
1518
{"pbgc",        one(0xf08d),            one(0xffbf), "Bc", m68851 },
1519
{"pbgcw",       one(0xf08d),            one(0xffff), "BW", m68851 },
1520
{"pbgs",        one(0xf08c),            one(0xffbf), "Bc", m68851 },
1521
{"pbgsw",       one(0xf08c),            one(0xffff), "BW", m68851 },
1522
{"pbic",        one(0xf08b),            one(0xffbf), "Bc", m68851 },
1523
{"pbicw",       one(0xf08b),            one(0xffff), "BW", m68851 },
1524
{"pbis",        one(0xf08a),            one(0xffbf), "Bc", m68851 },
1525
{"pbisw",       one(0xf08a),            one(0xffff), "BW", m68851 },
1526
{"pblc",        one(0xf083),            one(0xffbf), "Bc", m68851 },
1527
{"pblcw",       one(0xf083),            one(0xffff), "BW", m68851 },
1528
{"pbls",        one(0xf082),            one(0xffbf), "Bc", m68851 },
1529
{"pblsw",       one(0xf082),            one(0xffff), "BW", m68851 },
1530
{"pbsc",        one(0xf085),            one(0xffbf), "Bc", m68851 },
1531
{"pbscw",       one(0xf085),            one(0xffff), "BW", m68851 },
1532
{"pbss",        one(0xf084),            one(0xffbf), "Bc", m68851 },
1533
{"pbssw",       one(0xf084),            one(0xffff), "BW", m68851 },
1534
{"pbwc",        one(0xf089),            one(0xffbf), "Bc", m68851 },
1535
{"pbwcw",       one(0xf089),            one(0xffff), "BW", m68851 },
1536
{"pbws",        one(0xf088),            one(0xffbf), "Bc", m68851 },
1537
{"pbwsw",       one(0xf088),            one(0xffff), "BW", m68851 },
1538
 
1539
{"pdbac",       two(0xf048, 0x0007),    two(0xfff8, 0xffff), "DsBw", m68851 },
1540
{"pdbas",       two(0xf048, 0x0006),    two(0xfff8, 0xffff), "DsBw", m68851 },
1541
{"pdbbc",       two(0xf048, 0x0001),    two(0xfff8, 0xffff), "DsBw", m68851 },
1542
{"pdbbs",       two(0xf048, 0x0000),    two(0xfff8, 0xffff), "DsBw", m68851 },
1543
{"pdbcc",       two(0xf048, 0x000f),    two(0xfff8, 0xffff), "DsBw", m68851 },
1544
{"pdbcs",       two(0xf048, 0x000e),    two(0xfff8, 0xffff), "DsBw", m68851 },
1545
{"pdbgc",       two(0xf048, 0x000d),    two(0xfff8, 0xffff), "DsBw", m68851 },
1546
{"pdbgs",       two(0xf048, 0x000c),    two(0xfff8, 0xffff), "DsBw", m68851 },
1547
{"pdbic",       two(0xf048, 0x000b),    two(0xfff8, 0xffff), "DsBw", m68851 },
1548
{"pdbis",       two(0xf048, 0x000a),    two(0xfff8, 0xffff), "DsBw", m68851 },
1549
{"pdblc",       two(0xf048, 0x0003),    two(0xfff8, 0xffff), "DsBw", m68851 },
1550
{"pdbls",       two(0xf048, 0x0002),    two(0xfff8, 0xffff), "DsBw", m68851 },
1551
{"pdbsc",       two(0xf048, 0x0005),    two(0xfff8, 0xffff), "DsBw", m68851 },
1552
{"pdbss",       two(0xf048, 0x0004),    two(0xfff8, 0xffff), "DsBw", m68851 },
1553
{"pdbwc",       two(0xf048, 0x0009),    two(0xfff8, 0xffff), "DsBw", m68851 },
1554
{"pdbws",       two(0xf048, 0x0008),    two(0xfff8, 0xffff), "DsBw", m68851 },
1555
 
1556
{"pea",         one(0044100),           one(0177700), "!s", m68000up|mcf },
1557
 
1558
{"pflusha",     one(0xf518),            one(0xfff8), "", m68040up },
1559
{"pflusha",     two(0xf000,0x2400), two(0xffff,0xffff), "", m68030 | m68851 },
1560
 
1561
{"pflush",   two(0xf000,0x3010), two(0xffc0,0xfe10), "T3T9", m68030|m68851 },
1562
{"pflush",   two(0xf000,0x3810), two(0xffc0,0xfe10), "T3T9&s", m68030|m68851 },
1563
{"pflush",   two(0xf000,0x3008), two(0xffc0,0xfe18), "D3T9", m68030|m68851 },
1564
{"pflush",   two(0xf000,0x3808), two(0xffc0,0xfe18), "D3T9&s", m68030|m68851 },
1565
{"pflush",   two(0xf000,0x3000), two(0xffc0,0xfe1e), "f3T9", m68030|m68851 },
1566
{"pflush",   two(0xf000,0x3800), two(0xffc0,0xfe1e), "f3T9&s", m68030|m68851 },
1567
{"pflush",      one(0xf508),            one(0xfff8), "as", m68040up },
1568
{"pflush",      one(0xf508),            one(0xfff8), "As", m68040up },
1569
 
1570
{"pflushan",    one(0xf510),            one(0xfff8), "", m68040up },
1571
{"pflushn",     one(0xf500),            one(0xfff8), "as", m68040up },
1572
{"pflushn",     one(0xf500),            one(0xfff8), "As", m68040up },
1573
 
1574
{"pflushr",     two(0xf000, 0xa000), two(0xffc0, 0xffff), "|s", m68851 },
1575
 
1576
{"pflushs",     two(0xf000, 0x3410), two(0xfff8, 0xfe10), "T3T9", m68851 },
1577
{"pflushs",     two(0xf000, 0x3c10), two(0xfff8, 0xfe10), "T3T9&s", m68851 },
1578
{"pflushs",     two(0xf000, 0x3408), two(0xfff8, 0xfe18), "D3T9", m68851 },
1579
{"pflushs",     two(0xf000, 0x3c08), two(0xfff8, 0xfe18), "D3T9&s", m68851 },
1580
{"pflushs",     two(0xf000, 0x3400), two(0xfff8, 0xfe1e), "f3T9", m68851 },
1581
{"pflushs",     two(0xf000, 0x3c00), two(0xfff8, 0xfe1e), "f3T9&s", m68851 },
1582
 
1583
{"ploadr",     two(0xf000,0x2210), two(0xffc0,0xfff0), "T3&s", m68030|m68851 },
1584
{"ploadr",     two(0xf000,0x2208), two(0xffc0,0xfff8), "D3&s", m68030|m68851 },
1585
{"ploadr",     two(0xf000,0x2200), two(0xffc0,0xfffe), "f3&s", m68030|m68851 },
1586
{"ploadw",     two(0xf000,0x2010), two(0xffc0,0xfff0), "T3&s", m68030|m68851 },
1587
{"ploadw",     two(0xf000,0x2008), two(0xffc0,0xfff8), "D3&s", m68030|m68851 },
1588
{"ploadw",     two(0xf000,0x2000), two(0xffc0,0xfffe), "f3&s", m68030|m68851 },
1589
 
1590
{"plpar",       one(0xf5c8),            one(0xfff8), "as", m68060 },
1591
{"plpaw",       one(0xf588),            one(0xfff8), "as", m68060 },
1592
 
1593
{"pmove",      two(0xf000,0x4000), two(0xffc0,0xffff), "*l08", m68030|m68851 },
1594
{"pmove",      two(0xf000,0x5c00), two(0xffc0,0xffff), "*w18", m68851 },
1595
{"pmove",      two(0xf000,0x4000), two(0xffc0,0xe3ff), "*b28", m68851 },
1596
{"pmove",      two(0xf000,0x4200), two(0xffc0,0xffff), "08%s", m68030|m68851 },
1597
{"pmove",      two(0xf000,0x5e00), two(0xffc0,0xffff), "18%s", m68851 },
1598
{"pmove",      two(0xf000,0x4200), two(0xffc0,0xe3ff), "28%s", m68851 },
1599
{"pmove",      two(0xf000,0x4000), two(0xffc0,0xe3ff), "|sW8", m68030|m68851 },
1600
{"pmove",      two(0xf000,0x4200), two(0xffc0,0xe3ff), "W8~s", m68030|m68851 },
1601
{"pmove",      two(0xf000,0x6200), two(0xffc0,0xe3e3), "*wX3", m68851 },
1602
{"pmove",      two(0xf000,0x6000), two(0xffc0,0xe3e3), "X3%s", m68851 },
1603
{"pmove",      two(0xf000,0x6000), two(0xffc0,0xffff), "*wY8", m68030|m68851 },
1604
{"pmove",      two(0xf000,0x6200), two(0xffc0,0xffff), "Y8%s", m68030|m68851 },
1605
{"pmove",      two(0xf000,0x6600), two(0xffc0,0xffff), "Z8%s", m68851 },
1606
{"pmove",      two(0xf000,0x0800), two(0xffc0,0xfbff), "*l38", m68030 },
1607
{"pmove",      two(0xf000,0x0a00), two(0xffc0,0xfbff), "38%s", m68030 },
1608
 
1609
{"pmovefd",     two(0xf000, 0x4100),    two(0xffc0, 0xe3ff), "*l08", m68030 },
1610
{"pmovefd",     two(0xf000, 0x4100),    two(0xffc0, 0xe3ff), "|sW8", m68030 },
1611
{"pmovefd",     two(0xf000, 0x0900),    two(0xffc0, 0xfbff), "*l38", m68030 },
1612
 
1613
{"prestore",    one(0xf140),            one(0xffc0), "<s", m68851 },
1614
 
1615
{"psave",       one(0xf100),            one(0xffc0), ">s", m68851 },
1616
 
1617
{"psac",        two(0xf040, 0x0007),    two(0xffc0, 0xffff), "$s", m68851 },
1618
{"psas",        two(0xf040, 0x0006),    two(0xffc0, 0xffff), "$s", m68851 },
1619
{"psbc",        two(0xf040, 0x0001),    two(0xffc0, 0xffff), "$s", m68851 },
1620
{"psbs",        two(0xf040, 0x0000),    two(0xffc0, 0xffff), "$s", m68851 },
1621
{"pscc",        two(0xf040, 0x000f),    two(0xffc0, 0xffff), "$s", m68851 },
1622
{"pscs",        two(0xf040, 0x000e),    two(0xffc0, 0xffff), "$s", m68851 },
1623
{"psgc",        two(0xf040, 0x000d),    two(0xffc0, 0xffff), "$s", m68851 },
1624
{"psgs",        two(0xf040, 0x000c),    two(0xffc0, 0xffff), "$s", m68851 },
1625
{"psic",        two(0xf040, 0x000b),    two(0xffc0, 0xffff), "$s", m68851 },
1626
{"psis",        two(0xf040, 0x000a),    two(0xffc0, 0xffff), "$s", m68851 },
1627
{"pslc",        two(0xf040, 0x0003),    two(0xffc0, 0xffff), "$s", m68851 },
1628
{"psls",        two(0xf040, 0x0002),    two(0xffc0, 0xffff), "$s", m68851 },
1629
{"pssc",        two(0xf040, 0x0005),    two(0xffc0, 0xffff), "$s", m68851 },
1630
{"psss",        two(0xf040, 0x0004),    two(0xffc0, 0xffff), "$s", m68851 },
1631
{"pswc",        two(0xf040, 0x0009),    two(0xffc0, 0xffff), "$s", m68851 },
1632
{"psws",        two(0xf040, 0x0008),    two(0xffc0, 0xffff), "$s", m68851 },
1633
 
1634
{"ptestr", two(0xf000,0x8210), two(0xffc0, 0xe3f0), "T3&st8", m68030|m68851 },
1635
{"ptestr", two(0xf000,0x8310), two(0xffc0,0xe310), "T3&st8A9", m68030|m68851 },
1636
{"ptestr", two(0xf000,0x8208), two(0xffc0,0xe3f8), "D3&st8", m68030|m68851 },
1637
{"ptestr", two(0xf000,0x8308), two(0xffc0,0xe318), "D3&st8A9", m68030|m68851 },
1638
{"ptestr", two(0xf000,0x8200), two(0xffc0,0xe3fe), "f3&st8", m68030|m68851 },
1639
{"ptestr", two(0xf000,0x8300), two(0xffc0,0xe31e), "f3&st8A9", m68030|m68851 },
1640
{"ptestr",      one(0xf568),            one(0xfff8), "as", m68040 },
1641
 
1642
{"ptestw", two(0xf000,0x8010), two(0xffc0,0xe3f0), "T3&st8", m68030|m68851 },
1643
{"ptestw", two(0xf000,0x8110), two(0xffc0,0xe310), "T3&st8A9", m68030|m68851 },
1644
{"ptestw", two(0xf000,0x8008), two(0xffc0,0xe3f8), "D3&st8", m68030|m68851 },
1645
{"ptestw", two(0xf000,0x8108), two(0xffc0,0xe318), "D3&st8A9", m68030|m68851 },
1646
{"ptestw", two(0xf000,0x8000), two(0xffc0,0xe3fe), "f3&st8", m68030|m68851 },
1647
{"ptestw", two(0xf000,0x8100), two(0xffc0,0xe31e), "f3&st8A9", m68030|m68851 },
1648
{"ptestw",      one(0xf548),            one(0xfff8), "as", m68040 },
1649
 
1650
{"ptrapacw",    two(0xf07a, 0x0007),    two(0xffff, 0xffff), "#w", m68851 },
1651
{"ptrapacl",    two(0xf07b, 0x0007),    two(0xffff, 0xffff), "#l", m68851 },
1652
{"ptrapac",     two(0xf07c, 0x0007),    two(0xffff, 0xffff), "",   m68851 },
1653
 
1654
{"ptrapasw",    two(0xf07a, 0x0006),    two(0xffff, 0xffff), "#w", m68851 },
1655
{"ptrapasl",    two(0xf07b, 0x0006),    two(0xffff, 0xffff), "#l", m68851 },
1656
{"ptrapas",     two(0xf07c, 0x0006),    two(0xffff, 0xffff), "",   m68851 },
1657
 
1658
{"ptrapbcw",    two(0xf07a, 0x0001),    two(0xffff, 0xffff), "#w", m68851 },
1659
{"ptrapbcl",    two(0xf07b, 0x0001),    two(0xffff, 0xffff), "#l", m68851 },
1660
{"ptrapbc",     two(0xf07c, 0x0001),    two(0xffff, 0xffff), "",   m68851 },
1661
 
1662
{"ptrapbsw",    two(0xf07a, 0x0000),    two(0xffff, 0xffff), "#w", m68851 },
1663
{"ptrapbsl",    two(0xf07b, 0x0000),    two(0xffff, 0xffff), "#l", m68851 },
1664
{"ptrapbs",     two(0xf07c, 0x0000),    two(0xffff, 0xffff), "",   m68851 },
1665
 
1666
{"ptrapccw",    two(0xf07a, 0x000f),    two(0xffff, 0xffff), "#w", m68851 },
1667
{"ptrapccl",    two(0xf07b, 0x000f),    two(0xffff, 0xffff), "#l", m68851 },
1668
{"ptrapcc",     two(0xf07c, 0x000f),    two(0xffff, 0xffff), "",   m68851 },
1669
 
1670
{"ptrapcsw",    two(0xf07a, 0x000e),    two(0xffff, 0xffff), "#w", m68851 },
1671
{"ptrapcsl",    two(0xf07b, 0x000e),    two(0xffff, 0xffff), "#l", m68851 },
1672
{"ptrapcs",     two(0xf07c, 0x000e),    two(0xffff, 0xffff), "",   m68851 },
1673
 
1674
{"ptrapgcw",    two(0xf07a, 0x000d),    two(0xffff, 0xffff), "#w", m68851 },
1675
{"ptrapgcl",    two(0xf07b, 0x000d),    two(0xffff, 0xffff), "#l", m68851 },
1676
{"ptrapgc",     two(0xf07c, 0x000d),    two(0xffff, 0xffff), "",   m68851 },
1677
 
1678
{"ptrapgsw",    two(0xf07a, 0x000c),    two(0xffff, 0xffff), "#w", m68851 },
1679
{"ptrapgsl",    two(0xf07b, 0x000c),    two(0xffff, 0xffff), "#l", m68851 },
1680
{"ptrapgs",     two(0xf07c, 0x000c),    two(0xffff, 0xffff), "",   m68851 },
1681
 
1682
{"ptrapicw",    two(0xf07a, 0x000b),    two(0xffff, 0xffff), "#w", m68851 },
1683
{"ptrapicl",    two(0xf07b, 0x000b),    two(0xffff, 0xffff), "#l", m68851 },
1684
{"ptrapic",     two(0xf07c, 0x000b),    two(0xffff, 0xffff), "",   m68851 },
1685
 
1686
{"ptrapisw",    two(0xf07a, 0x000a),    two(0xffff, 0xffff), "#w", m68851 },
1687
{"ptrapisl",    two(0xf07b, 0x000a),    two(0xffff, 0xffff), "#l", m68851 },
1688
{"ptrapis",     two(0xf07c, 0x000a),    two(0xffff, 0xffff), "",   m68851 },
1689
 
1690
{"ptraplcw",    two(0xf07a, 0x0003),    two(0xffff, 0xffff), "#w", m68851 },
1691
{"ptraplcl",    two(0xf07b, 0x0003),    two(0xffff, 0xffff), "#l", m68851 },
1692
{"ptraplc",     two(0xf07c, 0x0003),    two(0xffff, 0xffff), "",   m68851 },
1693
 
1694
{"ptraplsw",    two(0xf07a, 0x0002),    two(0xffff, 0xffff), "#w", m68851 },
1695
{"ptraplsl",    two(0xf07b, 0x0002),    two(0xffff, 0xffff), "#l", m68851 },
1696
{"ptrapls",     two(0xf07c, 0x0002),    two(0xffff, 0xffff), "",   m68851 },
1697
 
1698
{"ptrapscw",    two(0xf07a, 0x0005),    two(0xffff, 0xffff), "#w", m68851 },
1699
{"ptrapscl",    two(0xf07b, 0x0005),    two(0xffff, 0xffff), "#l", m68851 },
1700
{"ptrapsc",     two(0xf07c, 0x0005),    two(0xffff, 0xffff), "",   m68851 },
1701
 
1702
{"ptrapssw",    two(0xf07a, 0x0004),    two(0xffff, 0xffff), "#w", m68851 },
1703
{"ptrapssl",    two(0xf07b, 0x0004),    two(0xffff, 0xffff), "#l", m68851 },
1704
{"ptrapss",     two(0xf07c, 0x0004),    two(0xffff, 0xffff), "",   m68851 },
1705
 
1706
{"ptrapwcw",    two(0xf07a, 0x0009),    two(0xffff, 0xffff), "#w", m68851 },
1707
{"ptrapwcl",    two(0xf07b, 0x0009),    two(0xffff, 0xffff), "#l", m68851 },
1708
{"ptrapwc",     two(0xf07c, 0x0009),    two(0xffff, 0xffff), "",   m68851 },
1709
 
1710
{"ptrapwsw",    two(0xf07a, 0x0008),    two(0xffff, 0xffff), "#w", m68851 },
1711
{"ptrapwsl",    two(0xf07b, 0x0008),    two(0xffff, 0xffff), "#l", m68851 },
1712
{"ptrapws",     two(0xf07c, 0x0008),    two(0xffff, 0xffff), "",   m68851 },
1713
 
1714
{"pulse",       one(0045314),           one(0177777), "", m68060 | mcf },
1715
 
1716
{"pvalid",      two(0xf000, 0x2800),    two(0xffc0, 0xffff), "Vs&s", m68851 },
1717
{"pvalid",      two(0xf000, 0x2c00),    two(0xffc0, 0xfff8), "A3&s", m68851 },
1718
 
1719
  /* FIXME: don't allow Dw==Dx. */
1720
{"remsl",       two(0x4c40, 0x0800),    two(0xffc0, 0x8ff8), "vsD3D1", mcf5307 | mcf5206e },
1721
{"remul",       two(0x4c40, 0x0000),    two(0xffc0, 0x8ff8), "vsD3D1", mcf5307 | mcf5206e },
1722
 
1723
{"reset",       one(0047160),           one(0177777), "", m68000up },
1724
 
1725
{"rolb",        one(0160430),           one(0170770), "QdDs", m68000up },
1726
{"rolb",        one(0160470),           one(0170770), "DdDs", m68000up },
1727
{"rolw",        one(0160530),           one(0170770), "QdDs", m68000up },
1728
{"rolw",        one(0160570),           one(0170770), "DdDs", m68000up },
1729
{"rolw",        one(0163700),           one(0177700), "~s",   m68000up },
1730
{"roll",        one(0160630),           one(0170770), "QdDs", m68000up },
1731
{"roll",        one(0160670),           one(0170770), "DdDs", m68000up },
1732
 
1733
{"rorb",        one(0160030),           one(0170770), "QdDs", m68000up },
1734
{"rorb",        one(0160070),           one(0170770), "DdDs", m68000up },
1735
{"rorw",        one(0160130),           one(0170770), "QdDs", m68000up },
1736
{"rorw",        one(0160170),           one(0170770), "DdDs", m68000up },
1737
{"rorw",        one(0163300),           one(0177700), "~s",   m68000up },
1738
{"rorl",        one(0160230),           one(0170770), "QdDs", m68000up },
1739
{"rorl",        one(0160270),           one(0170770), "DdDs", m68000up },
1740
 
1741
{"roxlb",       one(0160420),           one(0170770), "QdDs", m68000up },
1742
{"roxlb",       one(0160460),           one(0170770), "DdDs", m68000up },
1743
{"roxlw",       one(0160520),           one(0170770), "QdDs", m68000up },
1744
{"roxlw",       one(0160560),           one(0170770), "DdDs", m68000up },
1745
{"roxlw",       one(0162700),           one(0177700), "~s",   m68000up },
1746
{"roxll",       one(0160620),           one(0170770), "QdDs", m68000up },
1747
{"roxll",       one(0160660),           one(0170770), "DdDs", m68000up },
1748
 
1749
{"roxrb",       one(0160020),           one(0170770), "QdDs", m68000up },
1750
{"roxrb",       one(0160060),           one(0170770), "DdDs", m68000up },
1751
{"roxrw",       one(0160120),           one(0170770), "QdDs", m68000up },
1752
{"roxrw",       one(0160160),           one(0170770), "DdDs", m68000up },
1753
{"roxrw",       one(0162300),           one(0177700), "~s",   m68000up },
1754
{"roxrl",       one(0160220),           one(0170770), "QdDs", m68000up },
1755
{"roxrl",       one(0160260),           one(0170770), "DdDs", m68000up },
1756
 
1757
{"rtd",         one(0047164),           one(0177777), "#w", m68010up },
1758
 
1759
{"rte",         one(0047163),           one(0177777), "",   m68000up|mcf },
1760
 
1761
{"rtm",         one(0003300),           one(0177760), "Rs", m68020 },
1762
 
1763
{"rtr",         one(0047167),           one(0177777), "",   m68000up },
1764
 
1765
{"rts",         one(0047165),           one(0177777), "",   m68000up|mcf },
1766
 
1767
{"sbcd",        one(0100400),           one(0170770), "DsDd", m68000up },
1768
{"sbcd",        one(0100410),           one(0170770), "-s-d", m68000up },
1769
 
1770
 
1771
{"scc",         one(0052300),   one(0177700), "$s", m68000up },
1772
{"scc",         one(0052300),   one(0177700), "Ds", mcf },
1773
{"scs",         one(0052700),   one(0177700), "$s", m68000up },
1774
{"scs",         one(0052700),   one(0177700), "Ds", mcf },
1775
{"seq",         one(0053700),   one(0177700), "$s", m68000up },
1776
{"seq",         one(0053700),   one(0177700), "Ds", mcf },
1777
{"sf",          one(0050700),   one(0177700), "$s", m68000up },
1778
{"sf",          one(0050700),   one(0177700), "Ds", mcf },
1779
{"sge",         one(0056300),   one(0177700), "$s", m68000up },
1780
{"sge",         one(0056300),   one(0177700), "Ds", mcf },
1781
{"sgt",         one(0057300),   one(0177700), "$s", m68000up },
1782
{"sgt",         one(0057300),   one(0177700), "Ds", mcf },
1783
{"shi",         one(0051300),   one(0177700), "$s", m68000up },
1784
{"shi",         one(0051300),   one(0177700), "Ds", mcf },
1785
{"sle",         one(0057700),   one(0177700), "$s", m68000up },
1786
{"sle",         one(0057700),   one(0177700), "Ds", mcf },
1787
{"sls",         one(0051700),   one(0177700), "$s", m68000up },
1788
{"sls",         one(0051700),   one(0177700), "Ds", mcf },
1789
{"slt",         one(0056700),   one(0177700), "$s", m68000up },
1790
{"slt",         one(0056700),   one(0177700), "Ds", mcf },
1791
{"smi",         one(0055700),   one(0177700), "$s", m68000up },
1792
{"smi",         one(0055700),   one(0177700), "Ds", mcf },
1793
{"sne",         one(0053300),   one(0177700), "$s", m68000up },
1794
{"sne",         one(0053300),   one(0177700), "Ds", mcf },
1795
{"spl",         one(0055300),   one(0177700), "$s", m68000up },
1796
{"spl",         one(0055300),   one(0177700), "Ds", mcf },
1797
{"st",          one(0050300),   one(0177700), "$s", m68000up },
1798
{"st",          one(0050300),   one(0177700), "Ds", mcf },
1799
{"svc",         one(0054300),   one(0177700), "$s", m68000up },
1800
{"svc",         one(0054300),   one(0177700), "Ds", mcf },
1801
{"svs",         one(0054700),   one(0177700), "$s", m68000up },
1802
{"svs",         one(0054700),   one(0177700), "Ds", mcf },
1803
 
1804
{"stop",        one(0047162),   one(0177777), "#w", m68000up | mcf },
1805
 
1806
{"subal",       one(0110700),   one(0170700), "*lAd", m68000up | mcf },
1807
{"subaw",       one(0110300),   one(0170700), "*wAd", m68000up },
1808
 
1809
{"subib",       one(0002000),   one(0177700), "#b$s", m68000up },
1810
{"subiw",       one(0002100),   one(0177700), "#w$s", m68000up },
1811
{"subil",       one(0002200),   one(0177700), "#l$s", m68000up },
1812
{"subil",       one(0002200),   one(0177700), "#lDs", mcf },
1813
 
1814
{"subqb",       one(0050400),   one(0170700), "Qd%s", m68000up },
1815
{"subqw",       one(0050500),   one(0170700), "Qd%s", m68000up },
1816
{"subql",       one(0050600),   one(0170700), "Qd%s", m68000up | mcf },
1817
 
1818
/* The sub opcode can generate the suba, subi, and subq instructions.  */
1819
{"subb",        one(0050400),   one(0170700), "Qd%s", m68000up },
1820
{"subb",        one(0002000),   one(0177700), "#b$s", m68000up },
1821
{"subb",        one(0110000),   one(0170700), ";bDd", m68000up },
1822
{"subb",        one(0110400),   one(0170700), "Dd~s", m68000up },
1823
{"subw",        one(0050500),   one(0170700), "Qd%s", m68000up },
1824
{"subw",        one(0002100),   one(0177700), "#w$s", m68000up },
1825
{"subw",        one(0110300),   one(0170700), "*wAd", m68000up },
1826
{"subw",        one(0110100),   one(0170700), "*wDd", m68000up },
1827
{"subw",        one(0110500),   one(0170700), "Dd~s", m68000up },
1828
{"subl",        one(0050600),   one(0170700), "Qd%s", m68000up | mcf },
1829
{"subl",        one(0002200),   one(0177700), "#l$s", m68000up },
1830
{"subl",        one(0002200),   one(0177700), "#lDs", mcf },
1831
{"subl",        one(0110700),   one(0170700), "*lAd", m68000up | mcf },
1832
{"subl",        one(0110200),   one(0170700), "*lDd", m68000up | mcf },
1833
{"subl",        one(0110600),   one(0170700), "Dd~s", m68000up | mcf },
1834
 
1835
{"subxb",       one(0110400),   one(0170770), "DsDd", m68000up },
1836
{"subxb",       one(0110410),   one(0170770), "-s-d", m68000up },
1837
{"subxw",       one(0110500),   one(0170770), "DsDd", m68000up },
1838
{"subxw",       one(0110510),   one(0170770), "-s-d", m68000up },
1839
{"subxl",       one(0110600),   one(0170770), "DsDd", m68000up | mcf },
1840
{"subxl",       one(0110610),   one(0170770), "-s-d", m68000up },
1841
 
1842
{"swap",        one(0044100),   one(0177770), "Ds", m68000up | mcf },
1843
 
1844
/* swbeg and swbegl are magic constants used on sysV68.  The compiler
1845
   generates them before a switch table.  They tell the debugger and
1846
   disassembler that a switch table follows.  The parameter is the
1847
   number of elements in the table.  swbeg means that the entries in
1848
   the table are word (2 byte) sized, and swbegl means that the
1849
   entries in the table are longword (4 byte) sized.  */
1850
{"swbeg",       one(0045374),   one(0177777), "#w",   m68000up | mcf },
1851
{"swbegl",      one(0045375),   one(0177777), "#l",   m68000up | mcf },
1852
 
1853
{"tas",         one(0045300),           one(0177700), "$s", m68000up },
1854
 
1855
#define TBL1(name,signed,round,size)                                    \
1856
  {name, two(0174000, (signed<<11)|(!round<<10)|(size<<6)|0000400),     \
1857
     two(0177700,0107777), "!sD1", cpu32 },                             \
1858
  {name, two(0174000, (signed<<11)|(!round<<10)|(size<<6)),             \
1859
     two(0177770,0107770), "DsD3D1", cpu32 }
1860
#define TBL(name1, name2, name3, s, r) \
1861
  TBL1(name1, s, r, 0), TBL1(name2, s, r, 1), TBL1(name3, s, r, 2)
1862
TBL("tblsb", "tblsw", "tblsl", 1, 1),
1863
TBL("tblsnb", "tblsnw", "tblsnl", 1, 0),
1864
TBL("tblub", "tbluw", "tblul", 0, 1),
1865
TBL("tblunb", "tblunw", "tblunl", 0, 0),
1866
 
1867
{"trap",        one(0047100),   one(0177760), "Ts", m68000up | mcf },
1868
 
1869
{"trapcc",      one(0052374),   one(0177777), "", m68020up | cpu32 },
1870
{"trapcs",      one(0052774),   one(0177777), "", m68020up | cpu32 },
1871
{"trapeq",      one(0053774),   one(0177777), "", m68020up | cpu32 },
1872
{"trapf",       one(0050774),   one(0177777), "", m68020up | cpu32 | mcf },
1873
{"trapge",      one(0056374),   one(0177777), "", m68020up | cpu32 },
1874
{"trapgt",      one(0057374),   one(0177777), "", m68020up | cpu32 },
1875
{"traphi",      one(0051374),   one(0177777), "", m68020up | cpu32 },
1876
{"traple",      one(0057774),   one(0177777), "", m68020up | cpu32 },
1877
{"trapls",      one(0051774),   one(0177777), "", m68020up | cpu32 },
1878
{"traplt",      one(0056774),   one(0177777), "", m68020up | cpu32 },
1879
{"trapmi",      one(0055774),   one(0177777), "", m68020up | cpu32 },
1880
{"trapne",      one(0053374),   one(0177777), "", m68020up | cpu32 },
1881
{"trappl",      one(0055374),   one(0177777), "", m68020up | cpu32 },
1882
{"trapt",       one(0050374),   one(0177777), "", m68020up | cpu32 },
1883
{"trapvc",      one(0054374),   one(0177777), "", m68020up | cpu32 },
1884
{"trapvs",      one(0054774),   one(0177777), "", m68020up | cpu32 },
1885
 
1886
{"trapccw",     one(0052372),   one(0177777), "#w", m68020up|cpu32 },
1887
{"trapcsw",     one(0052772),   one(0177777), "#w", m68020up|cpu32 },
1888
{"trapeqw",     one(0053772),   one(0177777), "#w", m68020up|cpu32 },
1889
{"trapfw",      one(0050772),   one(0177777), "#w", m68020up|cpu32|mcf},
1890
{"trapgew",     one(0056372),   one(0177777), "#w", m68020up|cpu32 },
1891
{"trapgtw",     one(0057372),   one(0177777), "#w", m68020up|cpu32 },
1892
{"traphiw",     one(0051372),   one(0177777), "#w", m68020up|cpu32 },
1893
{"traplew",     one(0057772),   one(0177777), "#w", m68020up|cpu32 },
1894
{"traplsw",     one(0051772),   one(0177777), "#w", m68020up|cpu32 },
1895
{"trapltw",     one(0056772),   one(0177777), "#w", m68020up|cpu32 },
1896
{"trapmiw",     one(0055772),   one(0177777), "#w", m68020up|cpu32 },
1897
{"trapnew",     one(0053372),   one(0177777), "#w", m68020up|cpu32 },
1898
{"trapplw",     one(0055372),   one(0177777), "#w", m68020up|cpu32 },
1899
{"traptw",      one(0050372),   one(0177777), "#w", m68020up|cpu32 },
1900
{"trapvcw",     one(0054372),   one(0177777), "#w", m68020up|cpu32 },
1901
{"trapvsw",     one(0054772),   one(0177777), "#w", m68020up|cpu32 },
1902
 
1903
{"trapccl",     one(0052373),   one(0177777), "#l", m68020up|cpu32 },
1904
{"trapcsl",     one(0052773),   one(0177777), "#l", m68020up|cpu32 },
1905
{"trapeql",     one(0053773),   one(0177777), "#l", m68020up|cpu32 },
1906
{"trapfl",      one(0050773),   one(0177777), "#l", m68020up|cpu32|mcf},
1907
{"trapgel",     one(0056373),   one(0177777), "#l", m68020up|cpu32 },
1908
{"trapgtl",     one(0057373),   one(0177777), "#l", m68020up|cpu32 },
1909
{"traphil",     one(0051373),   one(0177777), "#l", m68020up|cpu32 },
1910
{"traplel",     one(0057773),   one(0177777), "#l", m68020up|cpu32 },
1911
{"traplsl",     one(0051773),   one(0177777), "#l", m68020up|cpu32 },
1912
{"trapltl",     one(0056773),   one(0177777), "#l", m68020up|cpu32 },
1913
{"trapmil",     one(0055773),   one(0177777), "#l", m68020up|cpu32 },
1914
{"trapnel",     one(0053373),   one(0177777), "#l", m68020up|cpu32 },
1915
{"trappll",     one(0055373),   one(0177777), "#l", m68020up|cpu32 },
1916
{"traptl",      one(0050373),   one(0177777), "#l", m68020up|cpu32 },
1917
{"trapvcl",     one(0054373),   one(0177777), "#l", m68020up|cpu32 },
1918
{"trapvsl",     one(0054773),   one(0177777), "#l", m68020up|cpu32 },
1919
 
1920
{"trapv",       one(0047166),   one(0177777), "", m68000up },
1921
 
1922
{"tstb",        one(0045000),   one(0177700), ";b", m68020up|cpu32|mcf },
1923
{"tstb",        one(0045000),   one(0177700), "$b", m68000up },
1924
{"tstw",        one(0045100),   one(0177700), "*w", m68020up|cpu32|mcf },
1925
{"tstw",        one(0045100),   one(0177700), "$w", m68000up },
1926
{"tstl",        one(0045200),   one(0177700), "*l", m68020up|cpu32|mcf },
1927
{"tstl",        one(0045200),   one(0177700), "$l", m68000up },
1928
 
1929
{"unlk",        one(0047130),   one(0177770), "As", m68000up | mcf },
1930
 
1931
{"unpk",        one(0100600),   one(0170770), "DsDd#w", m68020up },
1932
{"unpk",        one(0100610),   one(0170770), "-s-d#w", m68020up },
1933
 
1934
{"wddatab",     one(0172000),   one(0177700), "~s", mcf },
1935
{"wddataw",     one(0172100),   one(0177700), "~s", mcf },
1936
{"wddatal",     one(0172200),   one(0177700), "~s", mcf },
1937
 
1938
};
1939
 
1940
const int m68k_numopcodes = sizeof m68k_opcodes / sizeof m68k_opcodes[0];
1941
 
1942
/* These aliases used to be in the above table, each one duplicating
1943
   all of the entries for its primary exactly.  This table was
1944
   constructed by mechanical processing of the opcode table, with a
1945
   small number of tweaks done by hand.  There are probably a lot more
1946
   aliases above that could be moved down here, except for very minor
1947
   differences.  */
1948
 
1949
const struct m68k_opcode_alias m68k_opcode_aliases[] =
1950
{
1951
  { "add",      "addw", },
1952
  { "adda",     "addaw", },
1953
  { "addi",     "addiw", },
1954
  { "addq",     "addqw", },
1955
  { "addx",     "addxw", },
1956
  { "asl",      "aslw", },
1957
  { "asr",      "asrw", },
1958
  { "bhi",      "bhiw", },
1959
  { "bls",      "blsw", },
1960
  { "bcc",      "bccw", },
1961
  { "bcs",      "bcsw", },
1962
  { "bne",      "bnew", },
1963
  { "beq",      "beqw", },
1964
  { "bvc",      "bvcw", },
1965
  { "bvs",      "bvsw", },
1966
  { "bpl",      "bplw", },
1967
  { "bmi",      "bmiw", },
1968
  { "bge",      "bgew", },
1969
  { "blt",      "bltw", },
1970
  { "bgt",      "bgtw", },
1971
  { "ble",      "blew", },
1972
  { "bra",      "braw", },
1973
  { "bsr",      "bsrw", },
1974
  { "bhib",     "bhis", },
1975
  { "blsb",     "blss", },
1976
  { "bccb",     "bccs", },
1977
  { "bcsb",     "bcss", },
1978
  { "bneb",     "bnes", },
1979
  { "beqb",     "beqs", },
1980
  { "bvcb",     "bvcs", },
1981
  { "bvsb",     "bvss", },
1982
  { "bplb",     "bpls", },
1983
  { "bmib",     "bmis", },
1984
  { "bgeb",     "bges", },
1985
  { "bltb",     "blts", },
1986
  { "bgtb",     "bgts", },
1987
  { "bleb",     "bles", },
1988
  { "brab",     "bras", },
1989
  { "bsrb",     "bsrs", },
1990
  { "bhs",      "bccw" },
1991
  { "bhss",     "bccs" },
1992
  { "bhsb",     "bccs" },
1993
  { "bhsw",     "bccw" },
1994
  { "bhsl",     "bccl" },
1995
  { "blo",      "bcsw" },
1996
  { "blos",     "bcss" },
1997
  { "blob",     "bcss" },
1998
  { "blow",     "bcsw" },
1999
  { "blol",     "bcsl" },
2000
  { "br",       "braw", },
2001
  { "brs",      "bras", },
2002
  { "brb",      "bras", },
2003
  { "brw",      "braw", },
2004
  { "brl",      "bral", },
2005
  { "jfnlt",    "bcc", },       /* apparently a sun alias */
2006
  { "jfngt",    "ble", },       /* apparently a sun alias */
2007
  { "jfeq",     "beqs", },      /* apparently a sun alias */
2008
  { "bchgb",    "bchg", },
2009
  { "bchgl",    "bchg", },
2010
  { "bclrb",    "bclr", },
2011
  { "bclrl",    "bclr", },
2012
  { "bsetb",    "bset", },
2013
  { "bsetl",    "bset", },
2014
  { "btstb",    "btst", },
2015
  { "btstl",    "btst", },
2016
  { "cas2",     "cas2w", },
2017
  { "cas",      "casw", },
2018
  { "chk2",     "chk2w", },
2019
  { "chk",      "chkw", },
2020
  { "clr",      "clrw", },
2021
  { "cmp2",     "cmp2w", },
2022
  { "cmpa",     "cmpaw", },
2023
  { "cmpi",     "cmpiw", },
2024
  { "cmpm",     "cmpmw", },
2025
  { "cmp",      "cmpw", },
2026
  { "dbccw",    "dbcc", },
2027
  { "dbcsw",    "dbcs", },
2028
  { "dbeqw",    "dbeq", },
2029
  { "dbfw",     "dbf", },
2030
  { "dbgew",    "dbge", },
2031
  { "dbgtw",    "dbgt", },
2032
  { "dbhiw",    "dbhi", },
2033
  { "dblew",    "dble", },
2034
  { "dblsw",    "dbls", },
2035
  { "dbltw",    "dblt", },
2036
  { "dbmiw",    "dbmi", },
2037
  { "dbnew",    "dbne", },
2038
  { "dbplw",    "dbpl", },
2039
  { "dbtw",     "dbt", },
2040
  { "dbvcw",    "dbvc", },
2041
  { "dbvsw",    "dbvs", },
2042
  { "dbhs",     "dbcc", },
2043
  { "dbhsw",    "dbcc", },
2044
  { "dbra",     "dbf", },
2045
  { "dbraw",    "dbf", },
2046
  { "tdivsl",   "divsl", },
2047
  { "divs",     "divsw", },
2048
  { "divu",     "divuw", },
2049
  { "ext",      "extw", },
2050
  { "extbw",    "extw", },
2051
  { "extwl",    "extl", },
2052
  { "fbneq",    "fbne", },
2053
  { "fbsneq",   "fbsne", },
2054
  { "fdbneq",   "fdbne", },
2055
  { "fdbsneq",  "fdbsne", },
2056
  { "fmovecr",  "fmovecrx", },
2057
  { "fmovm",    "fmovem", },
2058
  { "fsneq",    "fsne", },
2059
  { "fssneq",   "fssne", },
2060
  { "ftrapneq", "ftrapne", },
2061
  { "ftrapsneq", "ftrapsne", },
2062
  { "fjneq",    "fjne", },
2063
  { "fjsneq",   "fjsne", },
2064
  { "jmpl",     "jmp", },
2065
  { "jmps",     "jmp", },
2066
  { "jsrl",     "jsr", },
2067
  { "jsrs",     "jsr", },
2068
  { "leal",     "lea", },
2069
  { "lsl",      "lslw", },
2070
  { "lsr",      "lsrw", },
2071
  { "mac",      "macw" },
2072
  { "movea",    "moveaw", },
2073
  { "movem",    "movemw", },
2074
  { "movml",    "moveml", },
2075
  { "movmw",    "movemw", },
2076
  { "movm",     "movemw", },
2077
  { "movep",    "movepw", },
2078
  { "movpw",    "movepw", },
2079
  { "moves",    "movesw" },
2080
  { "muls",     "mulsw", },
2081
  { "mulu",     "muluw", },
2082
  { "msac",     "msacw" },
2083
  { "nbcdb",    "nbcd" },
2084
  { "neg",      "negw", },
2085
  { "negx",     "negxw", },
2086
  { "not",      "notw", },
2087
  { "peal",     "pea", },
2088
  { "rol",      "rolw", },
2089
  { "ror",      "rorw", },
2090
  { "roxl",     "roxlw", },
2091
  { "roxr",     "roxrw", },
2092
  { "sbcdb",    "sbcd", },
2093
  { "sccb",     "scc", },
2094
  { "scsb",     "scs", },
2095
  { "seqb",     "seq", },
2096
  { "sfb",      "sf", },
2097
  { "sgeb",     "sge", },
2098
  { "sgtb",     "sgt", },
2099
  { "shib",     "shi", },
2100
  { "sleb",     "sle", },
2101
  { "slsb",     "sls", },
2102
  { "sltb",     "slt", },
2103
  { "smib",     "smi", },
2104
  { "sneb",     "sne", },
2105
  { "splb",     "spl", },
2106
  { "stb",      "st", },
2107
  { "svcb",     "svc", },
2108
  { "svsb",     "svs", },
2109
  { "sfge",     "sge", },
2110
  { "sfgt",     "sgt", },
2111
  { "sfle",     "sle", },
2112
  { "sflt",     "slt", },
2113
  { "sfneq",    "sne", },
2114
  { "suba",     "subaw", },
2115
  { "subi",     "subiw", },
2116
  { "subq",     "subqw", },
2117
  { "sub",      "subw", },
2118
  { "subx",     "subxw", },
2119
  { "swapw",    "swap", },
2120
  { "tasb",     "tas", },
2121
  { "tpcc",     "trapcc", },
2122
  { "tcc",      "trapcc", },
2123
  { "tst",      "tstw", },
2124
  { "jbra",     "jra", },
2125
  { "jbhi",     "jhi", },
2126
  { "jbls",     "jls", },
2127
  { "jbcc",     "jcc", },
2128
  { "jbcs",     "jcs", },
2129
  { "jbne",     "jne", },
2130
  { "jbeq",     "jeq", },
2131
  { "jbvc",     "jvc", },
2132
  { "jbvs",     "jvs", },
2133
  { "jbpl",     "jpl", },
2134
  { "jbmi",     "jmi", },
2135
  { "jbge",     "jge", },
2136
  { "jblt",     "jlt", },
2137
  { "jbgt",     "jgt", },
2138
  { "jble",     "jle", },
2139
  { "movql",    "moveq", },
2140
  { "moveql",   "moveq", },
2141
  { "movl",     "movel", },
2142
  { "movq",     "moveq", },
2143
  { "moval",    "moveal", },
2144
  { "movaw",    "moveaw", },
2145
  { "movb",     "moveb", },
2146
  { "movc",     "movec", },
2147
  { "movecl",   "movec", },
2148
  { "movpl",    "movepl", },
2149
  { "movw",     "movew", },
2150
  { "movsb",    "movesb", },
2151
  { "movsl",    "movesl", },
2152
  { "movsw",    "movesw", },
2153
 
2154
  { "tdivul",   "divul", },     /* for m68k-svr4 */
2155
  { "fmovb",    "fmoveb", },
2156
  { "fsmovb",   "fsmoveb", },
2157
  { "fdmovb",   "fdmoveb", },
2158
  { "fmovd",    "fmoved", },
2159
  { "fsmovd",   "fsmoved", },
2160
  { "fmovl",    "fmovel", },
2161
  { "fsmovl",   "fsmovel", },
2162
  { "fdmovl",   "fdmovel", },
2163
  { "fmovp",    "fmovep", },
2164
  { "fsmovp",   "fsmovep", },
2165
  { "fdmovp",   "fdmovep", },
2166
  { "fmovs",    "fmoves", },
2167
  { "fsmovs",   "fsmoves", },
2168
  { "fdmovs",   "fdmoves", },
2169
  { "fmovw",    "fmovew", },
2170
  { "fsmovw",   "fsmovew", },
2171
  { "fdmovw",   "fdmovew", },
2172
  { "fmovx",    "fmovex", },
2173
  { "fsmovx",   "fsmovex", },
2174
  { "fdmovx",   "fdmovex", },
2175
  { "fmovcr",   "fmovecr", },
2176
  { "fmovcrx",  "fmovecrx", },
2177
  { "ftestb",   "ftstb", },
2178
  { "ftestd",   "ftstd", },
2179
  { "ftestl",   "ftstl", },
2180
  { "ftestp",   "ftstp", },
2181
  { "ftests",   "ftsts", },
2182
  { "ftestw",   "ftstw", },
2183
  { "ftestx",   "ftstx", },
2184
};
2185
 
2186
const int m68k_numaliases =
2187
  sizeof m68k_opcode_aliases / sizeof m68k_opcode_aliases[0];

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.