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