1*3d8817e4Smiod /* PDP-11 opcde list. 2*3d8817e4Smiod Copyright 2001, 2002 Free Software Foundation, Inc. 3*3d8817e4Smiod 4*3d8817e4Smiod This file is part of GDB and GAS. 5*3d8817e4Smiod 6*3d8817e4Smiod GDB and GAS are free software; you can redistribute it and/or modify 7*3d8817e4Smiod it under the terms of the GNU General Public License as published by 8*3d8817e4Smiod the Free Software Foundation; either version 1, or (at your option) 9*3d8817e4Smiod any later version. 10*3d8817e4Smiod 11*3d8817e4Smiod GDB and GAS are distributed in the hope that it will be useful, 12*3d8817e4Smiod but WITHOUT ANY WARRANTY; without even the implied warranty of 13*3d8817e4Smiod MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*3d8817e4Smiod GNU General Public License for more details. 15*3d8817e4Smiod 16*3d8817e4Smiod You should have received a copy of the GNU General Public License 17*3d8817e4Smiod along with GDB or GAS; see the file COPYING. If not, write to 18*3d8817e4Smiod the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 19*3d8817e4Smiod 20*3d8817e4Smiod /* 21*3d8817e4Smiod * PDP-11 opcode types. 22*3d8817e4Smiod */ 23*3d8817e4Smiod 24*3d8817e4Smiod #define PDP11_OPCODE_NO_OPS 0 25*3d8817e4Smiod #define PDP11_OPCODE_REG 1 /* register */ 26*3d8817e4Smiod #define PDP11_OPCODE_OP 2 /* generic operand */ 27*3d8817e4Smiod #define PDP11_OPCODE_REG_OP 3 /* register and generic operand */ 28*3d8817e4Smiod #define PDP11_OPCODE_REG_OP_REV 4 /* register and generic operand, 29*3d8817e4Smiod reversed syntax */ 30*3d8817e4Smiod #define PDP11_OPCODE_AC_FOP 5 /* fpu accumulator and generic float 31*3d8817e4Smiod operand */ 32*3d8817e4Smiod #define PDP11_OPCODE_OP_OP 6 /* two generic operands */ 33*3d8817e4Smiod #define PDP11_OPCODE_DISPL 7 /* pc-relative displacement */ 34*3d8817e4Smiod #define PDP11_OPCODE_REG_DISPL 8 /* redister and pc-relative 35*3d8817e4Smiod displacement */ 36*3d8817e4Smiod #define PDP11_OPCODE_IMM8 9 /* 8-bit immediate */ 37*3d8817e4Smiod #define PDP11_OPCODE_IMM6 10 /* 6-bit immediate */ 38*3d8817e4Smiod #define PDP11_OPCODE_IMM3 11 /* 3-bit immediate */ 39*3d8817e4Smiod #define PDP11_OPCODE_ILLEGAL 12 /* illegal instruction */ 40*3d8817e4Smiod #define PDP11_OPCODE_FOP_AC 13 /* generic float argument, then fpu 41*3d8817e4Smiod accumulator */ 42*3d8817e4Smiod #define PDP11_OPCODE_FOP 14 /* generic float operand */ 43*3d8817e4Smiod #define PDP11_OPCODE_AC_OP 15 /* fpu accumulator and generic int 44*3d8817e4Smiod operand */ 45*3d8817e4Smiod #define PDP11_OPCODE_OP_AC 16 /* generic int argument, then fpu 46*3d8817e4Smiod accumulator */ 47*3d8817e4Smiod 48*3d8817e4Smiod /* 49*3d8817e4Smiod * PDP-11 instruction set extensions. 50*3d8817e4Smiod * 51*3d8817e4Smiod * Please keep the numbers low, as they are used as indices into 52*3d8817e4Smiod * an array. 53*3d8817e4Smiod */ 54*3d8817e4Smiod 55*3d8817e4Smiod #define PDP11_NONE 0 /* not in instruction set */ 56*3d8817e4Smiod #define PDP11_BASIC 1 /* basic instruction set (11/20 etc) */ 57*3d8817e4Smiod #define PDP11_CSM 2 /* commercial instruction set */ 58*3d8817e4Smiod #define PDP11_CIS 3 /* commercial instruction set */ 59*3d8817e4Smiod #define PDP11_EIS 4 /* extended instruction set (11/45 etc) */ 60*3d8817e4Smiod #define PDP11_FIS 5 /* KEV11 floating-point instructions */ 61*3d8817e4Smiod #define PDP11_FPP 6 /* FP-11 floating-point instructions */ 62*3d8817e4Smiod #define PDP11_LEIS 7 /* limited extended instruction set 63*3d8817e4Smiod (11/40 etc) */ 64*3d8817e4Smiod #define PDP11_MFPT 8 /* move from processor type */ 65*3d8817e4Smiod #define PDP11_MPROC 9 /* multiprocessor instructions: tstset, 66*3d8817e4Smiod wrtlck */ 67*3d8817e4Smiod #define PDP11_MXPS 10 /* move from/to processor status */ 68*3d8817e4Smiod #define PDP11_SPL 11 /* set priority level */ 69*3d8817e4Smiod #define PDP11_UCODE 12 /* microcode instructions: ldub, med, xfc */ 70*3d8817e4Smiod #define PDP11_EXT_NUM 13 /* total number of extension types */ 71*3d8817e4Smiod 72*3d8817e4Smiod struct pdp11_opcode 73*3d8817e4Smiod { 74*3d8817e4Smiod const char *name; 75*3d8817e4Smiod int opcode; 76*3d8817e4Smiod int mask; 77*3d8817e4Smiod int type; 78*3d8817e4Smiod int extension; 79*3d8817e4Smiod }; 80*3d8817e4Smiod 81*3d8817e4Smiod extern const struct pdp11_opcode pdp11_opcodes[]; 82*3d8817e4Smiod extern const struct pdp11_opcode pdp11_aliases[]; 83*3d8817e4Smiod extern const int pdp11_num_opcodes, pdp11_num_aliases; 84*3d8817e4Smiod 85*3d8817e4Smiod /* end of pdp11.h */ 86