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