/* $Id$ */ /* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ /* @(#)mach3.c 1.4 */ /* * Motorola 68000/68010 keywords */ {0, EXTERN, 0, ".globl"}, {0, SIZE, SIZE_B, ".b"}, {0, SIZE, SIZE_W, ".w"}, {0, SIZE, SIZE_L, ".l"}, {0, DREG, 00, "d0"}, {0, DREG, 01, "d1"}, {0, DREG, 02, "d2"}, {0, DREG, 03, "d3"}, {0, DREG, 04, "d4"}, {0, DREG, 05, "d5"}, {0, DREG, 06, "d6"}, {0, DREG, 07, "d7"}, {0, AREG, 00, "a0"}, {0, AREG, 01, "a1"}, {0, AREG, 02, "a2"}, {0, AREG, 03, "a3"}, {0, AREG, 04, "a4"}, {0, AREG, 05, "a5"}, {0, AREG, 06, "a6"}, {0, AREG, 07, "a7"}, {0, AREG, 07, "sp"}, {0, PC, 8, "pc"}, {0, MODEL, 0, ".68000"}, {0, MODEL, 1, ".68010"}, {0, CREG, 04001, "vbr"}, {0, CREG, 0, "sfc"}, {0, CREG, 00001, "dfc"}, {0, SPEC, 075, "usp"}, {0, SPEC, 076, "ccr"}, {0, SPEC, 077, "sr"}, {0, ABCD, 0140400, "abcd"}, {0, ABCD, 0100400, "sbcd"}, {0, ADDX, 0150400, "addx"}, {0, ADDX, 0110400, "subx"}, {0, ADD, 0153300, "add"}, {0, ADD, 0112700, "sub"}, {0, AND, 0141000, "and"}, {0, AND, 0135000, "eor"}, {0, AND, 0100000, "or"}, {0, BITOP, 0000, "btst"}, {0, BITOP, 0100, "bchg"}, {0, BITOP, 0200, "bclr"}, {0, BITOP, 0300, "bset"}, {0, SHIFT, 0160340, "asr"}, {0, SHIFT, 0160740, "asl"}, {0, SHIFT, 0161350, "lsr"}, {0, SHIFT, 0161750, "lsl"}, {0, SHIFT, 0162360, "roxr"}, {0, SHIFT, 0162760, "roxl"}, {0, SHIFT, 0163370, "ror"}, {0, SHIFT, 0163770, "rol"}, {0, SZ_EA, 041000|DTA|ALT, "clr"}, {0, SZ_EA, 042000|DTA|ALT, "neg"}, {0, SZ_EA, 040000|DTA|ALT, "negx"}, {0, SZ_EA, 043000|DTA|ALT, "not"}, {0, SZ_EA, 045000|DTA|ALT, "tst"}, {0, OP_EA, 044000|DTA|ALT, "nbcd"}, {0, OP_EA, 045300|DTA|ALT, "tas"}, {0, OP_EA, 047200|CTR, "jsr"}, {0, OP_EA, 047300|CTR, "jmp"}, {0, OP_EA, 044100|CTR, "pea"}, {0, OP_EA, 050300, "st"}, {0, OP_EA, 050700, "sf"}, {0, OP_EA, 051300, "shi"}, {0, OP_EA, 051700, "sls"}, {0, OP_EA, 052300, "scc"}, {0, OP_EA, 052700, "scs"}, {0, OP_EA, 053300, "sne"}, {0, OP_EA, 053700, "seq"}, {0, OP_EA, 054300, "svc"}, {0, OP_EA, 054700, "svs"}, {0, OP_EA, 055300, "spl"}, {0, OP_EA, 055700, "smi"}, {0, OP_EA, 056300, "sge"}, {0, OP_EA, 056700, "slt"}, {0, OP_EA, 057300, "sgt"}, {0, OP_EA, 057700, "sle"}, {0, OP_NOOP, 047160, "reset"}, {0, OP_NOOP, 047161, "nop"}, {0, OP_NOOP, 047163, "rte"}, {0, OP_NOOP, 047165, "rts"}, {0, OP_NOOP, 047166, "trapv"}, {0, OP_NOOP, 047167, "rtr"}, {0, OP_NOOP, 045374, "illegal"}, {0, OP_EA_D, 040600, "chk"}, {0, OP_EA_D, 0100300, "divu"}, {0, OP_EA_D, 0100700, "divs"}, {0, OP_EA_D, 0140300, "mulu"}, {0, OP_EA_D, 0140700, "muls"}, {0, BR, 060000, "bra"}, {0, BR, 060400, "bsr"}, {0, BR, 061000, "bhi"}, {0, BR, 061400, "bls"}, {0, BR, 062000, "bcc"}, {0, BR, 062400, "bcs"}, {0, BR, 063000, "bne"}, {0, BR, 063400, "beq"}, {0, BR, 064000, "bvc"}, {0, BR, 064400, "bvs"}, {0, BR, 065000, "bpl"}, {0, BR, 065400, "bmi"}, {0, BR, 066000, "bge"}, {0, BR, 066400, "blt"}, {0, BR, 067000, "bgt"}, {0, BR, 067400, "ble"}, {0, DBR, 050310, "dbt"}, {0, DBR, 050710, "dbf"}, {0, DBR, 050710, "dbra"}, {0, DBR, 051310, "dbhi"}, {0, DBR, 051710, "dbls"}, {0, DBR, 052310, "dbcc"}, {0, DBR, 052710, "dbcs"}, {0, DBR, 053310, "dbne"}, {0, DBR, 053710, "dbeq"}, {0, DBR, 054310, "dbvc"}, {0, DBR, 054710, "dbvs"}, {0, DBR, 055310, "dbpl"}, {0, DBR, 055710, "dbmi"}, {0, DBR, 056310, "dbge"}, {0, DBR, 056710, "dblt"}, {0, DBR, 057310, "dbgt"}, {0, DBR, 057710, "dble"}, {0, CMP, 0, "cmp"}, {0, MOVE, 0, "move"}, {0, MOVEP, 0, "movep"}, {0, MOVEM, 0, "movem"}, {0, MOVES, 0, "moves"}, {0, MOVEC, 0, "movec"}, {0, SWAP, 0, "swap"}, {0, LINK, 0, "link"}, {0, UNLK, 0, "unlk"}, {0, TRAP, 0, "trap"}, {0, STOP, 047162, "stop"}, {0, EXG, 0, "exg"}, {0, OP_EXT, 0, "ext"}, {0, LEA, 0, "lea"}, {0, RTD, 0, "rtd"}, /* floating point coprocessor ... */ {0, FSIZE, FSIZE_S, ".s"}, {0, FSIZE, FSIZE_X, ".x"}, {0, FSIZE, FSIZE_P, ".p"}, {0, FSIZE, FSIZE_D, ".d"}, {0, FPREG, 0, "fp0"}, {0, FPREG, 1, "fp1"}, {0, FPREG, 2, "fp2"}, {0, FPREG, 3, "fp3"}, {0, FPREG, 4, "fp4"}, {0, FPREG, 5, "fp5"}, {0, FPREG, 6, "fp6"}, {0, FPREG, 7, "fp7"}, {0, FPCR, 1, "fpiar"}, {0, FPCR, 2, "fpsr"}, {0, FPCR, 4, "fpcr"}, {0, FMOVE, 0, "fmove"}, {0, FMOVECR, 0, "fmovecr"}, {0, FMOVEM, 0, "fmovem"}, {0, FDYADIC, 042, "fadd"}, {0, FDYADIC, 070, "fcmp"}, {0, FDYADIC, 040, "fdiv"}, {0, FDYADIC, 041, "fmod"}, {0, FDYADIC, 043, "fmul"}, {0, FDYADIC, 045, "frem"}, {0, FDYADIC, 046, "fscale"}, {0, FDYADIC, 044, "fsgldiv"}, {0, FDYADIC, 047, "fsglmul"}, {0, FDYADIC, 050, "fsub"}, {0, FMONADIC, 030, "fabs"}, {0, FMONADIC, 034, "facos"}, {0, FMONADIC, 014, "fasin"}, {0, FMONADIC, 012, "fatan"}, {0, FMONADIC, 015, "fatanh"}, {0, FMONADIC, 035, "fcos"}, {0, FMONADIC, 031, "fcosh"}, {0, FMONADIC, 020, "fetox"}, {0, FMONADIC, 010, "fetoxm1"}, {0, FMONADIC, 036, "fgetexp"}, {0, FMONADIC, 037, "fgetman"}, {0, FMONADIC, 001, "fint"}, {0, FMONADIC, 003, "fintrz"}, {0, FMONADIC, 024, "flogn"}, {0, FMONADIC, 006, "flognp1"}, {0, FMONADIC, 025, "flog10"}, {0, FMONADIC, 026, "flog2"}, {0, FMONADIC, 032, "fneg"}, {0, FMONADIC, 016, "fsin"}, {0, FMONADIC, 002, "fsinh"}, {0, FMONADIC, 004, "fsqrt"}, {0, FMONADIC, 017, "ftan"}, {0, FMONADIC, 011, "ftanh"}, {0, FMONADIC, 022, "ftentox"}, {0, FMONADIC, 021, "ftwotox"}, {0, FSINCOS, 060, "fsincos"}, {0, FBCC, 001, "fbeq"}, {0, FBCC, 016, "fbne"}, {0, FBCC, 022, "fbgt"}, {0, FBCC, 035, "fbngt"}, {0, FBCC, 023, "fbge"}, {0, FBCC, 034, "fbnge"}, {0, FBCC, 024, "fblt"}, {0, FBCC, 033, "fbnlt"}, {0, FBCC, 025, "fble"}, {0, FBCC, 032, "fbnle"}, {0, FBCC, 026, "fbgl"}, {0, FBCC, 031, "fbngl"}, {0, FBCC, 027, "fbgle"}, {0, FBCC, 030, "fbngle"}, {0, FBCC, 002, "fbogt"}, {0, FBCC, 015, "fbule"}, {0, FBCC, 003, "fboge"}, {0, FBCC, 014, "fbult"}, {0, FBCC, 004, "fbolt"}, {0, FBCC, 013, "fbuge"}, {0, FBCC, 005, "fbole"}, {0, FBCC, 012, "fbugt"}, {0, FBCC, 006, "fbogl"}, {0, FBCC, 011, "fbueq"}, {0, FBCC, 007, "fbor"}, {0, FBCC, 010, "fbun"}, {0, FBCC, 000, "fbf"}, {0, FBCC, 017, "fbt"}, {0, FBCC, 020, "fbsf"}, {0, FBCC, 037, "fbst"}, {0, FBCC, 021, "fbseq"}, {0, FBCC, 036, "fbsne"}, {0, FDBCC, 001, "fdbeq"}, {0, FDBCC, 016, "fdbne"}, {0, FDBCC, 022, "fdbgt"}, {0, FDBCC, 035, "fdbngt"}, {0, FDBCC, 023, "fdbge"}, {0, FDBCC, 034, "fdbnge"}, {0, FDBCC, 024, "fdblt"}, {0, FDBCC, 033, "fdbnlt"}, {0, FDBCC, 025, "fdble"}, {0, FDBCC, 032, "fdbnle"}, {0, FDBCC, 026, "fdbgl"}, {0, FDBCC, 031, "fdbngl"}, {0, FDBCC, 027, "fdbgle"}, {0, FDBCC, 030, "fdbngle"}, {0, FDBCC, 002, "fdbogt"}, {0, FDBCC, 015, "fdbule"}, {0, FDBCC, 003, "fdboge"}, {0, FDBCC, 014, "fdbult"}, {0, FDBCC, 004, "fdbolt"}, {0, FDBCC, 013, "fdbuge"}, {0, FDBCC, 005, "fdbole"}, {0, FDBCC, 012, "fdbugt"}, {0, FDBCC, 006, "fdbogl"}, {0, FDBCC, 011, "fdbueq"}, {0, FDBCC, 007, "fdbor"}, {0, FDBCC, 010, "fdbun"}, {0, FDBCC, 000, "fdbf"}, {0, FDBCC, 017, "fdbt"}, {0, FDBCC, 020, "fdbsf"}, {0, FDBCC, 037, "fdbst"}, {0, FDBCC, 021, "fdbseq"}, {0, FDBCC, 036, "fdbsne"}, {0, FNOP, 0, "fnop"}, {0, FSCC, 001, "fseq"}, {0, FSCC, 016, "fsne"}, {0, FSCC, 022, "fsgt"}, {0, FSCC, 035, "fsngt"}, {0, FSCC, 023, "fsge"}, {0, FSCC, 034, "fsnge"}, {0, FSCC, 024, "fslt"}, {0, FSCC, 033, "fsnlt"}, {0, FSCC, 025, "fsle"}, {0, FSCC, 032, "fsnle"}, {0, FSCC, 026, "fsgl"}, {0, FSCC, 031, "fsngl"}, {0, FSCC, 027, "fsgle"}, {0, FSCC, 030, "fsngle"}, {0, FSCC, 002, "fsogt"}, {0, FSCC, 015, "fsule"}, {0, FSCC, 003, "fsoge"}, {0, FSCC, 014, "fsult"}, {0, FSCC, 004, "fsolt"}, {0, FSCC, 013, "fsuge"}, {0, FSCC, 005, "fsole"}, {0, FSCC, 012, "fsugt"}, {0, FSCC, 006, "fsogl"}, {0, FSCC, 011, "fsueq"}, {0, FSCC, 007, "fsor"}, {0, FSCC, 010, "fsun"}, {0, FSCC, 000, "fsf"}, {0, FSCC, 017, "fst"}, {0, FSCC, 020, "fssf"}, {0, FSCC, 037, "fsst"}, {0, FSCC, 021, "fsseq"}, {0, FSCC, 036, "fssne"}, {0, FTST, 0, "ftst"}, {0, FSAVRES, MEM|ALT|0430, "fsave"}, {0, FSAVRES, MEM|0540, "frestore"}, {0, FTRAPCC, 001, "ftrapeq"}, {0, FTRAPCC, 016, "ftrapne"}, {0, FTRAPCC, 022, "ftrapgt"}, {0, FTRAPCC, 035, "ftrapngt"}, {0, FTRAPCC, 023, "ftrapge"}, {0, FTRAPCC, 034, "ftrapnge"}, {0, FTRAPCC, 024, "ftraplt"}, {0, FTRAPCC, 033, "ftrapnlt"}, {0, FTRAPCC, 025, "ftraple"}, {0, FTRAPCC, 032, "ftrapnle"}, {0, FTRAPCC, 026, "ftrapgl"}, {0, FTRAPCC, 031, "ftrapngl"}, {0, FTRAPCC, 027, "ftrapgle"}, {0, FTRAPCC, 030, "ftrapngle"}, {0, FTRAPCC, 002, "ftrapogt"}, {0, FTRAPCC, 015, "ftrapule"}, {0, FTRAPCC, 003, "ftrapoge"}, {0, FTRAPCC, 014, "ftrapult"}, {0, FTRAPCC, 004, "ftrapolt"}, {0, FTRAPCC, 013, "ftrapuge"}, {0, FTRAPCC, 005, "ftrapole"}, {0, FTRAPCC, 012, "ftrapugt"}, {0, FTRAPCC, 006, "ftrapogl"}, {0, FTRAPCC, 011, "ftrapueq"}, {0, FTRAPCC, 007, "ftrapor"}, {0, FTRAPCC, 010, "ftrapun"}, {0, FTRAPCC, 000, "ftrapf"}, {0, FTRAPCC, 017, "ftrapt"}, {0, FTRAPCC, 020, "ftrapsf"}, {0, FTRAPCC, 037, "ftrapst"}, {0, FTRAPCC, 021, "ftrapseq"}, {0, FTRAPCC, 036, "ftrapsne"}, {0, CP, 00000, "c0"}, {0, CP, 01000, "c1"}, {0, CP, 02000, "c2"}, {0, CP, 03000, "c3"}, {0, CP, 04000, "c4"}, {0, CP, 05000, "c5"}, {0, CP, 06000, "c6"}, {0, CP, 07000, "c7"},