m88k-opcode.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 560 行 · 第 1/2 页

H
560
字号
/* m88k-opcode.h -- Instruction information for the Motorola 88000   Contributed by Devon Bowen of Buffalo University   and Torbjorn Granlund of the Swedish Institute of Computer Science.   Copyright 1989, 1990, 1991, 1993, 2000 Free Software Foundation, Inc.This file is part of GAS, the GNU Assembler.GAS is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 1, or (at your option)any later version.GAS is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GAS; see the file COPYING.  If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */#if !defined(__STDC__) && !defined(const)#define const#endif/*  Character codes for op_spec field below.  Reserved for self-matching: [ ] ,  d = GRF Destination register (21:5)  x = XRF register prefix.  Makes next d, 1, or 2, match an extended register.  1 = Source register 1 (16:5)  2 = Source register 2 (0:5)  3 = Both source registers (same value) (0:5 and 16:5)  I = IMM16 (0:16)  b = bit field spec. (0:10)  p = 16 bit pc displ. (0:16)  P = 26 bit pc displ. (0:26)  B = bb0/bb1 condition (21:5)  M = bcnd condition (21:5)  f = fcr (5:6)  c = cr (5:6)  V = VEC9 (0:9)  o = O6 field of "prot" insn (10:7)  ? = Give warning for this insn/operand combination *//* instruction descriptor structure */struct m88k_opcode{  unsigned int opcode;  char *name;  char *op_spec;};/* and introducing... the Motorola 88100 and 88110 instruction sets...  *//* By default, include the 88110 instructions.  */#define MC88110#if defined (MC88110)#define _MC88100(OPCODE,MNEM,OP_SPEC)#define _MC88110(OPCODE,MNEM,OP_SPEC) {OPCODE,MNEM,OP_SPEC},#else#define _MC88100(OPCODE,MNEM,OP_SPEC) {OPCODE,MNEM,OP_SPEC},#define _MC88110(OPCODE,MNEM,OP_SPEC)#endif#define _MC88xxx(OPCODE,MNEM,OP_SPEC) {OPCODE,MNEM,OP_SPEC},/* Equal mnemonics must be adjacent.   More specific operand specification must go before more general.   For example, "d,1,2" must go before "d,1,I" as a register for s2   would otherwise be considered a variable name.  */static struct m88k_opcode m88k_opcodes[] ={  /*	   Opcode	Mnemonic	Opspec */  _MC88xxx (0xf4007000, "add",		"d,1,2")  _MC88xxx (0x70000000, "add",		"d,1,I")  _MC88xxx (0xf4007200, "add.ci",	"d,1,2")  _MC88xxx (0xf4007300, "add.cio",	"d,1,2")  _MC88xxx (0xf4007100, "add.co",	"d,1,2")  _MC88xxx (0xf4006000, "addu",		"d,1,2")  _MC88xxx (0x60000000, "addu",		"d,1,I")  _MC88xxx (0xf4006200, "addu.ci",	"d,1,2")  _MC88xxx (0xf4006300, "addu.cio",	"d,1,2")  _MC88xxx (0xf4006100, "addu.co",	"d,1,2")  _MC88xxx (0xf4004000, "and",		"d,1,2")  _MC88xxx (0x40000000, "and",		"d,1,I")  _MC88xxx (0xf4004400, "and.c",	"d,1,2")  _MC88xxx (0x44000000, "and.u",	"d,1,I")  _MC88xxx (0xd0000000, "bb0",		"B,1,p")  _MC88xxx (0xd4000000, "bb0.n",	"B,1,p")  _MC88xxx (0xd8000000, "bb1",		"B,1,p")  _MC88xxx (0xdc000000, "bb1.n",	"B,1,p")  _MC88xxx (0xe8000000, "bcnd",		"M,1,p")  _MC88xxx (0xec000000, "bcnd.n",	"M,1,p")  _MC88xxx (0xc0000000, "br",		"P")  _MC88xxx (0xc4000000, "br.n",		"P")  _MC88xxx (0xc8000000, "bsr",		"P")  _MC88xxx (0xcc000000, "bsr.n",	"P")  _MC88xxx (0xf4008000, "clr",		"d,1,2")  _MC88xxx (0xf0008000, "clr",		"d,1,b")  _MC88xxx (0xf4007c00, "cmp",		"d,1,2")  _MC88xxx (0x7c000000, "cmp",		"d,1,I")  _MC88xxx (0xf4007800, "div",		"d,1,2")  _MC88xxx (0x78000000, "div",		"d,1,I")  _MC88xxx (0xf4007800, "divs",		"d,1,2")  _MC88xxx (0x78000000, "divs",		"d,1,I")  _MC88110 (0xf4006900, "divu.d",	"d,1,2")  _MC88xxx (0xf4006800, "divu",		"d,1,2")  _MC88xxx (0x68000000, "divu",		"d,1,I")  _MC88xxx (0xf4009000, "ext",		"d,1,2")  _MC88xxx (0xf0009000, "ext",		"d,1,b")  _MC88xxx (0xf4009800, "extu",		"d,1,2")  _MC88xxx (0xf0009800, "extu",		"d,1,b")  _MC88xxx (0x84002800, "fadd.sss",	"d,1,2")  _MC88110 (0x8400a800, "fadd.sss",	"xd,x1,x2")  _MC88xxx (0x84002880, "fadd.ssd",	"d,1,2")  _MC88110 (0x8400a820, "fadd.ssd",	"xd,x1,x2")  _MC88110 (0x8400a840, "fadd.ssx",	"xd,x1,x2")  _MC88xxx (0x84002a00, "fadd.sds",	"d,1,2")  _MC88110 (0x8400a880, "fadd.sds",	"xd,x1,x2")  _MC88xxx (0x84002a80, "fadd.sdd",	"d,1,2")  _MC88110 (0x8400a8a0, "fadd.sdd",	"xd,x1,x2")  _MC88110 (0x8400a8c0, "fadd.sdx",	"xd,x1,x2")  _MC88110 (0x8400a900, "fadd.sxs",	"xd,x1,x2")  _MC88110 (0x8400a920, "fadd.sxd",	"xd,x1,x2")  _MC88110 (0x8400a940, "fadd.sxx",	"xd,x1,x2")  _MC88xxx (0x84002820, "fadd.dss",	"d,1,2")  _MC88110 (0x8400aa00, "fadd.dss",	"xd,x1,x2")  _MC88xxx (0x840028a0, "fadd.dsd",	"d,1,2")  _MC88110 (0x8400aa20, "fadd.dsd",	"xd,x1,x2")  _MC88110 (0x8400aa40, "fadd.dsx",	"xd,x1,x2")  _MC88xxx (0x84002a20, "fadd.dds",	"d,1,2")  _MC88110 (0x8400aa80, "fadd.dds",	"xd,x1,x2")  _MC88xxx (0x84002aa0, "fadd.ddd",	"d,1,2")  _MC88110 (0x8400aaa0, "fadd.ddd",	"xd,x1,x2")  _MC88110 (0x8400aac0, "fadd.ddx",	"xd,x1,x2")  _MC88110 (0x8400ab00, "fadd.dxs",	"xd,x1,x2")  _MC88110 (0x8400ab20, "fadd.dxd",	"xd,x1,x2")  _MC88110 (0x8400ab40, "fadd.dxx",	"xd,x1,x2")  _MC88110 (0x8400ac00, "fadd.xss",	"xd,x1,x2")  _MC88110 (0x8400ac20, "fadd.xsd",	"xd,x1,x2")  _MC88110 (0x8400ac40, "fadd.xsx",	"xd,x1,x2")  _MC88110 (0x8400ac80, "fadd.xds",	"xd,x1,x2")  _MC88110 (0x8400aca0, "fadd.xdd",	"xd,x1,x2")  _MC88110 (0x8400acc0, "fadd.xdx",	"xd,x1,x2")  _MC88110 (0x8400ad00, "fadd.xxs",	"xd,x1,x2")  _MC88110 (0x8400ad20, "fadd.xxd",	"xd,x1,x2")  _MC88110 (0x8400ad40, "fadd.xxx",	"xd,x1,x2")  _MC88xxx (0x84003a80, "fcmp.sdd",	"d,1,2")  _MC88110 (0x8400ba80, "fcmp.sdd",	"d,x1,x2")  _MC88xxx (0x84003a00, "fcmp.sds",	"d,1,2")  _MC88110 (0x8400ba00, "fcmp.sds",	"d,x1,x2")  _MC88110 (0x8400bb00, "fcmp.sdx",	"d,x1,x2")  _MC88xxx (0x84003880, "fcmp.ssd",	"d,1,2")  _MC88110 (0x8400b880, "fcmp.ssd",	"d,x1,x2")  _MC88xxx (0x84003800, "fcmp.sss",	"d,1,2")  _MC88110 (0x8400b800, "fcmp.sss",	"d,x1,x2")  _MC88110 (0x8400b900, "fcmp.ssx",	"d,x1,x2")  _MC88110 (0x8400bc80, "fcmp.sxd",	"d,x1,x2")  _MC88110 (0x8400bc00, "fcmp.sxs",	"d,x1,x2")  _MC88110 (0x8400bd00, "fcmp.sxx",	"d,x1,x2")  _MC88110 (0x84003aa0, "fcmpu.sdd",	"d,1,2")  _MC88110 (0x8400baa0, "fcmpu.sdd",	"d,x1,x2")  _MC88110 (0x84003a20, "fcmpu.sds",	"d,1,2")  _MC88110 (0x8400ba20, "fcmpu.sds",	"d,x1,x2")  _MC88110 (0x8400bb20, "fcmpu.sdx",	"d,x1,x2")  _MC88110 (0x840038a0, "fcmpu.ssd",	"d,1,2")  _MC88110 (0x8400b8a0, "fcmpu.ssd",	"d,x1,x2")  _MC88110 (0x84003820, "fcmpu.sss",	"d,1,2")  _MC88110 (0x8400b820, "fcmpu.sss",	"d,x1,x2")  _MC88110 (0x8400b920, "fcmpu.ssx",	"d,x1,x2")  _MC88110 (0x8400bca0, "fcmpu.sxd",	"d,x1,x2")  _MC88110 (0x8400bc20, "fcmpu.sxs",	"d,x1,x2")  _MC88110 (0x8400bd20, "fcmpu.sxx",	"d,x1,x2")  _MC88110 (0x84000880, "fcvt.ds",	"d,2")  _MC88110 (0x84008880, "fcvt.ds",	"xd,x2")  _MC88110 (0x840088c0, "fcvt.dx",	"xd,x2")  _MC88110 (0x84000820, "fcvt.sd",	"d,2")  _MC88110 (0x84008820, "fcvt.sd",	"xd,x2")  _MC88110 (0x84008840, "fcvt.sx",	"xd,x2")  _MC88110 (0x84008920, "fcvt.xd",	"xd,x2")  _MC88110 (0x84008900, "fcvt.xs",	"xd,x2")  _MC88xxx (0x84007000, "fdiv.sss",	"d,1,2")  _MC88110 (0x8400f000, "fdiv.sss",	"xd,x1,x2")  _MC88xxx (0x84007080, "fdiv.ssd",	"d,1,2")  _MC88110 (0x8400f020, "fdiv.ssd",	"xd,x1,x2")  _MC88110 (0x8400f040, "fdiv.ssx",	"xd,x1,x2")  _MC88xxx (0x84007200, "fdiv.sds",	"d,1,2")  _MC88110 (0x8400f080, "fdiv.sds",	"xd,x1,x2")  _MC88xxx (0x84007280, "fdiv.sdd",	"d,1,2")  _MC88110 (0x8400f0a0, "fdiv.sdd",	"xd,x1,x2")  _MC88110 (0x8400f0c0, "fdiv.sdx",	"xd,x1,x2")  _MC88110 (0x8400f100, "fdiv.sxs",	"xd,x1,x2")  _MC88110 (0x8400f120, "fdiv.sxd",	"xd,x1,x2")  _MC88110 (0x8400f140, "fdiv.sxx",	"xd,x1,x2")  _MC88xxx (0x84007020, "fdiv.dss",	"d,1,2")  _MC88110 (0x8400f200, "fdiv.dss",	"xd,x1,x2")  _MC88xxx (0x840070a0, "fdiv.dsd",	"d,1,2")  _MC88110 (0x8400f220, "fdiv.dsd",	"xd,x1,x2")  _MC88110 (0x8400f240, "fdiv.dsx",	"xd,x1,x2")  _MC88xxx (0x84007220, "fdiv.dds",	"d,1,2")  _MC88110 (0x8400f280, "fdiv.dds",	"xd,x1,x2")  _MC88xxx (0x840072a0, "fdiv.ddd",	"d,1,2")  _MC88110 (0x8400f2a0, "fdiv.ddd",	"xd,x1,x2")  _MC88110 (0x8400f2c0, "fdiv.ddx",	"xd,x1,x2")  _MC88110 (0x8400f300, "fdiv.dxs",	"xd,x1,x2")  _MC88110 (0x8400f320, "fdiv.dxd",	"xd,x1,x2")  _MC88110 (0x8400f340, "fdiv.dxx",	"xd,x1,x2")  _MC88110 (0x8400f400, "fdiv.xss",	"xd,x1,x2")  _MC88110 (0x8400f420, "fdiv.xsd",	"xd,x1,x2")  _MC88110 (0x8400f440, "fdiv.xsx",	"xd,x1,x2")  _MC88110 (0x8400f480, "fdiv.xds",	"xd,x1,x2")  _MC88110 (0x8400f4a0, "fdiv.xdd",	"xd,x1,x2")  _MC88110 (0x8400f4c0, "fdiv.xdx",	"xd,x1,x2")  _MC88110 (0x8400f500, "fdiv.xxs",	"xd,x1,x2")  _MC88110 (0x8400f520, "fdiv.xxd",	"xd,x1,x2")  _MC88110 (0x8400f540, "fdiv.xxx",	"xd,x1,x2")  _MC88xxx (0xf400ec00, "ff0",		"d,2")  _MC88xxx (0xf400e800, "ff1",		"d,2")  _MC88xxx (0x80004800, "fldcr",	"d,f")  _MC88xxx (0x84002020, "flt.ds",	"d,2")  _MC88110 (0x84002220, "flt.ds",	"xd,2")  _MC88xxx (0x84002000, "flt.ss",	"d,2")  _MC88110 (0x84002200, "flt.ss",	"xd,2")  _MC88110 (0x84002240, "flt.xs",	"xd,2")  _MC88xxx (0x84000000, "fmul.sss",	"d,1,2")  _MC88110 (0x84008000, "fmul.sss",	"xd,x1,x2")  _MC88xxx (0x84000080, "fmul.ssd",	"d,1,2")  _MC88110 (0x84008020, "fmul.ssd",	"xd,x1,x2")  _MC88110 (0x84008040, "fmul.ssx",	"xd,x1,x2")  _MC88xxx (0x84000200, "fmul.sds",	"d,1,2")  _MC88110 (0x84008080, "fmul.sds",	"xd,x1,x2")  _MC88xxx (0x84000280, "fmul.sdd",	"d,1,2")  _MC88110 (0x840080a0, "fmul.sdd",	"xd,x1,x2")  _MC88110 (0x840080c0, "fmul.sdx",	"xd,x1,x2")  _MC88110 (0x84008100, "fmul.sxs",	"xd,x1,x2")  _MC88110 (0x84008120, "fmul.sxd",	"xd,x1,x2")  _MC88110 (0x84008140, "fmul.sxx",	"xd,x1,x2")  _MC88xxx (0x84000020, "fmul.dss",	"d,1,2")  _MC88110 (0x84008200, "fmul.dss",	"xd,x1,x2")  _MC88xxx (0x840000a0, "fmul.dsd",	"d,1,2")  _MC88110 (0x84008220, "fmul.dsd",	"xd,x1,x2")  _MC88110 (0x84008240, "fmul.dsx",	"xd,x1,x2")  _MC88xxx (0x84000220, "fmul.dds",	"d,1,2")  _MC88110 (0x84008280, "fmul.dds",	"xd,x1,x2")  _MC88xxx (0x840002a0, "fmul.ddd",	"d,1,2")  _MC88110 (0x840082a0, "fmul.ddd",	"xd,x1,x2")  _MC88110 (0x840082c0, "fmul.ddx",	"xd,x1,x2")  _MC88110 (0x84008300, "fmul.dxs",	"xd,x1,x2")  _MC88110 (0x84008320, "fmul.dxd",	"xd,x1,x2")  _MC88110 (0x84008340, "fmul.dxx",	"xd,x1,x2")  _MC88110 (0x84008400, "fmul.xss",	"xd,x1,x2")  _MC88110 (0x84008420, "fmul.xsd",	"xd,x1,x2")  _MC88110 (0x84008440, "fmul.xsx",	"xd,x1,x2")  _MC88110 (0x84008480, "fmul.xds",	"xd,x1,x2")  _MC88110 (0x840084a0, "fmul.xdd",	"xd,x1,x2")  _MC88110 (0x840084c0, "fmul.xdx",	"xd,x1,x2")  _MC88110 (0x84008500, "fmul.xxs",	"xd,x1,x2")  _MC88110 (0x84008520, "fmul.xxd",	"xd,x1,x2")  _MC88110 (0x84008540, "fmul.xxx",	"xd,x1,x2")  _MC88110 (0x840078a0, "fsqrt.dd",	"d,2")  _MC88110 (0x8400f8a0, "fsqrt.dd",	"xd,x2")  _MC88110 (0x84007880, "fsqrt.ds",	"d,2")  _MC88110 (0x8400f880, "fsqrt.ds",	"xd,x2")  _MC88110 (0x8400f8c0, "fsqrt.dx",	"xd,x2")  _MC88110 (0x84007820, "fsqrt.sd",	"d,2")  _MC88110 (0x8400f820, "fsqrt.sd",	"xd,x2")  _MC88110 (0x84007800, "fsqrt.ss",	"d,2")  _MC88110 (0x8400f800, "fsqrt.ss",	"xd,x2")  _MC88110 (0x8400f840, "fsqrt.sx",	"xd,x2")  _MC88110 (0x8400f920, "fsqrt.xd",	"xd,x2")  _MC88110 (0x8400f900, "fsqrt.xs",	"xd,x2")  _MC88110 (0x8400f940, "fsqrt.xx",	"xd,x2")  _MC88xxx (0x80008800, "fstcr",	"3,f")

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?