/* Table of opcodes for the PA-RISC.
   Copyright (C) 1990, 1991, 1993, 1995, 1999 Free Software Foundation, Inc.

   Contributed by the Center for Software Science at the
   University of Utah (pa-gdb-bugs@cs.utah.edu).

This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler.

GAS/GDB is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.

GAS/GDB is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GAS or GDB; see the file COPYING.  If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */

#if !defined(__STDC__) && !defined(const)
#define const
#endif

/*
 * Structure of an opcode table entry.
 */

/* There are two kinds of delay slot nullification: normal which is
 * controled by the nullification bit, and conditional, which depends
 * on the direction of the branch and its success or failure.
 *
 * NONE is unfortunately #defined in the hiux system include files.  
 * #undef it away.
 */
#undef NONE
struct pa_opcode
{
    const char *name;
    unsigned long int match;	/* Bits that must be set...  */
    unsigned long int mask;	/* ... in these bits. */
    char *args;
    enum pa_arch arch;
};


/*
   All hppa opcodes are 32 bits.

   The match component is a mask saying which bits must match a
   particular opcode in order for an instruction to be an instance
   of that opcode.

   The args component is a string containing one character
   for each operand of the instruction.

   Bit positions in this description follow HP usage of lsb = 31,
   "at" is lsb of field.

   In the args field, the following characters must match exactly:

	'+,() '

   In the args field, the following characters are unused:

	'  "#$%    *+- ./          :;    '
	'                          [\]  '
	'                          { } '

   Here are all the characters:

	' !"#$%&'()*+-,./0123456789:;<=>?@'
	'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'
	'abcdefghijklmnopqrstuvwxyz{|}~'

Kinds of operands:
   x    integer register field at 15.
   b    integer register field at 10.
   t    integer register field at 31.
   y    floating point register field at 31
   5    5 bit immediate at 15.
   s    2 bit space specifier at 17.
   S    3 bit space specifier at 18.
   c    indexed load completer.
   C    short load and store completer.
   Y	Store Bytes Short completer
   <    non-negated compare/subtract conditions.
   a	compare/subtract conditions
   d    non-negated add conditions
   &    logical instruction conditions
   U    unit instruction conditions
   >    shift/extract/deposit conditions.
   ~    bvb,bb conditions
   V    5 bit immediate value at 31
   i    11 bit immediate value at 31
   j    14 bit immediate value at 31
   k    21 bit immediate value at 31
   n	nullification for branch instructions
   N	nullification for spop and copr instructions
   w    12 bit branch displacement
   W    17 bit branch displacement (PC relative)
   z    17 bit branch displacement (just a number, not an address)

Also these:

   p    5 bit shift count at 26 (to support the SHD instruction) encoded as
        31-p
   P    5 bit bit position at 26
   T    5 bit field length at 31 (encoded as 32-T)
   A    13 bit immediate at 18 (to support the BREAK instruction)
   ^	like b, but describes a control register
   Z    System Control Completer (to support LPA, LHA, etc.)
   D    26 bit immediate at 31 (to support the DIAG instruction)

   f    3 bit Special Function Unit identifier at 25
   O    20 bit Special Function Unit operation split between 15 bits at 20
        and 5 bits at 31
   o    15 bit Special Function Unit operation at 20
   2    22 bit Special Function Unit operation split between 17 bits at 20
        and 5 bits at 31
   1    15 bit Special Function Unit operation split between 10 bits at 20
        and 5 bits at 31
   0    10 bit Special Function Unit operation split between 5 bits at 20
        and 5 bits at 31
   u    3 bit coprocessor unit identifier at 25
   F    Source Floating Point Operand Format Completer encoded 2 bits at 20
   I    Source Floating Point Operand Format Completer encoded 1 bits at 20
	(for 0xe format FP instructions)
   G    Destination Floating Point Operand Format Completer encoded 2 bits at 18
   M    Floating-Point Compare Conditions (encoded as 5 bits at 31)
   ?    non-negated/negated compare/subtract conditions.
   @    non-negated/negated add conditions.
   !    non-negated add conditions.

   s    2 bit space specifier at 17.
   b    register field at 10.
   r	5 bit immediate value at 31 (for the break instruction)
	(very similar to V above, except the value is unsigned instead of
	low_sign_ext)
   R	5 bit immediate value at 15 (for the ssm, rsm, probei instructions)
	(same as r above, except the value is in a different location)
   Q	5 bit immediate value at 10 (a bit position specified in
	the bb instruction. It's the same as r above, except the
        value is in a different location)
   |	shift/extract/deposit conditions when used in a conditional branch

And these (PJH) for PA-89 F.P. registers and instructions:

   v    a 't' operand type extended to handle L/R register halves.
   E    a 'b' operand type extended to handle L/R register halves.
   X    an 'x' operand type extended to handle L/R register halves.
   J    a 'b' operand type further extended to handle extra 1.1 registers
   K    a 'x' operand type further extended to handle extra 1.1 registers
   4    a variation of the 'b' operand type for 'fmpyadd' and 'fmpysub'
   6    a variation of the 'x' operand type for 'fmpyadd' and 'fmpysub'
   7    a variation of the 't' operand type for 'fmpyadd' and 'fmpysub'
   8    5 bit register field at 20 (used in 'fmpyadd' and 'fmpysub')
   9    5 bit register field at 25 (used in 'fmpyadd' and 'fmpysub')
   H    Floating Point Operand Format at 26 for 'fmpyadd' and 'fmpysub'
        (very similar to 'F')
*/


/* List of characters not to put a space after.  Note that
   "," is included, as the "spopN" operations use literal
   commas in their completer sections. */
static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e$m}";

/* The order of the opcodes in this table is significant:

   * The assembler requires that all instances of the same mnemonic must be
   consecutive.  If they aren't, the assembler will bomb at runtime.

   * The disassembler should not care about the order of the opcodes.  */

static const struct pa_opcode pa_opcodes[] =
{


/* pseudo-instructions */

{ "b",		0xe8000000, 0xffe0e000, "nW", pa10}, /* bl foo,r0 */
{ "ldi",	0x34000000, 0xffe0c000, "j,x", pa10},	/* ldo val(r0),r */
{ "comib", 	0x84000000, 0xfc000000, "?n5,b,w", pa10}, /* comib{tf}*/
/* This entry is for the disassembler only.  It will never be used by
   assembler.  */
{ "comib", 	0x8c000000, 0xfc000000, "?n5,b,w", pa10}, /* comib{tf}*/
{ "comb",	0x80000000, 0xfc000000, "?nx,b,w", pa10}, /* comb{tf} */
/* This entry is for the disassembler only.  It will never be used by
   assembler.  */
{ "comb",	0x88000000, 0xfc000000, "?nx,b,w", pa10}, /* comb{tf} */
{ "addb",	0xa0000000, 0xfc000000, "@nx,b,w", pa10}, /* addb{tf} */
/* This entry is for the disassembler only.  It will never be used by
   assembler.  */
{ "addb",	0xa8000000, 0xfc000000, "@nx,b,w", pa10},
{ "addib",	0xa4000000, 0xfc000000, "@n5,b,w", pa10}, /* addib{tf}*/
/* This entry is for the disassembler only.  It will never be used by
   assembler.  */
{ "addib",	0xac000000, 0xfc000000, "@n5,b,w", pa10}, /* addib{tf}*/
{ "nop",        0x08000240, 0xffffffff, "", pa10},      /* or 0,0,0 */
{ "copy",       0x08000240, 0xffe0ffe0, "x,t", pa10},   /* or r,0,t */
{ "mtsar",      0x01601840, 0xffe0ffff, "x", pa10}, /* mtctl r,cr11 */

/* Loads and Stores for integer registers.  */
{ "ldw",        0x48000000, 0xfc000000, "j(s,b),x", pa10},
{ "ldw",        0x48000000, 0xfc000000, "j(b),x", pa10},
{ "ldh",        0x44000000, 0xfc000000, "j(s,b),x", pa10},
{ "ldh",        0x44000000, 0xfc000000, "j(b),x", pa10},
{ "ldb",        0x40000000, 0xfc000000, "j(s,b),x", pa10},
{ "ldb",        0x40000000, 0xfc000000, "j(b),x", pa10},
{ "stw",        0x68000000, 0xfc000000, "x,j(s,b)", pa10},
{ "stw",        0x68000000, 0xfc000000, "x,j(b)", pa10},
{ "sth",        0x64000000, 0xfc000000, "x,j(s,b)", pa10},
{ "sth",        0x64000000, 0xfc000000, "x,j(b)", pa10},
{ "stb",        0x60000000, 0xfc000000, "x,j(s,b)", pa10},
{ "stb",        0x60000000, 0xfc000000, "x,j(b)", pa10},
{ "ldwm",       0x4c000000, 0xfc000000, "j(s,b),x", pa10},
{ "ldwm",       0x4c000000, 0xfc000000, "j(b),x", pa10},
{ "stwm",       0x6c000000, 0xfc000000, "x,j(s,b)", pa10},
{ "stwm",       0x6c000000, 0xfc000000, "x,j(b)", pa10},
{ "ldwx",       0x0c000080, 0xfc001fc0, "cx(s,b),t", pa10},
{ "ldwx",       0x0c000080, 0xfc001fc0, "cx(b),t", pa10},
{ "ldhx",       0x0c000040, 0xfc001fc0, "cx(s,b),t", pa10},
{ "ldhx",       0x0c000040, 0xfc001fc0, "cx(b),t", pa10},
{ "ldbx",       0x0c000000, 0xfc001fc0, "cx(s,b),t", pa10},
{ "ldbx",       0x0c000000, 0xfc001fc0, "cx(b),t", pa10},
{ "ldwax",      0x0c000180, 0xfc00dfc0, "cx(b),t", pa10},
{ "ldcwx",      0x0c0001c0, 0xfc001fc0, "cx(s,b),t", pa10},
{ "ldcwx",      0x0c0001c0, 0xfc001fc0, "cx(b),t", pa10},
{ "ldws",	0x0c001080, 0xfc001fc0, "C5(s,b),t", pa10},
{ "ldws",	0x0c001080, 0xfc001fc0, "C5(b),t", pa10},
{ "ldhs",	0x0c001040, 0xfc001fc0, "C5(s,b),t", pa10},
{ "ldhs",	0x0c001040, 0xfc001fc0, "C5(b),t", pa10},
{ "ldbs",	0x0c001000, 0xfc001fc0, "C5(s,b),t", pa10},
{ "ldbs",	0x0c001000, 0xfc001fc0, "C5(b),t", pa10},
{ "ldwas",	0x0c001180, 0xfc00dfc0, "C5(b),t", pa10},
{ "ldcws",	0x0c0011c0, 0xfc001fc0, "C5(s,b),t", pa10},
{ "ldcws",	0x0c0011c0, 0xfc001fc0, "C5(b),t", pa10},
{ "stws",	0x0c001280, 0xfc001fc0, "Cx,V(s,b)", pa10},
{ "stws",	0x0c001280, 0xfc001fc0, "Cx,V(b)", pa10},
{ "sths",	0x0c001240, 0xfc001fc0, "Cx,V(s,b)", pa10},
{ "sths",	0x0c001240, 0xfc001fc0, "Cx,V(b)", pa10},
{ "stbs",	0x0c001200, 0xfc001fc0, "Cx,V(s,b)", pa10},
{ "stbs",	0x0c001200, 0xfc001fc0, "Cx,V(b)", pa10},
{ "stwas",	0x0c001380, 0xfc00dfc0, "Cx,V(b)", pa10},
{ "stbys",	0x0c001300, 0xfc001fc0, "Yx,V(s,b)", pa10},
{ "stbys",	0x0c001300, 0xfc001fc0, "Yx,V(b)", pa10},

/* Immediate instructions.  */
{ "ldo",	0x34000000, 0xfc00c000, "j(b),x", pa10},
{ "ldil",	0x20000000, 0xfc000000, "k,b", pa10},
{ "addil",	0x28000000, 0xfc000000, "k,b", pa10},

/* Branching instructions. */
{ "bl",		0xe8000000, 0xfc00e000, "nW,b", pa10},
{ "gate",	0xe8002000, 0xfc00e000, "nW,b", pa10},
{ "blr",	0xe8004000, 0xfc00e001, "nx,b", pa10},
{ "bv",		0xe800c000, 0xfc00fffd, "nx(b)", pa10},
{ "bv",		0xe800c000, 0xfc00fffd, "n(b)", pa10},
{ "be",		0xe0000000, 0xfc000000, "nz(S,b)", pa10},
{ "ble",	0xe4000000, 0xfc000000, "nz(S,b)", pa10},
{ "movb",	0xc8000000, 0xfc000000, "|nx,b,w", pa10},
{ "movib",	0xcc000000, 0xfc000000, "|n5,b,w", pa10},
{ "combt",	0x80000000, 0xfc000000, "<nx,b,w", pa10},
{ "combf",	0x88000000, 0xfc000000, "<nx,b,w", pa10},
{ "comibt",	0x84000000, 0xfc000000, "<n5,b,w", pa10},
{ "comibf",	0x8c000000, 0xfc000000, "<n5,b,w", pa10},
{ "addbt",	0xa0000000, 0xfc000000, "!nx,b,w", pa10},
{ "addbf",	0xa8000000, 0xfc000000, "!nx,b,w", pa10},
{ "addibt",	0xa4000000, 0xfc000000, "!n5,b,w", pa10},
{ "addibf",	0xac000000, 0xfc000000, "!n5,b,w", pa10},
{ "bb",		0xc4004000, 0xfc004000, "~nx,Q,w", pa10}, 
{ "bvb",	0xc0004000, 0xffe04000, "~nx,w", pa10},

/* Computation Instructions */

{ "comclr",     0x08000880, 0xfc000fe0, "ax,b,t", pa10},
{ "or",         0x08000240, 0xfc000fe0, "&x,b,t", pa10},
{ "xor",        0x08000280, 0xfc000fe0, "&x,b,t", pa10},
{ "and",        0x08000200, 0xfc000fe0, "&x,b,t", pa10},
{ "andcm",      0x08000000, 0xfc000fe0, "&x,b,t", pa10},
{ "uxor",       0x08000380, 0xfc000fe0, "Ux,b,t", pa10},
{ "uaddcm",     0x08000980, 0xfc000fe0, "Ux,b,t", pa10},
{ "uaddcmt",    0x080009c0, 0xfc000fe0, "Ux,b,t", pa10},
{ "dcor",       0x08000b80, 0xfc1f0fe0, "Ub,t",   pa10},
{ "idcor",      0x08000bc0, 0xfc1f0fe0, "Ub,t",   pa10},
{ "addi",       0xb4000000, 0xfc000800, "di,b,x", pa10},
{ "addio",      0xb4000800, 0xfc000800, "di,b,x", pa10},
{ "addit",      0xb0000000, 0xfc000800, "di,b,x", pa10},
{ "addito",     0xb0000800, 0xfc000800, "di,b,x", pa10},
{ "add",        0x08000600, 0xfc000fe0, "dx,b,t", pa10},
{ "addl",       0x08000a00, 0xfc000fe0, "dx,b,t", pa10},
{ "addo",       0x08000e00, 0xfc000fe0, "dx,b,t", pa10},
{ "addc",       0x08000700, 0xfc000fe0, "dx,b,t", pa10},
{ "addco",      0x08000f00, 0xfc000fe0, "dx,b,t", pa10},
{ "sub",        0x08000400, 0xfc000fe0, "ax,b,t", pa10},
{ "subo",       0x08000c00, 0xfc000fe0, "ax,b,t", pa10},
{ "subb",       0x08000500, 0xfc000fe0, "ax,b,t", pa10},
{ "subbo",      0x08000d00, 0xfc000fe0, "ax,b,t", pa10},
{ "subt",       0x080004c0, 0xfc000fe0, "ax,b,t", pa10},
{ "subto",      0x08000cc0, 0xfc000fe0, "ax,b,t", pa10},
{ "ds",         0x08000440, 0xfc000fe0, "ax,b,t", pa10},
{ "subi",       0x94000000, 0xfc000800, "ai,b,x", pa10},
{ "subio",      0x94000800, 0xfc000800, "ai,b,x", pa10},
{ "comiclr",    0x90000000, 0xfc000800, "ai,b,x", pa10},
{ "sh1add",     0x08000640, 0xfc000fe0, "dx,b,t", pa10},
{ "sh1addl",    0x08000a40, 0xfc000fe0, "dx,b,t", pa10},
{ "sh1addo",    0x08000e40, 0xfc000fe0, "dx,b,t", pa10},
{ "sh2add",     0x08000680, 0xfc000fe0, "dx,b,t", pa10},
{ "sh2addl",    0x08000a80, 0xfc000fe0, "dx,b,t", pa10},
{ "sh2addo",    0x08000e80, 0xfc000fe0, "dx,b,t", pa10},
{ "sh3add",     0x080006c0, 0xfc000fe0, "dx,b,t", pa10},
{ "sh3addl",    0x08000ac0, 0xfc000fe0, "dx,b,t", pa10},
{ "sh3addo",    0x08000ec0, 0xfc000fe0, "dx,b,t", pa10},

/* Extract and Deposit Instructions */

{ "vshd",       0xd0000000, 0xfc001fe0, ">x,b,t", pa10},
{ "shd",        0xd0000800, 0xfc001c00, ">x,b,p,t", pa10},
{ "vextru",     0xd0001000, 0xfc001fe0, ">b,T,x", pa10},
{ "vextrs",     0xd0001400, 0xfc001fe0, ">b,T,x", pa10},
{ "extru",      0xd0001800, 0xfc001c00, ">b,P,T,x", pa10},
{ "extrs",      0xd0001c00, 0xfc001c00, ">b,P,T,x", pa10},
{ "zvdep",      0xd4000000, 0xfc001fe0, ">x,T,b", pa10},
{ "vdep",       0xd4000400, 0xfc001fe0, ">x,T,b", pa10},
{ "zdep",       0xd4000800, 0xfc001c00, ">x,p,T,b", pa10},
{ "dep",        0xd4000c00, 0xfc001c00, ">x,p,T,b", pa10},
{ "zvdepi",     0xd4001000, 0xfc001fe0, ">5,T,b", pa10},
{ "vdepi",      0xd4001400, 0xfc001fe0, ">5,T,b", pa10},
{ "zdepi",      0xd4001800, 0xfc001c00, ">5,p,T,b", pa10},
{ "depi",       0xd4001c00, 0xfc001c00, ">5,p,T,b", pa10},

/* System Control Instructions */

{ "break",      0x00000000, 0xfc001fe0, "r,A", pa10},
{ "rfi",        0x00000c00, 0xffffffff, "", pa10},
{ "rfir",       0x00000ca0, 0xffffffff, "", pa11},
{ "ssm",        0x00000d60, 0xffe0ffe0, "R,t", pa10},
{ "rsm",        0x00000e60, 0xffe0ffe0, "R,t", pa10},
{ "mtsm",       0x00001860, 0xffe0ffff, "x", pa10},
{ "ldsid",      0x000010a0, 0xfc1f3fe0, "(s,b),t", pa10},
{ "ldsid",      0x000010a0, 0xfc1f3fe0, "(b),t", pa10},
{ "mtsp",       0x00001820, 0xffe01fff, "x,S", pa10},
{ "mtctl",      0x00001840, 0xfc00ffff, "x,^", pa10},
{ "mfsp",       0x000004a0, 0xffff1fe0, "S,t", pa10},
{ "mfctl",      0x000008a0, 0xfc1fffe0, "^,t", pa10},
{ "sync",       0x00000400, 0xffffffff, "", pa10},
{ "syncdma",    0x00100400, 0xffffffff, "", pa10},
{ "prober",     0x04001180, 0xfc003fe0, "(s,b),x,t", pa10},
{ "prober",     0x04001180, 0xfc003fe0, "(b),x,t", pa10},
{ "proberi",    0x04003180, 0xfc003fe0, "(s,b),R,t", pa10},
{ "proberi",    0x04003180, 0xfc003fe0, "(b),R,t", pa10},
{ "probew",     0x040011c0, 0xfc003fe0, "(s,b),x,t", pa10},
{ "probew",     0x040011c0, 0xfc003fe0, "(b),x,t", pa10},
{ "probewi",    0x040031c0, 0xfc003fe0, "(s,b),R,t", pa10},
{ "probewi",    0x040031c0, 0xfc003fe0, "(b),R,t", pa10},
{ "lpa",        0x04001340, 0xfc003fc0, "Zx(s,b),t", pa10},
{ "lpa",        0x04001340, 0xfc003fc0, "Zx(b),t", pa10},
{ "lha",        0x04001300, 0xfc003fc0, "Zx(s,b),t", pa10},
{ "lha",        0x04001300, 0xfc003fc0, "Zx(b),t", pa10},
{ "lci",        0x04001300, 0xfc003fe0, "x(s,b),t", pa10},
{ "lci",        0x04001300, 0xfc003fe0, "x(b),t", pa10},
{ "pdtlb",      0x04001200, 0xfc003fdf, "Zx(s,b)", pa10},
{ "pdtlb",      0x04001200, 0xfc003fdf, "Zx(b)", pa10},
{ "pitlb",      0x04000200, 0xfc001fdf, "Zx(S,b)", pa10},
{ "pitlb",      0x04000200, 0xfc001fdf, "Zx(b)", pa10},
{ "pdtlbe",     0x04001240, 0xfc003fdf, "Zx(s,b)", pa10},
{ "pdtlbe",     0x04001240, 0xfc003fdf, "Zx(b)", pa10},
{ "pitlbe",     0x04000240, 0xfc001fdf, "Zx(S,b)", pa10},
{ "pitlbe",     0x04000240, 0xfc001fdf, "Zx(b)", pa10},
{ "idtlba",     0x04001040, 0xfc003fff, "x,(s,b)", pa10},
{ "idtlba",     0x04001040, 0xfc003fff, "x,(b)", pa10},
{ "iitlba",     0x04000040, 0xfc001fff, "x,(S,b)", pa10},
{ "iitlba",     0x04000040, 0xfc001fff, "x,(b)", pa10},
{ "idtlbp",     0x04001000, 0xfc003fff, "x,(s,b)", pa10},
{ "idtlbp",     0x04001000, 0xfc003fff, "x,(b)", pa10},
{ "iitlbp",     0x04000000, 0xfc001fff, "x,(S,b)", pa10},
{ "iitlbp",     0x04000000, 0xfc001fff, "x,(b)", pa10},
{ "pdc",        0x04001380, 0xfc003fdf, "Zx(s,b)", pa10},
{ "pdc",        0x04001380, 0xfc003fdf, "Zx(b)", pa10},
{ "fdc",        0x04001280, 0xfc003fdf, "Zx(s,b)", pa10},
{ "fdc",        0x04001280, 0xfc003fdf, "Zx(b)", pa10},
{ "fic",        0x04000280, 0xfc001fdf, "Zx(S,b)", pa10},
{ "fic",        0x04000280, 0xfc001fdf, "Zx(b)", pa10},
{ "fdce",       0x040012c0, 0xfc003fdf, "Zx(s,b)", pa10},
{ "fdce",       0x040012c0, 0xfc003fdf, "Zx(b)", pa10},
{ "fice",       0x040002c0, 0xfc001fdf, "Zx(S,b)", pa10},
{ "fice",       0x040002c0, 0xfc001fdf, "Zx(b)", pa10},
{ "diag",       0x14000000, 0xfc000000, "D", pa10},

/* These may be specific to certain versions of the PA.  Joel claimed
   they were 72000 (7200?) specific.  However, I'm almost certain the
   mtcpu/mfcpu were undocumented, but available in the older 700 machines.  */
{ "mtcpu",      0x14001600, 0xfc00ffff, "x,^"},
{ "mfcpu",      0x14001A00, 0xfc00ffff, "^,x"},
{ "tocen",      0x14403600, 0xffffffff, ""},
{ "tocdis",     0x14401620, 0xffffffff, ""},
{ "shdwgr",     0x14402600, 0xffffffff, ""},
{ "grshdw",     0x14400620, 0xffffffff, ""},

/* gfw and gfr are not in the HP PA 1.1 manual, but they are in either
   the Timex FPU or the Mustang ERS (not sure which) manual.  */
{ "gfw",	0x04001680, 0xfc003fdf, "Zx(s,b)", pa11},
{ "gfw",	0x04001680, 0xfc003fdf, "Zx(b)", pa11},
{ "gfr",	0x04001a80, 0xfc003fdf, "Zx(s,b)", pa11},
{ "gfr",	0x04001a80, 0xfc003fdf, "Zx(b)", pa11},

/* Floating Point Coprocessor Instructions */
  
{ "fldwx",      0x24000000, 0xfc001f80, "cx(s,b),v", pa10},
{ "fldwx",      0x24000000, 0xfc001f80, "cx(b),v", pa10},
{ "flddx",      0x2c000000, 0xfc001fc0, "cx(s,b),y", pa10},
{ "flddx",      0x2c000000, 0xfc001fc0, "cx(b),y", pa10},
{ "fstwx",      0x24000200, 0xfc001f80, "cv,x(s,b)", pa10},
{ "fstwx",      0x24000200, 0xfc001f80, "cv,x(b)", pa10},
{ "fstdx",      0x2c000200, 0xfc001fc0, "cy,x(s,b)", pa10},
{ "fstdx",      0x2c000200, 0xfc001fc0, "cy,x(b)", pa10},
{ "fstqx",      0x3c000200, 0xfc001fc0, "cy,x(s,b)", pa10},
{ "fstqx",      0x3c000200, 0xfc001fc0, "cy,x(b)", pa10},
{ "fldws",      0x24001000, 0xfc001f80, "C5(s,b),v", pa10},
{ "fldws",      0x24001000, 0xfc001f80, "C5(b),v", pa10},
{ "fldds",      0x2c001000, 0xfc001fc0, "C5(s,b),y", pa10},
{ "fldds",      0x2c001000, 0xfc001fc0, "C5(b),y", pa10},
{ "fstws",      0x24001200, 0xfc001f80, "Cv,5(s,b)", pa10},
{ "fstws",      0x24001200, 0xfc001f80, "Cv,5(b)", pa10},
{ "fstds",      0x2c001200, 0xfc001fc0, "Cy,5(s,b)", pa10},
{ "fstds",      0x2c001200, 0xfc001fc0, "Cy,5(b)", pa10},
{ "fstqs",      0x3c001200, 0xfc001fc0, "Cy,5(s,b)", pa10},
{ "fstqs",      0x3c001200, 0xfc001fc0, "Cy,5(b)", pa10},
{ "fadd",       0x30000600, 0xfc00e7e0, "FE,X,v", pa10},
{ "fadd",       0x38000600, 0xfc00e720, "IJ,K,v", pa10},
{ "fsub",       0x30002600, 0xfc00e7e0, "FE,X,v", pa10},
{ "fsub",       0x38002600, 0xfc00e720, "IJ,K,v", pa10},
{ "fmpy",       0x30004600, 0xfc00e7e0, "FE,X,v", pa10},
{ "fmpy",       0x38004600, 0xfc00e720, "IJ,K,v", pa10},
{ "fdiv",       0x30006600, 0xfc00e7e0, "FE,X,v", pa10},
{ "fdiv",       0x38006600, 0xfc00e720, "IJ,K,v", pa10},
{ "fsqrt",      0x30008000, 0xfc1fe7e0, "FE,v", pa10},
{ "fsqrt",      0x38008000, 0xfc1fe720, "FJ,v", pa10},
{ "fabs",       0x30006000, 0xfc1fe7e0, "FE,v", pa10},
{ "fabs",       0x38006000, 0xfc1fe720, "FJ,v", pa10},
{ "frem",       0x30008600, 0xfc00e7e0, "FE,X,v", pa10},
{ "frem",       0x38008600, 0xfc00e720, "FJ,K,v", pa10},
{ "frnd",       0x3000a000, 0xfc1fe7e0, "FE,v", pa10},
{ "frnd",       0x3800a000, 0xfc1fe720, "FJ,v", pa10},
{ "fcpy",       0x30004000, 0xfc1fe7e0, "FE,v", pa10},
{ "fcpy",       0x38004000, 0xfc1fe720, "FJ,v", pa10},
{ "fcnvff",     0x30000200, 0xfc1f87e0, "FGE,v", pa10},
{ "fcnvff",     0x38000200, 0xfc1f8720, "FGJ,v", pa10},
{ "fcnvxf",     0x30008200, 0xfc1f87e0, "FGE,v", pa10},
{ "fcnvxf",     0x38008200, 0xfc1f8720, "FGJ,v", pa10},
{ "fcnvfx",     0x30010200, 0xfc1f87e0, "FGE,v", pa10},
{ "fcnvfx",     0x38010200, 0xfc1f8720, "FGJ,v", pa10},
{ "fcnvfxt",    0x30018200, 0xfc1f87e0, "FGE,v", pa10},
{ "fcnvfxt",    0x38018200, 0xfc1f8720, "FGJ,v", pa10},
{ "fmpyfadd",   0xb8000000, 0xfc000020, "FE,X,3,v", pa20},
{ "fmpynfadd",  0xb8000020, 0xfc000020, "FE,X,3,v", pa20},
{ "fneg",       0x3000c000, 0xfc1fe7e0, "FE,v", pa20},
{ "fneg",       0x3800c000, 0xfc1fe720, "FJ,v", pa20},
{ "fnegabs",    0x3000e000, 0xfc1fe7e0, "FE,v", pa20},
{ "fnegabs",    0x3800e000, 0xfc1fe720, "FJ,v", pa20},
{ "fcmp",       0x30000400, 0xfc00e7e0, "FME,X", pa10},
{ "fcmp",       0x38000400, 0xfc00e720, "IMJ,K", pa10},
{ "xmpyu",	0x38004700, 0xfc00e720, "E,X,v", pa11},
{ "fmpyadd",	0x18000000, 0xfc000000, "H4,6,7,9,8", pa11},
{ "fmpysub",	0x98000000, 0xfc000000, "H4,6,7,9,8", pa11},
{ "ftest",      0x30002420, 0xffffffff, "", pa10},
{ "fid",        0x30000000, 0xffffffff, "", pa11},


/* Assist Instructions */

{ "spop0",      0x10000000, 0xfc000600, "f,ON", pa10},
{ "spop1",      0x10000200, 0xfc000600, "f,oNt", pa10},
{ "spop2",      0x10000400, 0xfc000600, "f,1Nb", pa10},
{ "spop3",      0x10000600, 0xfc000600, "f,0Nx,b", pa10},
{ "copr",       0x30000000, 0xfc000000, "u,2N", pa10},
{ "cldwx",      0x24000000, 0xfc001e00, "ucx(s,b),t", pa10},
{ "cldwx",      0x24000000, 0xfc001e00, "ucx(b),t", pa10},
{ "clddx",      0x2c000000, 0xfc001e00, "ucx(s,b),t", pa10},
{ "clddx",      0x2c000000, 0xfc001e00, "ucx(b),t", pa10},
{ "cstwx",      0x24000200, 0xfc001e00, "uct,x(s,b)", pa10},
{ "cstwx",      0x24000200, 0xfc001e00, "uct,x(b)", pa10},
{ "cstdx",      0x2c000200, 0xfc001e00, "uct,x(s,b)", pa10},
{ "cstdx",      0x2c000200, 0xfc001e00, "uct,x(b)", pa10},
{ "cldws",      0x24001000, 0xfc001e00, "uC5(s,b),t", pa10},
{ "cldws",      0x24001000, 0xfc001e00, "uC5(b),t", pa10},
{ "cldds",      0x2c001000, 0xfc001e00, "uC5(s,b),t", pa10},
{ "cldds",      0x2c001000, 0xfc001e00, "uC5(b),t", pa10},
{ "cstws",      0x24001200, 0xfc001e00, "uCt,5(s,b)", pa10},
{ "cstws",      0x24001200, 0xfc001e00, "uCt,5(b)", pa10},
{ "cstds",      0x2c001200, 0xfc001e00, "uCt,5(s,b)", pa10},
{ "cstds",      0x2c001200, 0xfc001e00, "uCt,5(b)", pa10},
};

#define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))

/* SKV 12/18/92. Added some denotations for various operands. */

#define PA_IMM11_AT_31 'i'
#define PA_IMM14_AT_31 'j'
#define PA_IMM21_AT_31 'k'
#define PA_DISP12 'w'
#define PA_DISP17 'W'

#define N_HPPA_OPERAND_FORMATS 5
