Pristine Ack-5.5
[Ack-5.5.git] / mach / m68020 / as / mach3.c
1 /* $Id: mach3.c,v 1.9 1994/06/24 13:05:47 ceriel Exp $ */
2 /*
3  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
4  * See the copyright notice in the ACK home directory, in the file "Copyright".
5  */
6 /*
7  * Motorola 68020 keywords
8  */
9
10 0,      SIZE,           SIZE_B,         ".b",
11 0,      SIZE,           SIZE_W,         ".w",
12 0,      SIZE,           SIZE_L,         ".l",
13
14 0,      DREG,           00,             "d0",
15 0,      DREG,           01,             "d1",
16 0,      DREG,           02,             "d2",
17 0,      DREG,           03,             "d3",
18 0,      DREG,           04,             "d4",
19 0,      DREG,           05,             "d5",
20 0,      DREG,           06,             "d6",
21 0,      DREG,           07,             "d7",
22
23 0,      AREG,           00,             "a0",
24 0,      AREG,           01,             "a1",
25 0,      AREG,           02,             "a2",
26 0,      AREG,           03,             "a3",
27 0,      AREG,           04,             "a4",
28 0,      AREG,           05,             "a5",
29 0,      AREG,           06,             "a6",
30 0,      AREG,           07,             "a7",
31 0,      AREG,           07,             "sp",
32
33 0,      PC,             0,              "pc",
34 0,      PC,             0200,           "zpc",
35
36 0,      CREG,           04001,          "vbr",
37 0,      CREG,           0,              "sfc",
38 0,      CREG,           00001,          "dfc",
39 0,      CREG,           00002,          "cacr",
40 0,      CREG,           04002,          "caar",
41 0,      CREG,           04003,          "msp",
42 0,      CREG,           04004,          "isp",
43
44 0,      SPEC,           075,            "usp",
45 0,      SPEC,           076,            "ccr",
46 0,      SPEC,           077,            "sr",
47
48 0,      ABCD,           0140400,        "abcd",
49 0,      ABCD,           0100400,        "sbcd",
50
51 0,      ADDX,           0150400,        "addx",
52 0,      ADDX,           0110400,        "subx",
53
54 0,      ADD,            0153300,        "add",
55 0,      ADD,            0112700,        "sub",
56
57 0,      AND,            0141000,        "and",
58 0,      AND,            0135000,        "eor",
59 0,      AND,            0100000,        "or",
60
61 0,      BITOP,          0000,           "btst",
62 0,      BITOP,          0100,           "bchg",
63 0,      BITOP,          0200,           "bclr",
64 0,      BITOP,          0300,           "bset",
65
66 0,      BITFIELD,       0164300,        "bftst",
67 0,      BITFIELD,       0165300,        "bfchg",
68 0,      BITFIELD,       0166300,        "bfclr",
69 0,      BITFIELD,       0167300,        "bfset",
70 0,      BF_TO_D,        0164700,        "bfextu",
71 0,      BF_TO_D,        0164700,        "bfexts",
72 0,      BF_TO_D,        0164700,        "bfffo",
73 0,      BFINS,          0167700,        "bfins",
74
75 0,      SHIFT,          0160340,        "asr",
76 0,      SHIFT,          0160740,        "asl",
77 0,      SHIFT,          0161350,        "lsr",
78 0,      SHIFT,          0161750,        "lsl",
79 0,      SHIFT,          0162360,        "roxr",
80 0,      SHIFT,          0162760,        "roxl",
81 0,      SHIFT,          0163370,        "ror",
82 0,      SHIFT,          0163770,        "rol",
83
84 0,      SZ_EA,          041000|DTA|ALT, "clr",
85 0,      SZ_EA,          042000|DTA|ALT, "neg",
86 0,      SZ_EA,          040000|DTA|ALT, "negx",
87 0,      SZ_EA,          043000|DTA|ALT, "not",
88 0,      SZ_EA,          045000,         "tst",
89
90 0,      OP_EA,          044000|DTA|ALT, "nbcd",
91 0,      OP_EA,          045300|DTA|ALT, "tas",
92 0,      OP_EA,          047200|CTR,     "jsr",
93 0,      OP_EA,          047300|CTR,     "jmp",
94 0,      OP_EA,          044100|CTR,     "pea",
95
96 0,      OP_EA,          050300,         "st",
97 0,      OP_EA,          050700,         "sf",
98 0,      OP_EA,          051300,         "shi",
99 0,      OP_EA,          051700,         "sls",
100 0,      OP_EA,          052300,         "scc",
101 0,      OP_EA,          052700,         "scs",
102 0,      OP_EA,          053300,         "sne",
103 0,      OP_EA,          053700,         "seq",
104 0,      OP_EA,          054300,         "svc",
105 0,      OP_EA,          054700,         "svs",
106 0,      OP_EA,          055300,         "spl",
107 0,      OP_EA,          055700,         "smi",
108 0,      OP_EA,          056300,         "sge",
109 0,      OP_EA,          056700,         "slt",
110 0,      OP_EA,          057300,         "sgt",
111 0,      OP_EA,          057700,         "sle",
112
113 0,      OP_NOOP,        047160,         "reset",
114 0,      OP_NOOP,        047161,         "nop",
115 0,      OP_NOOP,        047163,         "rte",
116 0,      OP_NOOP,        047165,         "rts",
117 0,      OP_NOOP,        047166,         "trapv",
118 0,      OP_NOOP,        047167,         "rtr",
119 0,      OP_NOOP,        045374,         "illegal",
120
121 0,      PACK,           0100500,        "pack",
122 0,      PACK,           0100600,        "unpk",
123
124 0,      DIVMUL,         0100,           "divu",
125 0,      DIVMUL,         0101,           "divs",
126 0,      DIVMUL,         0000,           "mulu",
127 0,      DIVMUL,         0001,           "muls",
128
129 0,      DIVL,           046100,         "divul",
130 0,      DIVL,           046101,         "divsl",
131
132 0,      BR,             060000,         "bra",
133 0,      BR,             060400,         "bsr",
134 0,      BR,             061000,         "bhi",
135 0,      BR,             061400,         "bls",
136 0,      BR,             062000,         "bcc",
137 0,      BR,             062400,         "bcs",
138 0,      BR,             063000,         "bne",
139 0,      BR,             063400,         "beq",
140 0,      BR,             064000,         "bvc",
141 0,      BR,             064400,         "bvs",
142 0,      BR,             065000,         "bpl",
143 0,      BR,             065400,         "bmi",
144 0,      BR,             066000,         "bge",
145 0,      BR,             066400,         "blt",
146 0,      BR,             067000,         "bgt",
147 0,      BR,             067400,         "ble",
148
149 0,      DBR,            050310,         "dbt",
150 0,      DBR,            050710,         "dbf",
151 0,      DBR,            050710,         "dbra",
152 0,      DBR,            051310,         "dbhi",
153 0,      DBR,            051710,         "dbls",
154 0,      DBR,            052310,         "dbcc",
155 0,      DBR,            052710,         "dbcs",
156 0,      DBR,            053310,         "dbne",
157 0,      DBR,            053710,         "dbeq",
158 0,      DBR,            054310,         "dbvc",
159 0,      DBR,            054710,         "dbvs",
160 0,      DBR,            055310,         "dbpl",
161 0,      DBR,            055710,         "dbmi",
162 0,      DBR,            056310,         "dbge",
163 0,      DBR,            056710,         "dblt",
164 0,      DBR,            057310,         "dbgt",
165 0,      DBR,            057710,         "dble",
166
167 0,      OP_EXT,         044000,         "ext",
168 0,      OP_EXT,         044400,         "extb",
169
170 0,      OP_RANGE,       04000,          "chk2",
171 0,      OP_RANGE,       0,              "cmp2",
172
173 0,      TRAPCC,         050370,         "trapt",
174 0,      TRAPCC,         050770,         "trapf",
175 0,      TRAPCC,         051370,         "traphi",
176 0,      TRAPCC,         051770,         "trapls",
177 0,      TRAPCC,         052370,         "trapcc",
178 0,      TRAPCC,         052770,         "trapcs",
179 0,      TRAPCC,         053370,         "trapeq",
180 0,      TRAPCC,         053770,         "trapvc",
181 0,      TRAPCC,         054370,         "trapvs",
182 0,      TRAPCC,         054770,         "trappl",
183 0,      TRAPCC,         055370,         "trapmi",
184 0,      TRAPCC,         055770,         "trapge",
185 0,      TRAPCC,         056370,         "traplt",
186 0,      TRAPCC,         056770,         "trapgt",
187 0,      TRAPCC,         057370,         "traple",
188 0,      TRAPCC,         057770,         "trapne",
189
190 0,      CMP,            0,              "cmp",
191
192 0,      MOVE,           0,              "move",
193 0,      MOVESP,         0,              "movep",
194 0,      MOVEM,          0,              "movem",
195 0,      MOVESP,         1,              "moves",
196 0,      MOVEC,          0,              "movec",
197
198 0,      SWAP,           0,              "swap",
199
200 0,      LINK,           0,              "link",
201
202 0,      UNLK,           0,              "unlk",
203
204 0,      TRAP,           0,              "trap",
205
206 0,      OP_IMM,         047162,         "stop",
207
208 0,      CHK,            0,              "chk",
209
210 0,      RTM,            0,              "rtm",
211
212 0,      EXG,            0,              "exg",
213
214 0,      LEA,            0,              "lea",
215
216 0,      OP_IMM,         047164,         "rtd",
217
218 0,      BKPT,           0,              "bkpt",
219
220 0,      CALLM,          0,              "callm",
221
222 0,      CAS,            0,              "cas",
223
224 0,      CAS2,           0,              "cas2",
225
226 0,      CP,             00000,          "c0",
227 0,      CP,             01000,          "c1",
228 0,      CP,             02000,          "c2",
229 0,      CP,             03000,          "c3",
230 0,      CP,             04000,          "c4",
231 0,      CP,             05000,          "c5",
232 0,      CP,             06000,          "c6",
233 0,      CP,             07000,          "c7",
234
235 /* ???? what is this ???? */
236 0,      CPGEN,          0170000,        ".gen",
237 0,      CPSCC,          0170100,        ".s",
238 0,      CPDBCC,         0170110,        ".db",
239 0,      CPTRAPCC,       0170170,        ".trap",
240 0,      CPBCC,          0170200,        ".br", /* 'r' to distinguish from SIZE_B
241                                                 */
242 0,      CPSAVREST,      0170400,        ".save",
243 0,      CPSAVREST,      0170500,        ".restore",
244 /* ???? end of what is this ???? */
245
246 /* M68030 MMU registers */
247 0,      MREG,           0040000,        "tc",
248 0,      MREG,           0044000,        "srp",
249 0,      MREG,           0046000,        "crp",
250 0,      MREG,           0060000,        "mmusr",
251 0,      MREG,           0060000,        "psr",
252 0,      MREG,           0004000,        "tt0",
253 0,      MREG,           0006000,        "tt1",
254
255 /* M68030 MMU instructions */
256
257 0,      PFLUSHA,        0022000,        "pflusha",
258 0,      PFLUSH,         0020000,        "pflush",
259 0,      PLOAD,          0021000,        "ploadr",
260 0,      PLOAD,          0020000,        "ploadw",
261 0,      PTEST,          0101000,        "ptestr",
262 0,      PTEST,          0100000,        "ptestw",
263 0,      PMOVE,          0000000,        "pmove",
264 0,      PMOVE,          0000400,        "pmovefd",
265
266 /* floating point coprocessor ... */
267
268 0,      FSIZE,          FSIZE_S,        ".s",
269 0,      FSIZE,          FSIZE_X,        ".x",
270 0,      FSIZE,          FSIZE_P,        ".p",
271 0,      FSIZE,          FSIZE_D,        ".d",
272
273 0,      FPREG,          0,              "fp0",
274 0,      FPREG,          1,              "fp1",
275 0,      FPREG,          2,              "fp2",
276 0,      FPREG,          3,              "fp3",
277 0,      FPREG,          4,              "fp4",
278 0,      FPREG,          5,              "fp5",
279 0,      FPREG,          6,              "fp6",
280 0,      FPREG,          7,              "fp7",
281
282 0,      FPCR,           1,              "fpiar",
283 0,      FPCR,           2,              "fpsr",
284 0,      FPCR,           4,              "fpcr",
285
286 0,      FMOVE,          0,              "fmove",
287 0,      FMOVECR,        0,              "fmovecr",
288 0,      FMOVEM,         0,              "fmovem",
289
290 0,      FDYADIC,        042,            "fadd",
291 0,      FDYADIC,        070,            "fcmp",
292 0,      FDYADIC,        040,            "fdiv",
293 0,      FDYADIC,        041,            "fmod",
294 0,      FDYADIC,        043,            "fmul",
295 0,      FDYADIC,        045,            "frem",
296 0,      FDYADIC,        046,            "fscale",
297 0,      FDYADIC,        044,            "fsgldiv",
298 0,      FDYADIC,        047,            "fsglmul",
299 0,      FDYADIC,        050,            "fsub",
300
301 0,      FMONADIC,       030,            "fabs",
302 0,      FMONADIC,       034,            "facos",
303 0,      FMONADIC,       014,            "fasin",
304 0,      FMONADIC,       012,            "fatan",
305 0,      FMONADIC,       015,            "fatanh",
306 0,      FMONADIC,       035,            "fcos",
307 0,      FMONADIC,       031,            "fcosh",
308 0,      FMONADIC,       020,            "fetox",
309 0,      FMONADIC,       010,            "fetoxm1",
310 0,      FMONADIC,       036,            "fgetexp",
311 0,      FMONADIC,       037,            "fgetman",
312 0,      FMONADIC,       001,            "fint",
313 0,      FMONADIC,       003,            "fintrz",
314 0,      FMONADIC,       024,            "flogn",
315 0,      FMONADIC,       006,            "flognp1",
316 0,      FMONADIC,       025,            "flog10",
317 0,      FMONADIC,       026,            "flog2",
318 0,      FMONADIC,       032,            "fneg",
319 0,      FMONADIC,       016,            "fsin",
320 0,      FMONADIC,       002,            "fsinh",
321 0,      FMONADIC,       004,            "fsqrt",
322 0,      FMONADIC,       017,            "ftan",
323 0,      FMONADIC,       011,            "ftanh",
324 0,      FMONADIC,       022,            "ftentox",
325 0,      FMONADIC,       021,            "ftwotox",
326
327 0,      FSINCOS,        060,            "fsincos",
328
329 0,      FBCC,           001,            "fbeq",
330 0,      FBCC,           016,            "fbne",
331 0,      FBCC,           022,            "fbgt",
332 0,      FBCC,           035,            "fbngt",
333 0,      FBCC,           023,            "fbge",
334 0,      FBCC,           034,            "fbnge",
335 0,      FBCC,           024,            "fblt",
336 0,      FBCC,           033,            "fbnlt",
337 0,      FBCC,           025,            "fble",
338 0,      FBCC,           032,            "fbnle",
339 0,      FBCC,           026,            "fbgl",
340 0,      FBCC,           031,            "fbngl",
341 0,      FBCC,           027,            "fbgle",
342 0,      FBCC,           030,            "fbngle",
343 0,      FBCC,           002,            "fbogt",
344 0,      FBCC,           015,            "fbule",
345 0,      FBCC,           003,            "fboge",
346 0,      FBCC,           014,            "fbult",
347 0,      FBCC,           004,            "fbolt",
348 0,      FBCC,           013,            "fbuge",
349 0,      FBCC,           005,            "fbole",
350 0,      FBCC,           012,            "fbugt",
351 0,      FBCC,           006,            "fbogl",
352 0,      FBCC,           011,            "fbueq",
353 0,      FBCC,           007,            "fbor",
354 0,      FBCC,           010,            "fbun",
355 0,      FBCC,           000,            "fbf",
356 0,      FBCC,           017,            "fbt",
357 0,      FBCC,           020,            "fbsf",
358 0,      FBCC,           037,            "fbst",
359 0,      FBCC,           021,            "fbseq",
360 0,      FBCC,           036,            "fbsne",
361
362 0,      FDBCC,          001,            "fdbeq",
363 0,      FDBCC,          016,            "fdbne",
364 0,      FDBCC,          022,            "fdbgt",
365 0,      FDBCC,          035,            "fdbngt",
366 0,      FDBCC,          023,            "fdbge",
367 0,      FDBCC,          034,            "fdbnge",
368 0,      FDBCC,          024,            "fdblt",
369 0,      FDBCC,          033,            "fdbnlt",
370 0,      FDBCC,          025,            "fdble",
371 0,      FDBCC,          032,            "fdbnle",
372 0,      FDBCC,          026,            "fdbgl",
373 0,      FDBCC,          031,            "fdbngl",
374 0,      FDBCC,          027,            "fdbgle",
375 0,      FDBCC,          030,            "fdbngle",
376 0,      FDBCC,          002,            "fdbogt",
377 0,      FDBCC,          015,            "fdbule",
378 0,      FDBCC,          003,            "fdboge",
379 0,      FDBCC,          014,            "fdbult",
380 0,      FDBCC,          004,            "fdbolt",
381 0,      FDBCC,          013,            "fdbuge",
382 0,      FDBCC,          005,            "fdbole",
383 0,      FDBCC,          012,            "fdbugt",
384 0,      FDBCC,          006,            "fdbogl",
385 0,      FDBCC,          011,            "fdbueq",
386 0,      FDBCC,          007,            "fdbor",
387 0,      FDBCC,          010,            "fdbun",
388 0,      FDBCC,          000,            "fdbf",
389 0,      FDBCC,          017,            "fdbt",
390 0,      FDBCC,          020,            "fdbsf",
391 0,      FDBCC,          037,            "fdbst",
392 0,      FDBCC,          021,            "fdbseq",
393 0,      FDBCC,          036,            "fdbsne",
394
395 0,      FNOP,           0,              "fnop",
396
397 0,      FSCC,           001,            "fseq",
398 0,      FSCC,           016,            "fsne",
399 0,      FSCC,           022,            "fsgt",
400 0,      FSCC,           035,            "fsngt",
401 0,      FSCC,           023,            "fsge",
402 0,      FSCC,           034,            "fsnge",
403 0,      FSCC,           024,            "fslt",
404 0,      FSCC,           033,            "fsnlt",
405 0,      FSCC,           025,            "fsle",
406 0,      FSCC,           032,            "fsnle",
407 0,      FSCC,           026,            "fsgl",
408 0,      FSCC,           031,            "fsngl",
409 0,      FSCC,           027,            "fsgle",
410 0,      FSCC,           030,            "fsngle",
411 0,      FSCC,           002,            "fsogt",
412 0,      FSCC,           015,            "fsule",
413 0,      FSCC,           003,            "fsoge",
414 0,      FSCC,           014,            "fsult",
415 0,      FSCC,           004,            "fsolt",
416 0,      FSCC,           013,            "fsuge",
417 0,      FSCC,           005,            "fsole",
418 0,      FSCC,           012,            "fsugt",
419 0,      FSCC,           006,            "fsogl",
420 0,      FSCC,           011,            "fsueq",
421 0,      FSCC,           007,            "fsor",
422 0,      FSCC,           010,            "fsun",
423 0,      FSCC,           000,            "fsf",
424 0,      FSCC,           017,            "fst",
425 0,      FSCC,           020,            "fssf",
426 0,      FSCC,           037,            "fsst",
427 0,      FSCC,           021,            "fsseq",
428 0,      FSCC,           036,            "fssne",
429
430 0,      FTST,           0,              "ftst",
431
432 0,      FSAVRES,        MEM|ALT|0430,   "fsave",
433 0,      FSAVRES,        MEM|0540,       "frestore",
434
435 0,      FTRAPCC,        001,            "ftrapeq",
436 0,      FTRAPCC,        016,            "ftrapne",
437 0,      FTRAPCC,        022,            "ftrapgt",
438 0,      FTRAPCC,        035,            "ftrapngt",
439 0,      FTRAPCC,        023,            "ftrapge",
440 0,      FTRAPCC,        034,            "ftrapnge",
441 0,      FTRAPCC,        024,            "ftraplt",
442 0,      FTRAPCC,        033,            "ftrapnlt",
443 0,      FTRAPCC,        025,            "ftraple",
444 0,      FTRAPCC,        032,            "ftrapnle",
445 0,      FTRAPCC,        026,            "ftrapgl",
446 0,      FTRAPCC,        031,            "ftrapngl",
447 0,      FTRAPCC,        027,            "ftrapgle",
448 0,      FTRAPCC,        030,            "ftrapngle",
449 0,      FTRAPCC,        002,            "ftrapogt",
450 0,      FTRAPCC,        015,            "ftrapule",
451 0,      FTRAPCC,        003,            "ftrapoge",
452 0,      FTRAPCC,        014,            "ftrapult",
453 0,      FTRAPCC,        004,            "ftrapolt",
454 0,      FTRAPCC,        013,            "ftrapuge",
455 0,      FTRAPCC,        005,            "ftrapole",
456 0,      FTRAPCC,        012,            "ftrapugt",
457 0,      FTRAPCC,        006,            "ftrapogl",
458 0,      FTRAPCC,        011,            "ftrapueq",
459 0,      FTRAPCC,        007,            "ftrapor",
460 0,      FTRAPCC,        010,            "ftrapun",
461 0,      FTRAPCC,        000,            "ftrapf",
462 0,      FTRAPCC,        017,            "ftrapt",
463 0,      FTRAPCC,        020,            "ftrapsf",
464 0,      FTRAPCC,        037,            "ftrapst",
465 0,      FTRAPCC,        021,            "ftrapseq",
466 0,      FTRAPCC,        036,            "ftrapsne",