1*3d8817e4Smiod /* Opcode table for PDP-11. 2*3d8817e4Smiod Copyright 2001, 2002, 2006 Free Software Foundation, Inc. 3*3d8817e4Smiod 4*3d8817e4Smiod This file is free software; you can redistribute it and/or modify 5*3d8817e4Smiod it under the terms of the GNU General Public License as published by 6*3d8817e4Smiod the Free Software Foundation; either version 2 of the License, or 7*3d8817e4Smiod (at your option) any later version. 8*3d8817e4Smiod 9*3d8817e4Smiod This program is distributed in the hope that it will be useful, 10*3d8817e4Smiod but WITHOUT ANY WARRANTY; without even the implied warranty of 11*3d8817e4Smiod MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12*3d8817e4Smiod GNU General Public License for more details. 13*3d8817e4Smiod 14*3d8817e4Smiod You should have received a copy of the GNU General Public License 15*3d8817e4Smiod along with this program; if not, write to the Free Software 16*3d8817e4Smiod Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 17*3d8817e4Smiod 18*3d8817e4Smiod #include "opcode/pdp11.h" 19*3d8817e4Smiod 20*3d8817e4Smiod const struct pdp11_opcode pdp11_opcodes[] = 21*3d8817e4Smiod { 22*3d8817e4Smiod /* name, pattern, mask, opcode type, insn type, alias */ 23*3d8817e4Smiod { "halt", 0x0000, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 24*3d8817e4Smiod { "wait", 0x0001, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 25*3d8817e4Smiod { "rti", 0x0002, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 26*3d8817e4Smiod { "bpt", 0x0003, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 27*3d8817e4Smiod { "iot", 0x0004, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 28*3d8817e4Smiod { "reset", 0x0005, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 29*3d8817e4Smiod { "rtt", 0x0006, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_LEIS }, 30*3d8817e4Smiod { "mfpt", 0x0007, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_MFPT }, 31*3d8817e4Smiod { "jmp", 0x0040, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 32*3d8817e4Smiod { "rts", 0x0080, 0xfff8, PDP11_OPCODE_REG, PDP11_BASIC }, 33*3d8817e4Smiod { "", 0x0088, 0xfff8, PDP11_OPCODE_ILLEGAL, PDP11_NONE }, 34*3d8817e4Smiod { "", 0x0090, 0xfff8, PDP11_OPCODE_ILLEGAL, PDP11_NONE }, 35*3d8817e4Smiod { "spl", 0x0098, 0xfff8, PDP11_OPCODE_IMM3, PDP11_SPL }, 36*3d8817e4Smiod { "nop", 0x00a0, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 37*3d8817e4Smiod { "clc", 0x00a1, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 38*3d8817e4Smiod { "clv", 0x00a2, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 39*3d8817e4Smiod { "cl_3", 0x00a3, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 40*3d8817e4Smiod { "clz", 0x00a4, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 41*3d8817e4Smiod { "cl_5", 0x00a5, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 42*3d8817e4Smiod { "cl_6", 0x00a6, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 43*3d8817e4Smiod { "cl_7", 0x00a7, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 44*3d8817e4Smiod { "cln", 0x00a8, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 45*3d8817e4Smiod { "cl_9", 0x00a9, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 46*3d8817e4Smiod { "cl_a", 0x00aa, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 47*3d8817e4Smiod { "cl_b", 0x00ab, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 48*3d8817e4Smiod { "cl_c", 0x00ac, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 49*3d8817e4Smiod { "cl_d", 0x00ad, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 50*3d8817e4Smiod { "cl_e", 0x00ae, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 51*3d8817e4Smiod { "ccc", 0x00af, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 52*3d8817e4Smiod { "se_0", 0x00b0, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 53*3d8817e4Smiod { "sec", 0x00b1, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 54*3d8817e4Smiod { "sev", 0x00b2, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 55*3d8817e4Smiod { "se_3", 0x00b3, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 56*3d8817e4Smiod { "sez", 0x00b4, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 57*3d8817e4Smiod { "se_5", 0x00b5, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 58*3d8817e4Smiod { "se_6", 0x00b6, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 59*3d8817e4Smiod { "se_7", 0x00b7, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 60*3d8817e4Smiod { "sen", 0x00b8, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 61*3d8817e4Smiod { "se_9", 0x00b9, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 62*3d8817e4Smiod { "se_a", 0x00ba, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 63*3d8817e4Smiod { "se_b", 0x00bb, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 64*3d8817e4Smiod { "se_c", 0x00bc, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 65*3d8817e4Smiod { "se_d", 0x00bd, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 66*3d8817e4Smiod { "se_e", 0x00be, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 67*3d8817e4Smiod { "scc", 0x00bf, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_BASIC }, 68*3d8817e4Smiod { "swab", 0x00c0, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 69*3d8817e4Smiod { "br", 0x0100, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 70*3d8817e4Smiod { "bne", 0x0200, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 71*3d8817e4Smiod { "beq", 0x0300, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 72*3d8817e4Smiod { "bge", 0x0400, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 73*3d8817e4Smiod { "blt", 0x0500, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 74*3d8817e4Smiod { "bgt", 0x0600, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 75*3d8817e4Smiod { "ble", 0x0700, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 76*3d8817e4Smiod { "jsr", 0x0800, 0xfe00, PDP11_OPCODE_REG_OP, PDP11_BASIC }, 77*3d8817e4Smiod { "clr", 0x0a00, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 78*3d8817e4Smiod { "com", 0x0a40, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 79*3d8817e4Smiod { "inc", 0x0a80, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 80*3d8817e4Smiod { "dec", 0x0ac0, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 81*3d8817e4Smiod { "neg", 0x0b00, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 82*3d8817e4Smiod { "adc", 0x0b40, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 83*3d8817e4Smiod { "sbc", 0x0b80, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 84*3d8817e4Smiod { "tst", 0x0bc0, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 85*3d8817e4Smiod { "ror", 0x0c00, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 86*3d8817e4Smiod { "rol", 0x0c40, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 87*3d8817e4Smiod { "asr", 0x0c80, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 88*3d8817e4Smiod { "asl", 0x0cc0, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 89*3d8817e4Smiod { "mark", 0x0d00, 0xffc0, PDP11_OPCODE_IMM6, PDP11_LEIS }, 90*3d8817e4Smiod { "mfpi", 0x0d40, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 91*3d8817e4Smiod { "mtpi", 0x0d80, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 92*3d8817e4Smiod { "sxt", 0x0dc0, 0xffc0, PDP11_OPCODE_OP, PDP11_LEIS }, 93*3d8817e4Smiod { "csm", 0x0e00, 0xffc0, PDP11_OPCODE_OP, PDP11_CSM }, 94*3d8817e4Smiod { "tstset", 0x0e40, 0xffc0, PDP11_OPCODE_OP, PDP11_MPROC }, 95*3d8817e4Smiod { "wrtlck", 0x0e80, 0xffc0, PDP11_OPCODE_OP, PDP11_MPROC }, 96*3d8817e4Smiod /*{ "", 0x0ec0, 0xffe0, PDP11_OPCODE_ILLEGAL, PDP11_NONE },*/ 97*3d8817e4Smiod { "mov", 0x1000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 98*3d8817e4Smiod { "cmp", 0x2000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 99*3d8817e4Smiod { "bit", 0x3000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 100*3d8817e4Smiod { "bic", 0x4000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 101*3d8817e4Smiod { "bis", 0x5000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 102*3d8817e4Smiod { "add", 0x6000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 103*3d8817e4Smiod { "mul", 0x7000, 0xfe00, PDP11_OPCODE_REG_OP_REV,PDP11_EIS }, 104*3d8817e4Smiod { "div", 0x7200, 0xfe00, PDP11_OPCODE_REG_OP_REV,PDP11_EIS }, 105*3d8817e4Smiod { "ash", 0x7400, 0xfe00, PDP11_OPCODE_REG_OP_REV,PDP11_EIS }, 106*3d8817e4Smiod { "ashc", 0x7600, 0xfe00, PDP11_OPCODE_REG_OP_REV,PDP11_EIS }, 107*3d8817e4Smiod { "xor", 0x7800, 0xfe00, PDP11_OPCODE_REG_OP, PDP11_LEIS }, 108*3d8817e4Smiod { "fadd", 0x7a00, 0xfff8, PDP11_OPCODE_REG, PDP11_FIS }, 109*3d8817e4Smiod { "fsub", 0x7a08, 0xfff8, PDP11_OPCODE_REG, PDP11_FIS }, 110*3d8817e4Smiod { "fmul", 0x7a10, 0xfff8, PDP11_OPCODE_REG, PDP11_FIS }, 111*3d8817e4Smiod { "fdiv", 0x7a18, 0xfff8, PDP11_OPCODE_REG, PDP11_FIS }, 112*3d8817e4Smiod /*{ "", 0x7a20, 0xffe0, PDP11_OPCODE_ILLEGAL, PDP11_NONE },*/ 113*3d8817e4Smiod /*{ "", 0x7a40, 0xffc0, PDP11_OPCODE_ILLEGAL, PDP11_NONE },*/ 114*3d8817e4Smiod /*{ "", 0x7a80, 0xff80, PDP11_OPCODE_ILLEGAL, PDP11_NONE },*/ 115*3d8817e4Smiod /*{ "", 0x7b00, 0xffe0, PDP11_OPCODE_ILLEGAL, PDP11_NONE },*/ 116*3d8817e4Smiod { "l2dr", 0x7c10, 0xfff8, PDP11_OPCODE_REG, PDP11_CIS },/*l2d*/ 117*3d8817e4Smiod { "movc", 0x7c18, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 118*3d8817e4Smiod { "movrc", 0x7c19, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 119*3d8817e4Smiod { "movtc", 0x7c1a, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 120*3d8817e4Smiod { "locc", 0x7c20, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 121*3d8817e4Smiod { "skpc", 0x7c21, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 122*3d8817e4Smiod { "scanc", 0x7c22, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 123*3d8817e4Smiod { "spanc", 0x7c23, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 124*3d8817e4Smiod { "cmpc", 0x7c24, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 125*3d8817e4Smiod { "matc", 0x7c25, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 126*3d8817e4Smiod { "addn", 0x7c28, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 127*3d8817e4Smiod { "subn", 0x7c29, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 128*3d8817e4Smiod { "cmpn", 0x7c2a, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 129*3d8817e4Smiod { "cvtnl", 0x7c2b, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 130*3d8817e4Smiod { "cvtpn", 0x7c2c, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 131*3d8817e4Smiod { "cvtnp", 0x7c2d, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 132*3d8817e4Smiod { "ashn", 0x7c2e, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 133*3d8817e4Smiod { "cvtln", 0x7c2f, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 134*3d8817e4Smiod { "l3dr", 0x7c30, 0xfff8, PDP11_OPCODE_REG, PDP11_CIS },/*l3d*/ 135*3d8817e4Smiod { "addp", 0x7c38, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 136*3d8817e4Smiod { "subp", 0x7c39, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 137*3d8817e4Smiod { "cmpp", 0x7c3a, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 138*3d8817e4Smiod { "cvtpl", 0x7c3b, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 139*3d8817e4Smiod { "mulp", 0x7c3c, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 140*3d8817e4Smiod { "divp", 0x7c3d, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 141*3d8817e4Smiod { "ashp", 0x7c3e, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 142*3d8817e4Smiod { "cvtlp", 0x7c3f, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 143*3d8817e4Smiod { "movci", 0x7c58, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 144*3d8817e4Smiod { "movrci", 0x7c59, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 145*3d8817e4Smiod { "movtci", 0x7c5a, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 146*3d8817e4Smiod { "locci", 0x7c60, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 147*3d8817e4Smiod { "skpci", 0x7c61, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 148*3d8817e4Smiod { "scanci", 0x7c62, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 149*3d8817e4Smiod { "spanci", 0x7c63, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 150*3d8817e4Smiod { "cmpci", 0x7c64, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 151*3d8817e4Smiod { "matci", 0x7c65, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 152*3d8817e4Smiod { "addni", 0x7c68, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 153*3d8817e4Smiod { "subni", 0x7c69, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 154*3d8817e4Smiod { "cmpni", 0x7c6a, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 155*3d8817e4Smiod { "cvtnli", 0x7c6b, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 156*3d8817e4Smiod { "cvtpni", 0x7c6c, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 157*3d8817e4Smiod { "cvtnpi", 0x7c6d, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 158*3d8817e4Smiod { "ashni", 0x7c6e, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 159*3d8817e4Smiod { "cvtlni", 0x7c6f, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 160*3d8817e4Smiod { "addpi", 0x7c78, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 161*3d8817e4Smiod { "subpi", 0x7c79, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 162*3d8817e4Smiod { "cmppi", 0x7c7a, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 163*3d8817e4Smiod { "cvtpli", 0x7c7b, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 164*3d8817e4Smiod { "mulpi", 0x7c7c, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 165*3d8817e4Smiod { "divpi", 0x7c7d, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 166*3d8817e4Smiod { "ashpi", 0x7c7e, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 167*3d8817e4Smiod { "cvtlpi", 0x7c7f, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_CIS }, 168*3d8817e4Smiod { "med", 0x7d80, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_UCODE }, 169*3d8817e4Smiod { "xfc", 0x7dc0, 0xffc0, PDP11_OPCODE_IMM6, PDP11_UCODE }, 170*3d8817e4Smiod { "sob", 0x7e00, 0xfe00, PDP11_OPCODE_REG_DISPL, PDP11_LEIS }, 171*3d8817e4Smiod { "bpl", 0x8000, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 172*3d8817e4Smiod { "bmi", 0x8100, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 173*3d8817e4Smiod { "bhi", 0x8200, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 174*3d8817e4Smiod { "blos", 0x8300, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 175*3d8817e4Smiod { "bvc", 0x8400, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 176*3d8817e4Smiod { "bvs", 0x8500, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 177*3d8817e4Smiod { "bcc", 0x8600, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC },/*bhis*/ 178*3d8817e4Smiod { "bcs", 0x8700, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC },/*blo*/ 179*3d8817e4Smiod { "emt", 0x8800, 0xff00, PDP11_OPCODE_IMM8, PDP11_BASIC }, 180*3d8817e4Smiod { "sys", 0x8900, 0xff00, PDP11_OPCODE_IMM8, PDP11_BASIC },/*trap*/ 181*3d8817e4Smiod { "clrb", 0x8a00, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 182*3d8817e4Smiod { "comb", 0x8a40, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 183*3d8817e4Smiod { "incb", 0x8a80, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 184*3d8817e4Smiod { "decb", 0x8ac0, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 185*3d8817e4Smiod { "negb", 0x8b00, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 186*3d8817e4Smiod { "adcb", 0x8b40, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 187*3d8817e4Smiod { "sbcb", 0x8b80, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 188*3d8817e4Smiod { "tstb", 0x8bc0, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 189*3d8817e4Smiod { "rorb", 0x8c00, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 190*3d8817e4Smiod { "rolb", 0x8c40, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 191*3d8817e4Smiod { "asrb", 0x8c80, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 192*3d8817e4Smiod { "aslb", 0x8cc0, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 193*3d8817e4Smiod { "mtps", 0x8d00, 0xffc0, PDP11_OPCODE_OP, PDP11_MXPS }, 194*3d8817e4Smiod { "mfpd", 0x8d40, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 195*3d8817e4Smiod { "mtpd", 0x8d80, 0xffc0, PDP11_OPCODE_OP, PDP11_BASIC }, 196*3d8817e4Smiod { "mfps", 0x8dc0, 0xffc0, PDP11_OPCODE_OP, PDP11_MXPS }, 197*3d8817e4Smiod { "movb", 0x9000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 198*3d8817e4Smiod { "cmpb", 0xa000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 199*3d8817e4Smiod { "bitb", 0xb000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 200*3d8817e4Smiod { "bicb", 0xc000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 201*3d8817e4Smiod { "bisb", 0xd000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 202*3d8817e4Smiod { "sub", 0xe000, 0xf000, PDP11_OPCODE_OP_OP, PDP11_BASIC }, 203*3d8817e4Smiod { "cfcc", 0xf000, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_FPP }, 204*3d8817e4Smiod { "setf", 0xf001, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_FPP }, 205*3d8817e4Smiod { "seti", 0xf002, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_FPP }, 206*3d8817e4Smiod { "ldub", 0xf003, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_UCODE }, 207*3d8817e4Smiod /* fpp trap 0xf004..0xf008 */ 208*3d8817e4Smiod { "setd", 0xf009, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_FPP }, 209*3d8817e4Smiod { "setl", 0xf00a, 0xffff, PDP11_OPCODE_NO_OPS, PDP11_FPP }, 210*3d8817e4Smiod /* fpp trap 0xf00b..0xf03f */ 211*3d8817e4Smiod { "ldfps", 0xf040, 0xffc0, PDP11_OPCODE_OP, PDP11_FPP }, 212*3d8817e4Smiod { "stfps", 0xf080, 0xffc0, PDP11_OPCODE_OP, PDP11_FPP }, 213*3d8817e4Smiod { "stst", 0xf0c0, 0xffc0, PDP11_OPCODE_OP, PDP11_FPP }, 214*3d8817e4Smiod { "clrf", 0xf100, 0xffc0, PDP11_OPCODE_FOP, PDP11_FPP }, 215*3d8817e4Smiod { "tstf", 0xf140, 0xffc0, PDP11_OPCODE_FOP, PDP11_FPP }, 216*3d8817e4Smiod { "absf", 0xf180, 0xffc0, PDP11_OPCODE_FOP, PDP11_FPP }, 217*3d8817e4Smiod { "negf", 0xf1c0, 0xffc0, PDP11_OPCODE_FOP, PDP11_FPP }, 218*3d8817e4Smiod { "mulf", 0xf200, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 219*3d8817e4Smiod { "modf", 0xf300, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 220*3d8817e4Smiod { "addf", 0xf400, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 221*3d8817e4Smiod { "ldf", 0xf500, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP },/*movif*/ 222*3d8817e4Smiod { "subf", 0xf600, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 223*3d8817e4Smiod { "cmpf", 0xf700, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 224*3d8817e4Smiod { "stf", 0xf800, 0xff00, PDP11_OPCODE_AC_FOP, PDP11_FPP },/*movfi*/ 225*3d8817e4Smiod { "divf", 0xf900, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 226*3d8817e4Smiod { "stexp", 0xfa00, 0xff00, PDP11_OPCODE_AC_OP, PDP11_FPP }, 227*3d8817e4Smiod { "stcfi", 0xfb00, 0xff00, PDP11_OPCODE_AC_OP, PDP11_FPP }, 228*3d8817e4Smiod { "stcff", 0xfc00, 0xff00, PDP11_OPCODE_AC_FOP, PDP11_FPP },/* ? */ 229*3d8817e4Smiod { "ldexp", 0xfd00, 0xff00, PDP11_OPCODE_OP_AC, PDP11_FPP }, 230*3d8817e4Smiod { "ldcif", 0xfe00, 0xff00, PDP11_OPCODE_OP_AC, PDP11_FPP }, 231*3d8817e4Smiod { "ldcff", 0xff00, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP },/* ? */ 232*3d8817e4Smiod /* This entry MUST be last; it is a "catch-all" entry that will match when no 233*3d8817e4Smiod * other opcode entry matches during disassembly. 234*3d8817e4Smiod */ 235*3d8817e4Smiod { "", 0x0000, 0x0000, PDP11_OPCODE_ILLEGAL, PDP11_NONE }, 236*3d8817e4Smiod }; 237*3d8817e4Smiod 238*3d8817e4Smiod const struct pdp11_opcode pdp11_aliases[] = 239*3d8817e4Smiod { 240*3d8817e4Smiod /* name, pattern, mask, opcode type, insn type */ 241*3d8817e4Smiod { "l2d", 0x7c10, 0xfff8, PDP11_OPCODE_REG, PDP11_CIS }, 242*3d8817e4Smiod { "l3d", 0x7c30, 0xfff8, PDP11_OPCODE_REG, PDP11_CIS }, 243*3d8817e4Smiod { "bhis", 0x8600, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 244*3d8817e4Smiod { "blo", 0x8700, 0xff00, PDP11_OPCODE_DISPL, PDP11_BASIC }, 245*3d8817e4Smiod { "trap", 0x8900, 0xff00, PDP11_OPCODE_IMM8, PDP11_BASIC }, 246*3d8817e4Smiod /* fpp xxxd alternate names to xxxf opcodes */ 247*3d8817e4Smiod { "clrd", 0xf100, 0xffc0, PDP11_OPCODE_FOP, PDP11_FPP }, 248*3d8817e4Smiod { "tstd", 0xf140, 0xffc0, PDP11_OPCODE_FOP, PDP11_FPP }, 249*3d8817e4Smiod { "absd", 0xf180, 0xffc0, PDP11_OPCODE_FOP, PDP11_FPP }, 250*3d8817e4Smiod { "negd", 0xf1c0, 0xffc0, PDP11_OPCODE_FOP, PDP11_FPP }, 251*3d8817e4Smiod { "muld", 0xf200, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 252*3d8817e4Smiod { "modd", 0xf300, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 253*3d8817e4Smiod { "addd", 0xf400, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 254*3d8817e4Smiod { "ldd", 0xf500, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP },/*movif*/ 255*3d8817e4Smiod { "subd", 0xf600, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 256*3d8817e4Smiod { "cmpd", 0xf700, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 257*3d8817e4Smiod { "std", 0xf800, 0xff00, PDP11_OPCODE_AC_FOP, PDP11_FPP },/*movfi*/ 258*3d8817e4Smiod { "divd", 0xf900, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP }, 259*3d8817e4Smiod { "stcfl", 0xfb00, 0xff00, PDP11_OPCODE_AC_OP, PDP11_FPP }, 260*3d8817e4Smiod { "stcdi", 0xfb00, 0xff00, PDP11_OPCODE_AC_OP, PDP11_FPP }, 261*3d8817e4Smiod { "stcdl", 0xfb00, 0xff00, PDP11_OPCODE_AC_OP, PDP11_FPP }, 262*3d8817e4Smiod { "stcfd", 0xfc00, 0xff00, PDP11_OPCODE_AC_FOP, PDP11_FPP },/* ? */ 263*3d8817e4Smiod { "stcdf", 0xfc00, 0xff00, PDP11_OPCODE_AC_FOP, PDP11_FPP },/* ? */ 264*3d8817e4Smiod { "ldcid", 0xfe00, 0xff00, PDP11_OPCODE_OP_AC, PDP11_FPP }, 265*3d8817e4Smiod { "ldclf", 0xfe00, 0xff00, PDP11_OPCODE_OP_AC, PDP11_FPP }, 266*3d8817e4Smiod { "ldcld", 0xfe00, 0xff00, PDP11_OPCODE_OP_AC, PDP11_FPP }, 267*3d8817e4Smiod { "ldcfd", 0xff00, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP },/* ? */ 268*3d8817e4Smiod { "ldcdf", 0xff00, 0xff00, PDP11_OPCODE_FOP_AC, PDP11_FPP },/* ? */ 269*3d8817e4Smiod }; 270*3d8817e4Smiod 271*3d8817e4Smiod const int pdp11_num_opcodes = sizeof pdp11_opcodes / sizeof pdp11_opcodes[0]; 272*3d8817e4Smiod const int pdp11_num_aliases = sizeof pdp11_aliases / sizeof pdp11_aliases[0]; 273