Annotation of 43BSDReno/contrib/emacs-18.55/gdb/pn-opcode.h, revision 1.1

1.1     ! root        1: /* Print PN instructions for GDB, the GNU debugger.
        !             2:    Copyright (C) 1986, 1987 Free Software Foundation, Inc.
        !             3: 
        !             4: GDB is distributed in the hope that it will be useful, but WITHOUT ANY
        !             5: WARRANTY.  No author or distributor accepts responsibility to anyone
        !             6: for the consequences of using it or for whether it serves any
        !             7: particular purpose or works at all, unless he says so in writing.
        !             8: Refer to the GDB General Public License for full details.
        !             9: 
        !            10: Everyone is granted permission to copy, modify and redistribute GDB,
        !            11: but only under the conditions described in the GDB General Public
        !            12: License.  A copy of this license is supposed to have been given to you
        !            13: along with GDB so you can know your rights and responsibilities.  It
        !            14: should be in a file named COPYING.  Among other things, the copyright
        !            15: notice and this notice must be preserved on all copies.
        !            16: 
        !            17: In other words, go ahead and share GDB, but don't try to stop
        !            18: anyone else from sharing it farther.  Help stamp out software hoarding!
        !            19: */
        !            20: 
        !            21: struct gld_opcode
        !            22: {
        !            23:   char *name;
        !            24:   unsigned long opcode;
        !            25:   unsigned long mask;
        !            26:   char *args;
        !            27:   int length;
        !            28: };
        !            29: 
        !            30: /* We store four bytes of opcode for all opcodes because that
        !            31:    is the most any of them need.  The actual length of an instruction
        !            32:    is always at least 2 bytes, and at most four.  The length of the
        !            33:    instruction is based on the opcode.
        !            34: 
        !            35:    The mask component is a mask saying which bits must match
        !            36:    particular opcode in order for an instruction to be an instance
        !            37:    of that opcode.
        !            38: 
        !            39:    The args component is a string containing characters
        !            40:    that are used to format the arguments to the instruction. */
        !            41: 
        !            42: /* Kinds of operands:
        !            43:    r  Register in first field
        !            44:    R  Register in second field
        !            45:    b  Base register in first field
        !            46:    B  Base register in second field
        !            47:    v  Vector register in first field
        !            48:    V  Vector register in first field
        !            49:    A  Optional address register (base register)
        !            50:    X  Optional index register
        !            51:    I  Immediate data (16bits signed)
        !            52:    O  Offset field (16bits signed)
        !            53:    h  Offset field (15bits signed)
        !            54:    d  Offset field (14bits signed)
        !            55:    S  Shift count field
        !            56: 
        !            57:    any other characters are printed as is...
        !            58: */
        !            59: 
        !            60: /* The assembler requires that this array be sorted as follows:
        !            61:    all instances of the same mnemonic must be consecutive.
        !            62:    All instances of the same mnemonic with the same number of operands
        !            63:    must be consecutive.
        !            64:  */
        !            65: struct gld_opcode gld_opcodes[] =
        !            66: {
        !            67: { "abm",       0xa0080000,     0xfc080000,     "f,xOA,X",      4 },
        !            68: { "abr",       0x18080000,     0xfc0c0000,     "r,f",          2 },
        !            69: { "aci",       0xfc770000,     0xfc7f8000,     "r,I",          4 },
        !            70: { "adfd",      0xe0080002,     0xfc080002,     "r,xOA,X",      4 },
        !            71: { "adfw",      0xe0080000,     0xfc080000,     "r,xOA,X",      4 },
        !            72: { "adi",       0xc8010000,     0xfc7f0000,     "r,I",          4 },
        !            73: { "admb",      0xb8080000,     0xfc080000,     "r,xOA,X",      4 },
        !            74: { "admd",      0xb8000002,     0xfc080002,     "r,xOA,X",      4 },
        !            75: { "admh",      0xb8000001,     0xfc080001,     "r,xOA,X",      4 },
        !            76: { "admw",      0xb8000000,     0xfc080000,     "r,xOA,X",      4 },
        !            77: { "adr",       0x38000000,     0xfc0f0000,     "r,R",          2 },
        !            78: { "adrfd",     0x38090000,     0xfc0f0000,     "r,R",          2 },
        !            79: { "adrfw",     0x38010000,     0xfc0f0000,     "r,R",          2 },
        !            80: { "adrm",      0x38080000,     0xfc0f0000,     "r,R",          2 },
        !            81: { "ai",        0xfc030000,     0xfc07ffff,     "I",            4 },
        !            82: { "anmb",      0x84080000,     0xfc080000,     "r,xOA,X",      4 },
        !            83: { "anmd",      0x84000002,     0xfc080002,     "r,xOA,X",      4 },
        !            84: { "anmh",      0x84000001,     0xfc080001,     "r,xOA,X",      4 },
        !            85: { "anmw",      0x84000000,     0xfc080000,     "r,xOA,X",      4 },
        !            86: { "anr",       0x04000000,     0xfc0f0000,     "r,R",          2 },
        !            87: { "armb",      0xe8080000,     0xfc080000,     "r,xOA,X",      4 },
        !            88: { "armd",      0xe8000002,     0xfc080002,     "r,xOA,X",      4 },
        !            89: { "armh",      0xe8000001,     0xfc080001,     "r,xOA,X",      4 },
        !            90: { "armw",      0xe8000000,     0xfc080000,     "r,xOA,X",      4 },
        !            91: { "bcf",       0xf0000000,     0xfc080000,     "I,xOA,X",      4 },
        !            92: { "bct",       0xec000000,     0xfc080000,     "I,xOA,X",      4 },
        !            93: { "bei",       0x00060000,     0xffff0000,     "",             2 },
        !            94: { "bft",       0xf0000000,     0xff880000,     "xOA,X",        4 },
        !            95: { "bib",       0xf4000000,     0xfc780000,     "r,xOA",        4 },
        !            96: { "bid",       0xf4600000,     0xfc780000,     "r,xOA",        4 },
        !            97: { "bih",       0xf4200000,     0xfc780000,     "r,xOA",        4 },
        !            98: { "biw",       0xf4400000,     0xfc780000,     "r,xOA",        4 },
        !            99: { "bl",        0xf8800000,     0xff880000,     "xOA,X",        4 },
        !           100: { "bsub",      0x5c080000,     0xff8f0000,     "",             2 },
        !           101: { "bsubm",     0x28080000,     0xfc080000,     "",             4 },
        !           102: { "bu",        0xec000000,     0xff880000,     "xOA,X",        4 },
        !           103: { "call",      0x28080000,     0xfc0f0000,     "",             2 },
        !           104: { "callm",     0x5c080000,     0xff880000,     "",             4 },
        !           105: { "camb",      0x90080000,     0xfc080000,     "r,xOA,X",      4 },
        !           106: { "camd",      0x90000002,     0xfc080002,     "r,xOA,X",      4 },
        !           107: { "camh",      0x90000001,     0xfc080001,     "r,xOA,X",      4 },
        !           108: { "camw",      0x90000000,     0xfc080000,     "r.xOA,X",      4 },
        !           109: { "car",       0x10000000,     0xfc0f0000,     "r,R",          2 },
        !           110: { "cd",        0xfc060000,     0xfc070000,     "r,f",          4 },
        !           111: { "cea",       0x000f0000,     0xffff0000,     "",             2 },
        !           112: { "ci",        0xc8050000,     0xfc7f0000,     "r,I",          4 },
        !           113: { "cmc",       0x040a0000,     0xfc7f0000,     "r",            2 },
        !           114: { "cmmb",      0x94080000,     0xfc080000,     "r,xOA,X",      4 },
        !           115: { "cmmd",      0x94000002,     0xfc080002,     "r,xOA,X",      4 },
        !           116: { "cmmh",      0x94000001,     0xfc080001,     "r,xOA,X",      4 },
        !           117: { "cmmw",      0x94000000,     0xfc080000,     "r,xOA,X",      4 },
        !           118: { "cmr",       0x14000000,     0xfc0f0000,     "r,R",          2 },
        !           119: { "daci",      0xfc7f0000,     0xfc7f8000,     "r,I",          4 },
        !           120: { "dae",       0x000e0000,     0xffff0000,     "",             2 },
        !           121: { "dai",       0xfc040000,     0xfc07ffff,     "I",            4 },
        !           122: { "dci",       0xfc6f0000,     0xfc7f8000,     "r,I",          4 },
        !           123: { "di",        0xfc010000,     0xfc07ffff,     "I",            4 },
        !           124: { "dvfd",      0xe4000002,     0xfc080002,     "r,xOA,X",      4 },
        !           125: { "dvfw",      0xe4000000,     0xfc080000,     "r,xOA,X",      4 },
        !           126: { "dvi",       0xc8040000,     0xfc7f0000,     "r,I",          4 },
        !           127: { "dvmb",      0xc4080000,     0xfc080000,     "r,xOA,X",      4 },
        !           128: { "dvmh",      0xc4000001,     0xfc080001,     "r,xOA,X",      4 },
        !           129: { "dvmw",      0xc4000000,     0xfc080000,     "r,xOA,X",      4 },
        !           130: { "dvr",       0x380a0000,     0xfc0f0000,     "r,R",          2 },
        !           131: { "dvrfd",     0x380c0000,     0xfc0f0000,     "r,R",          4 },
        !           132: { "dvrfw",     0x38040000,     0xfc0f0000,     "r,xOA,X",      4 },
        !           133: { "eae",       0x00080000,     0xffff0000,     "",             2 },
        !           134: { "eci",       0xfc670000,     0xfc7f8080,     "r,I",          4 },
        !           135: { "ecwcs",     0xfc4f0000,     0xfc7f8000,     "",             4 },
        !           136: { "ei",        0xfc000000,     0xfc07ffff,     "I",            4 },
        !           137: { "eomb",      0x8c080000,     0xfc080000,     "r,xOA,X",      4 },
        !           138: { "eomd",      0x8c000002,     0xfc080002,     "r,xOA,X",      4 },
        !           139: { "eomh",      0x8c000001,     0xfc080001,     "r,xOA,X",      4 },
        !           140: { "eomw",      0x8c000000,     0xfc080000,     "r,xOA,X",      4 },
        !           141: { "eor",       0x0c000000,     0xfc0f0000,     "r,R",          2 },
        !           142: { "eorm",      0x0c080000,     0xfc0f0000,     "r,R",          2 },
        !           143: { "es",        0x00040000,     0xfc7f0000,     "r",            2 },
        !           144: { "exm",       0xa8000000,     0xff880000,     "xOA,X",        4 },
        !           145: { "exr",       0xc8070000,     0xfc7f0000,     "r",            2 },
        !           146: { "exrr",      0xc8070002,     0xfc7f0002,     "r",            2 },
        !           147: { "fixd",      0x380d0000,     0xfc0f0000,     "r,R",          2 },
        !           148: { "fixw",      0x38050000,     0xfc0f0000,     "r,R",          2 },
        !           149: { "fltd",      0x380f0000,     0xfc0f0000,     "r,R",          2 },
        !           150: { "fltw",      0x38070000,     0xfc0f0000,     "r,R",          2 },
        !           151: { "grio",      0xfc3f0000,     0xfc7f8000,     "r,I",          4 },
        !           152: { "halt",      0x00000000,     0xffff0000,     "",             2 },
        !           153: { "hio",       0xfc370000,     0xfc7f8000,     "r,I",          4 },
        !           154: { "jwcs",      0xfa080000,     0xff880000,     "xOA,X",        4 },
        !           155: { "la",        0x50000000,     0xfc000000,     "r,xOA,X",      4 },
        !           156: { "labr",      0x58080000,     0xfc080000,     "b,xOA,X",      4 },
        !           157: { "lb",        0xac080000,     0xfc080000,     "r,xOA,X",      4 },
        !           158: { "lcs",       0x00030000,     0xfc7f0000,     "r",            2 },
        !           159: { "ld",        0xac000002,     0xfc080002,     "r,xOA,X",      4 },
        !           160: { "lear",      0x80000000,     0xfc080000,     "r,xOA,X",      4 },
        !           161: { "lf",        0xcc000000,     0xfc080000,     "r,xOA,X",      4 },
        !           162: { "lfbr",      0xcc080000,     0xfc080000,     "b,xOA,X",      4 },
        !           163: { "lh",        0xac000001,     0xfc080001,     "r,xOA,X",      4 },
        !           164: { "li",        0xc8000000,     0xfc7f0000,     "r,I",          4 },
        !           165: { "lmap",      0x2c070000,     0xfc7f0000,     "r",            2 },
        !           166: { "lmb",       0xb0080000,     0xfc080000,     "r,xOA,X",      4 },
        !           167: { "lmd",       0xb0000002,     0xfc080002,     "r,xOA,X",      4 },
        !           168: { "lmh",       0xb0000001,     0xfc080001,     "r,xOA,X",      4 },
        !           169: { "lmw",       0xb0000000,     0xfc080000,     "r,xOA,X",      4 },
        !           170: { "lnb",       0xb4080000,     0xfc080000,     "r,xOA,X",      4 },
        !           171: { "lnd",       0xb4000002,     0xfc080002,     "r,xOA,X",      4 },
        !           172: { "lnh",       0xb4000001,     0xfc080001,     "r,xOA,X",      4 },
        !           173: { "lnw",       0xb4000000,     0xfc080000,     "r,xOA,X",      4 },
        !           174: { "lpsd",      0xf9800000,     0xff880000,     "r,xOA,X",      4 },
        !           175: { "lpsdcm",    0xfa800000,     0xff880000,     "r,xOA,X",      4 },
        !           176: { "lw",        0xac000000,     0xfc080000,     "r,xOA,X",      4 },
        !           177: { "lwbr",      0x5c000000,     0xfc080000,     "b,xOA,X",      4 },
        !           178: { "mpfd",      0xe4080002,     0xfc080002,     "r,xOA,X",      4 },
        !           179: { "mpfw",      0xe4080000,     0xfc080000,     "r,xOA,X",      4 },
        !           180: { "mpi",       0xc8030000,     0xfc7f0000,     "r,I",          4 },
        !           181: { "mpmb",      0xc0080000,     0xfc080000,     "r,xOA,X",      4 },
        !           182: { "mpmh",      0xc0000001,     0xfc080001,     "r,xOA,X",      4 },
        !           183: { "mpmw",      0xc0000000,     0xfc080000,     "r,xOA,X",      4 },
        !           184: { "mpr",       0x38020000,     0xfc0f0000,     "r,R",          2 },
        !           185: { "mprfd",     0x380e0000,     0xfc0f0000,     "r,R",          2 },
        !           186: { "mprfw",     0x38060000,     0xfc0f0000,     "r,R",          2 },
        !           187: { "nop",       0x00020000,     0xffff0000,     "",             2 },
        !           188: { "ormb",      0x88080000,     0xfc080000,     "r,xOA,X",      4 },
        !           189: { "ormd",      0x88000002,     0xfc080002,     "r,xOA,X",      4 },
        !           190: { "ormh",      0x88000001,     0xfc080001,     "r,xOA,X",      4 },
        !           191: { "ormw",      0x88000000,     0xfc080000,     "r,xOA,X",      4 },
        !           192: { "orr",       0x08000000,     0xfc0f0000,     "r,R",          2 },
        !           193: { "orrm",      0x08080000,     0xfc0f0000,     "r,R",          2 },
        !           194: { "rdsts",     0x00090000,     0xfc7f0000,     "r",            2 },
        !           195: { "return",    0x280e0000,     0xfc7f0000,     "",             2 },
        !           196: { "ri",        0xfc020000,     0xfc07ffff,     "I",            4 },
        !           197: { "rnd",       0x00050000,     0xfc7f0000,     "r",            2 },
        !           198: { "rpswt",     0x040b0000,     0xfc7f0000,     "r",            2 },
        !           199: { "rschnl",    0xfc2f0000,     0xfc7f8000,     "r,I",          4 },
        !           200: { "rsctl",     0xfc470000,     0xfc7f8000,     "r,I",          4 },
        !           201: { "rwcs",      0x000b0000,     0xfc0f0000,     "r,R",          2 },
        !           202: { "sacz",      0x10080000,     0xfc0f0000,     "r,R",          2 },
        !           203: { "sbm",       0x98080000,     0xfc080000,     "f,xOA,X",      4 },
        !           204: { "sbr",       0x18000000,     0xfc0c0000,     "r,f",          4 },
        !           205: { "sea",       0x000d0000,     0xffff0000,     "",             2 },
        !           206: { "setcpu",    0x2c090000,     0xfc7f0000,     "r",            2 },
        !           207: { "sio",       0xfc170000,     0xfc7f8000,     "r,I",          4 },
        !           208: { "sipu",      0x000a0000,     0xffff0000,     "",             2 },
        !           209: { "sla",       0x1c400000,     0xfc600000,     "r,S",          2 },
        !           210: { "slad",      0x20400000,     0xfc600000,     "r,S",          2 },
        !           211: { "slc",       0x24400000,     0xfc600000,     "r,S",          2 },
        !           212: { "sll",       0x1c600000,     0xfc600000,     "r,S",          2 },
        !           213: { "slld",      0x20600000,     0xfc600000,     "r,S",          2 },
        !           214: { "smc",       0x04070000,     0xfc070000,     "",             2 },
        !           215: { "sra",       0x1c000000,     0xfc600000,     "r,S",          2 },
        !           216: { "srad",      0x20000000,     0xfc600000,     "r,S",          2 },
        !           217: { "src",       0x24000000,     0xfc600000,     "r,S",          2 },
        !           218: { "srl",       0x1c200000,     0xfc600000,     "r,S",          2 },
        !           219: { "srld",      0x20200000,     0xfc600000,     "r,S",          2 },
        !           220: { "stb",       0xd4080000,     0xfc080000,     "r,xOA,X",      4 },
        !           221: { "std",       0xd4000002,     0xfc080002,     "r,xOA,X",      4 },
        !           222: { "stf",       0xdc000000,     0xfc080000,     "r,xOA,X",      4 },
        !           223: { "stfbr",     0x54000000,     0xfc080000,     "b,xOA,X",      4 },
        !           224: { "sth",       0xd4000001,     0xfc080001,     "r,xOA,X",      4 },
        !           225: { "stmb",      0xd8080000,     0xfc080000,     "r,xOA,X",      4 },
        !           226: { "stmd",      0xd8000002,     0xfc080002,     "r,xOA,X",      4 },
        !           227: { "stmh",      0xd8000001,     0xfc080001,     "r,xOA,X",      4 },
        !           228: { "stmw",      0xd8000000,     0xfc080000,     "r,xOA,X",      4 },
        !           229: { "stpio",     0xfc270000,     0xfc7f8000,     "r,I",          4 },
        !           230: { "stw",       0xd4000000,     0xfc080000,     "r,xOA,X",      4 },
        !           231: { "stwbr",     0x54000000,     0xfc080000,     "b,xOA,X",      4 },
        !           232: { "suabr",     0x58000000,     0xfc080000,     "b,xOA,X",      4 },
        !           233: { "sufd",      0xe0000002,     0xfc080002,     "r,xOA,X",      4 },
        !           234: { "sufw",      0xe0000000,     0xfc080000,     "r,xOA,X",      4 },
        !           235: { "sui",       0xc8020000,     0xfc7f0000,     "r,I",          4 },
        !           236: { "sumb",      0xbc080000,     0xfc080000,     "r,xOA,X",      4 },
        !           237: { "sumd",      0xbc000002,     0xfc080002,     "r,xOA,X",      4 },
        !           238: { "sumh",      0xbc000001,     0xfc080001,     "r,xOA,X",      4 },
        !           239: { "sumw",      0xbc000000,     0xfc080000,     "r,xOA,X",      4 },
        !           240: { "sur",       0x3c000000,     0xfc0f0000,     "r,R",          2 },
        !           241: { "surfd",     0x380b0000,     0xfc0f0000,     "r,xOA,X",      4 },
        !           242: { "surfw",     0x38030000,     0xfc0f0000,     "r,R",          2 },
        !           243: { "surm",      0x3c080000,     0xfc0f0000,     "r,R",          2 },
        !           244: { "svc",       0xc8060000,     0xffff0000,     "",             4 },
        !           245: { "tbm",       0xa4080000,     0xfc080000,     "f,xOA,X",      4 },
        !           246: { "tbr",       0x180c0000,     0xfc0c0000,     "r,f",          2 },
        !           247: { "tbrr",      0x2c020000,     0xfc0f0000,     "r,B",          2 },
        !           248: { "tccr",      0x28040000,     0xfc7f0000,     "",             2 },
        !           249: { "td",        0xfc050000,     0xfc070000,     "r,f",          4 },
        !           250: { "tio",       0xfc1f0000,     0xfc7f8000,     "r,I",          4 },
        !           251: { "tmapr",     0x2c0a0000,     0xfc0f0000,     "r,R",          2 },
        !           252: { "tpcbr",     0x280c0000,     0xfc7f0000,     "r",            2 },
        !           253: { "trbr",      0x2c010000,     0xfc0f0000,     "b,R",          2 },
        !           254: { "trc",       0x2c030000,     0xfc0f0000,     "r,R",          2 },
        !           255: { "trcc",      0x28050000,     0xfc7f0000,     "",             2 },
        !           256: { "trcm",      0x2c0b0000,     0xfc0f0000,     "r,R",          2 },
        !           257: { "trn",       0x2c040000,     0xfc0f0000,     "r,R",          2 },
        !           258: { "trnm",      0x2c0c0000,     0xfc0f0000,     "r,R",          2 },
        !           259: { "trr",       0x2c000000,     0xfc0f0000,     "r,R",          2 },
        !           260: { "trrm",      0x2c080000,     0xfc0f0000,     "r,R",          2 },
        !           261: { "trsc",      0x2c0e0000,     0xfc0f0000,     "r,R",          2 },
        !           262: { "trsw",      0x28000000,     0xfc7f0000,     "r",            2 },
        !           263: { "tscr",      0x2c0f0000,     0xfc0f0000,     "r,R",          2 },
        !           264: { "uei",       0x00070000,     0xffff0000,     "",             2 },
        !           265: { "wait",      0x00010000,     0xffff0000,     "",             2 },
        !           266: { "wcwcs",     0xfc5f0000,     0xfc7f8000,     "",             4 },
        !           267: { "wwcs",      0x000c0000,     0xfc0f0000,     "r,R",          2 },
        !           268: { "xcbr",      0x28020000,     0xfc0f0000,     "b,B",          2 },
        !           269: { "xcr",       0x2c050000,     0xfc0f0000,     "r,R",          2 },
        !           270: { "xcrm",      0x2c0d0000,     0xfc0f0000,     "r,R",          2 },
        !           271: { "zbm",       0x9c080000,     0xfc080000,     "f,xOA,X",      4 },
        !           272: { "zbr",       0x18040000,     0xfc0c0000,     "r,f",          2 },
        !           273: { "zmb",       0xf8080000,     0xfc080000,     "r,xOA,X",      4 },
        !           274: { "zmd",       0xf8000002,     0xfc080002,     "r,xOA,X",      4 },
        !           275: { "zmh",       0xf8000001,     0xfc080001,     "r,xOA,X",      4 },
        !           276: { "zmw",       0xf8000000,     0xfc080000,     "r,xOA,X",      4 },
        !           277: { "zr",        0x0c000000,     0xfc0f0000,     "r",            2 },
        !           278: };
        !           279: 
        !           280: int numopcodes = sizeof(gld_opcodes) / sizeof(gld_opcodes[0]);
        !           281: 
        !           282: struct gld_opcode *endop = gld_opcodes + sizeof(gld_opcodes) /
        !           283:                sizeof(gld_opcodes[0]);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.