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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [opcodes/] [m68k-opc.c] - Blame information for rev 1774

Go to most recent revision | Details | Compare with Previous | View Log

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