Annotation of 43BSDReno/contrib/emacs-18.55/gdb/pn-opcode.h, revision 1.1.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.