This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Patch: add prefix to completer args for hppa


OK, this patch HAS been tested and works fine :-)  The four completers 'c',
'C', 'Y', and 'Z' are now 'cc', 'cm', 'cs', and 'cz'.  

I did renaming because they seemed to be more intuitive names.  I've also got
a list of possible code names for all the other completers needed for pa20
syntax and instructions.

Jerry

ChangeLog entry:

Thu Jul 29 15:40:17 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>

    * gas/config/tc-hppa.c (pa_ip): Place completers behind prefix 'c'.
    * include/opcode/hppa.h (pa_opcodes): Change completers in instructions to
      use 'c' prefix.
    * opcodes/hppa-dis.c (print_insn_hppa): Place completers behind prefix
      'c'. 

*** pa-prev/gas/config/tc-hppa.c	Thu Jul 29 15:25:13 1999
--- gas-src/gas/config/tc-hppa.c	Thu Jul 29 13:10:49 1999
***************
*** 1627,1718 ****
  	      dis_assemble_3 (num, &num);
  	      INSERT_FIELD_AND_CONTINUE (opcode, num, 13);
  
! 	    /* Handle a completer for an indexing load or store.  */
  	    case 'c':
! 	      {
! 		int uu = 0;
! 		int m = 0;
! 		int i = 0;
! 		while (*s == ',' && i < 2)
  		  {
! 		    s++;
! 		    if (strncasecmp (s, "sm", 2) == 0)
  		      {
! 			uu = 1;
! 			m = 1;
  			s++;
  			i++;
  		      }
! 		    else if (strncasecmp (s, "m", 1) == 0)
! 		      m = 1;
! 		    else if (strncasecmp (s, "s", 1) == 0)
! 		      uu = 1;
! 		    else
! 		      as_bad (_("Invalid Indexed Load Completer."));
! 		    s++;
! 		    i++;
  		  }
- 		if (i > 2)
- 		  as_bad (_("Invalid Indexed Load Completer Syntax."));
- 		opcode |= m << 5;
- 		INSERT_FIELD_AND_CONTINUE (opcode, uu, 13);
- 	      }
  
! 	    /* Handle a short load/store completer.  */
! 	    case 'C':
! 	      {
! 		int a = 0;
! 		int m = 0;
! 		if (*s == ',')
  		  {
! 		    s++;
! 		    if (strncasecmp (s, "ma", 2) == 0)
! 		      {
! 			a = 0;
! 			m = 1;
! 		      }
! 		    else if (strncasecmp (s, "mb", 2) == 0)
  		      {
! 			a = 1;
! 			m = 1;
  		      }
- 		    else
- 		      as_bad (_("Invalid Short Load/Store Completer."));
- 		    s += 2;
- 		  }
  
- 		if (*args == 'C')
- 		  {
  		    opcode |= m << 5;
  		    INSERT_FIELD_AND_CONTINUE (opcode, a, 13);
  		  }
- 	      }
  
! 	    /* Handle a stbys completer.  */
! 	    case 'Y':
! 	      {
! 		int a = 0;
! 		int m = 0;
! 		int i = 0;
! 		while (*s == ',' && i < 2)
  		  {
! 		    s++;
! 		    if (strncasecmp (s, "m", 1) == 0)
! 		      m = 1;
! 		    else if (strncasecmp (s, "b", 1) == 0)
! 		      a = 0;
! 		    else if (strncasecmp (s, "e", 1) == 0)
! 		      a = 1;
! 		    else
  		      as_bad (_("Invalid Store Bytes Short Completer"));
! 		    s++;
! 		    i++;
  		  }
! 		if (i > 2)
! 		  as_bad (_("Invalid Store Bytes Short Completer"));
! 		opcode |= m << 5;
! 		INSERT_FIELD_AND_CONTINUE (opcode, a, 13);
! 	      }
  
  	    /* Handle all conditions.  */
  	    case '?':
--- 1627,1737 ----
  	      dis_assemble_3 (num, &num);
  	      INSERT_FIELD_AND_CONTINUE (opcode, num, 13);
  
! 	    /* Handle all completers.  */
  	    case 'c':
! 	      switch (*++args)
! 		{
! 
! 		/* Handle a completer for an indexing load or store.  */
! 		case 'x':
  		  {
! 		    int uu = 0;
! 		    int m = 0;
! 		    int i = 0;
! 		    while (*s == ',' && i < 2)
  		      {
! 			s++;
! 			if (strncasecmp (s, "sm", 2) == 0)
! 			  {
! 			    uu = 1;
! 			    m = 1;
! 			    s++;
! 			    i++;
! 			  }
! 			else if (strncasecmp (s, "m", 1) == 0)
! 			  m = 1;
! 			else if (strncasecmp (s, "s", 1) == 0)
! 			  uu = 1;
! 			else
! 			  as_bad (_("Invalid Indexed Load Completer."));
  			s++;
  			i++;
  		      }
! 		    if (i > 2)
! 		      as_bad (_("Invalid Indexed Load Completer Syntax."));
! 		    opcode |= m << 5;
! 		    INSERT_FIELD_AND_CONTINUE (opcode, uu, 13);
  		  }
  
! 		/* Handle a short load/store completer.  */
! 		case 'm':
  		  {
! 		    int a = 0;
! 		    int m = 0;
! 		    if (*s == ',')
  		      {
! 			s++;
! 			if (strncasecmp (s, "ma", 2) == 0)
! 			  {
! 			    a = 0;
! 			    m = 1;
! 			  }
! 			else if (strncasecmp (s, "mb", 2) == 0)
! 			  {
! 			    a = 1;
! 			    m = 1;
! 			  }
! 			else
! 			  as_bad (_("Invalid Short Load/Store Completer."));
! 			s += 2;
  		      }
  
  		    opcode |= m << 5;
  		    INSERT_FIELD_AND_CONTINUE (opcode, a, 13);
  		  }
  
! 		/* Handle a stbys completer.  */
! 		case 's':
  		  {
! 		    int a = 0;
! 		    int m = 0;
! 		    int i = 0;
! 		    while (*s == ',' && i < 2)
! 		      {
! 			s++;
! 			if (strncasecmp (s, "m", 1) == 0)
! 			  m = 1;
! 			else if (strncasecmp (s, "b", 1) == 0)
! 			  a = 0;
! 			else if (strncasecmp (s, "e", 1) == 0)
! 			  a = 1;
! 			else
! 			  as_bad (_("Invalid Store Bytes Short Completer"));
! 			s++;
! 			i++;
! 		      }
! 		    if (i > 2)
  		      as_bad (_("Invalid Store Bytes Short Completer"));
! 		    opcode |= m << 5;
! 		    INSERT_FIELD_AND_CONTINUE (opcode, a, 13);
  		  }
! 
! 		/* Handle a system control completer.  */
! 		case 'Z':
! 		  if (*s == ',' && (*(s + 1) == 'm' || *(s + 1) == 'M'))
! 		    {
! 		      flag = 1;
! 		      s += 2;
! 		    }
! 		  else
! 		    flag = 0;
! 
! 		  INSERT_FIELD_AND_CONTINUE (opcode, flag, 5);
! 
! 		default:
! 		  abort ();
! 		}
! 	      break;
  
  	    /* Handle all conditions.  */
  	    case '?':
***************
*** 2229,2247 ****
  		  default:
  		    abort ();
  		  }
  	      }
- 
- 	    /* Handle a system control completer.  */
- 	    case 'Z':
- 	      if (*s == ',' && (*(s + 1) == 'm' || *(s + 1) == 'M'))
- 		{
- 		  flag = 1;
- 		  s += 2;
- 		}
- 	      else
- 		flag = 0;
- 
- 	      INSERT_FIELD_AND_CONTINUE (opcode, flag, 5);
  
  	    /* Handle a nullification completer for branch instructions.  */
  	    case 'n':
--- 2247,2254 ----
  		  default:
  		    abort ();
  		  }
+ 		break;
  	      }
  
  	    /* Handle a nullification completer for branch instructions.  */
  	    case 'n':
*** pa-prev/include/opcode/hppa.h	Thu Jul 29 10:10:20 1999
--- gas-src/include/opcode/hppa.h	Thu Jul 29 10:16:46 1999
***************
*** 101,106 ****
--- 101,113 ----
     W    17 bit branch displacement (PC relative)
     z    17 bit branch displacement (just a number, not an address)
  
+ Completer operands all have 'c' as the prefix:
+ 
+    cx   indexed load completer.
+    cm   short load and store completer.
+    cs   store bytes short completer.
+    cZ   System Control Completer (to support LPA, LHA, etc.)
+ 
  Condition operands all have '?' as the prefix:
  
     ?f   Floating point compare conditions (encoded as 5 bits at 31)
***************
*** 248,280 ****
  { "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},
--- 255,287 ----
  { "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, "cxx(s,b),t", pa10},
! { "ldwx",       0x0c000080, 0xfc001fc0, "cxx(b),t", pa10},
! { "ldhx",       0x0c000040, 0xfc001fc0, "cxx(s,b),t", pa10},
! { "ldhx",       0x0c000040, 0xfc001fc0, "cxx(b),t", pa10},
! { "ldbx",       0x0c000000, 0xfc001fc0, "cxx(s,b),t", pa10},
! { "ldbx",       0x0c000000, 0xfc001fc0, "cxx(b),t", pa10},
! { "ldwax",      0x0c000180, 0xfc00dfc0, "cxx(b),t", pa10},
! { "ldcwx",      0x0c0001c0, 0xfc001fc0, "cxx(s,b),t", pa10},
! { "ldcwx",      0x0c0001c0, 0xfc001fc0, "cxx(b),t", pa10},
! { "ldws",	0x0c001080, 0xfc001fc0, "cm5(s,b),t", pa10},
! { "ldws",	0x0c001080, 0xfc001fc0, "cm5(b),t", pa10},
! { "ldhs",	0x0c001040, 0xfc001fc0, "cm5(s,b),t", pa10},
! { "ldhs",	0x0c001040, 0xfc001fc0, "cm5(b),t", pa10},
! { "ldbs",	0x0c001000, 0xfc001fc0, "cm5(s,b),t", pa10},
! { "ldbs",	0x0c001000, 0xfc001fc0, "cm5(b),t", pa10},
! { "ldwas",	0x0c001180, 0xfc00dfc0, "cm5(b),t", pa10},
! { "ldcws",	0x0c0011c0, 0xfc001fc0, "cm5(s,b),t", pa10},
! { "ldcws",	0x0c0011c0, 0xfc001fc0, "cm5(b),t", pa10},
! { "stws",	0x0c001280, 0xfc001fc0, "cmx,V(s,b)", pa10},
! { "stws",	0x0c001280, 0xfc001fc0, "cmx,V(b)", pa10},
! { "sths",	0x0c001240, 0xfc001fc0, "cmx,V(s,b)", pa10},
! { "sths",	0x0c001240, 0xfc001fc0, "cmx,V(b)", pa10},
! { "stbs",	0x0c001200, 0xfc001fc0, "cmx,V(s,b)", pa10},
! { "stbs",	0x0c001200, 0xfc001fc0, "cmx,V(b)", pa10},
! { "stwas",	0x0c001380, 0xfc00dfc0, "cmx,V(b)", pa10},
! { "stbys",	0x0c001300, 0xfc001fc0, "csx,V(s,b)", pa10},
! { "stbys",	0x0c001300, 0xfc001fc0, "csx,V(b)", pa10},
  
  /* Immediate instructions.  */
  { "ldo",	0x34000000, 0xfc00c000, "j(b),x", pa10},
***************
*** 397,416 ****
  { "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},
--- 404,423 ----
  { "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, "cZx(s,b),t", pa10},
! { "lpa",        0x04001340, 0xfc003fc0, "cZx(b),t", pa10},
! { "lha",        0x04001300, 0xfc003fc0, "cZx(s,b),t", pa10},
! { "lha",        0x04001300, 0xfc003fc0, "cZx(b),t", pa10},
  { "lci",        0x04001300, 0xfc003fe0, "x(s,b),t", pa10},
  { "lci",        0x04001300, 0xfc003fe0, "x(b),t", pa10},
! { "pdtlb",      0x04001200, 0xfc003fdf, "cZx(s,b)", pa10},
! { "pdtlb",      0x04001200, 0xfc003fdf, "cZx(b)", pa10},
! { "pitlb",      0x04000200, 0xfc001fdf, "cZx(S,b)", pa10},
! { "pitlb",      0x04000200, 0xfc001fdf, "cZx(b)", pa10},
! { "pdtlbe",     0x04001240, 0xfc003fdf, "cZx(s,b)", pa10},
! { "pdtlbe",     0x04001240, 0xfc003fdf, "cZx(b)", pa10},
! { "pitlbe",     0x04000240, 0xfc001fdf, "cZx(S,b)", pa10},
! { "pitlbe",     0x04000240, 0xfc001fdf, "cZx(b)", pa10},
  { "idtlba",     0x04001040, 0xfc003fff, "x,(s,b)", pa10},
  { "idtlba",     0x04001040, 0xfc003fff, "x,(b)", pa10},
  { "iitlba",     0x04000040, 0xfc001fff, "x,(S,b)", pa10},
***************
*** 419,434 ****
  { "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
--- 426,441 ----
  { "idtlbp",     0x04001000, 0xfc003fff, "x,(b)", pa10},
  { "iitlbp",     0x04000000, 0xfc001fff, "x,(S,b)", pa10},
  { "iitlbp",     0x04000000, 0xfc001fff, "x,(b)", pa10},
! { "pdc",        0x04001380, 0xfc003fdf, "cZx(s,b)", pa10},
! { "pdc",        0x04001380, 0xfc003fdf, "cZx(b)", pa10},
! { "fdc",        0x04001280, 0xfc003fdf, "cZx(s,b)", pa10},
! { "fdc",        0x04001280, 0xfc003fdf, "cZx(b)", pa10},
! { "fic",        0x04000280, 0xfc001fdf, "cZx(S,b)", pa10},
! { "fic",        0x04000280, 0xfc001fdf, "cZx(b)", pa10},
! { "fdce",       0x040012c0, 0xfc003fdf, "cZx(s,b)", pa10},
! { "fdce",       0x040012c0, 0xfc003fdf, "cZx(b)", pa10},
! { "fice",       0x040002c0, 0xfc001fdf, "cZx(S,b)", pa10},
! { "fice",       0x040002c0, 0xfc001fdf, "cZx(b)", pa10},
  { "diag",       0x14000000, 0xfc000000, "D", pa10},
  
  /* These may be specific to certain versions of the PA.  Joel claimed
***************
*** 443,475 ****
  
  /* 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},
--- 450,482 ----
  
  /* 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, "cZx(s,b)", pa11},
! { "gfw",	0x04001680, 0xfc003fdf, "cZx(b)", pa11},
! { "gfr",	0x04001a80, 0xfc003fdf, "cZx(s,b)", pa11},
! { "gfr",	0x04001a80, 0xfc003fdf, "cZx(b)", pa11},
  
  /* Floating Point Coprocessor Instructions */
    
! { "fldwx",      0x24000000, 0xfc001f80, "cxx(s,b),v", pa10},
! { "fldwx",      0x24000000, 0xfc001f80, "cxx(b),v", pa10},
! { "flddx",      0x2c000000, 0xfc001fc0, "cxx(s,b),y", pa10},
! { "flddx",      0x2c000000, 0xfc001fc0, "cxx(b),y", pa10},
! { "fstwx",      0x24000200, 0xfc001f80, "cxv,x(s,b)", pa10},
! { "fstwx",      0x24000200, 0xfc001f80, "cxv,x(b)", pa10},
! { "fstdx",      0x2c000200, 0xfc001fc0, "cxy,x(s,b)", pa10},
! { "fstdx",      0x2c000200, 0xfc001fc0, "cxy,x(b)", pa10},
! { "fstqx",      0x3c000200, 0xfc001fc0, "cxy,x(s,b)", pa10},
! { "fstqx",      0x3c000200, 0xfc001fc0, "cxy,x(b)", pa10},
! { "fldws",      0x24001000, 0xfc001f80, "cm5(s,b),v", pa10},
! { "fldws",      0x24001000, 0xfc001f80, "cm5(b),v", pa10},
! { "fldds",      0x2c001000, 0xfc001fc0, "cm5(s,b),y", pa10},
! { "fldds",      0x2c001000, 0xfc001fc0, "cm5(b),y", pa10},
! { "fstws",      0x24001200, 0xfc001f80, "cmv,5(s,b)", pa10},
! { "fstws",      0x24001200, 0xfc001f80, "cmv,5(b)", pa10},
! { "fstds",      0x2c001200, 0xfc001fc0, "cmy,5(s,b)", pa10},
! { "fstds",      0x2c001200, 0xfc001fc0, "cmy,5(b)", pa10},
! { "fstqs",      0x3c001200, 0xfc001fc0, "cmy,5(s,b)", pa10},
! { "fstqs",      0x3c001200, 0xfc001fc0, "cmy,5(b)", pa10},
  { "fadd",       0x30000600, 0xfc00e7e0, "FE,X,v", pa10},
  { "fadd",       0x38000600, 0xfc00e720, "IJ,K,v", pa10},
  { "fsub",       0x30002600, 0xfc00e7e0, "FE,X,v", pa10},
***************
*** 518,539 ****
  { "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]))
--- 525,546 ----
  { "spop2",      0x10000400, 0xfc000600, "f,1Nb", pa10},
  { "spop3",      0x10000600, 0xfc000600, "f,0Nx,b", pa10},
  { "copr",       0x30000000, 0xfc000000, "u,2N", pa10},
! { "cldwx",      0x24000000, 0xfc001e00, "ucxx(s,b),t", pa10},
! { "cldwx",      0x24000000, 0xfc001e00, "ucxx(b),t", pa10},
! { "clddx",      0x2c000000, 0xfc001e00, "ucxx(s,b),t", pa10},
! { "clddx",      0x2c000000, 0xfc001e00, "ucxx(b),t", pa10},
! { "cstwx",      0x24000200, 0xfc001e00, "ucxt,x(s,b)", pa10},
! { "cstwx",      0x24000200, 0xfc001e00, "ucxt,x(b)", pa10},
! { "cstdx",      0x2c000200, 0xfc001e00, "ucxt,x(s,b)", pa10},
! { "cstdx",      0x2c000200, 0xfc001e00, "ucxt,x(b)", pa10},
! { "cldws",      0x24001000, 0xfc001e00, "ucm5(s,b),t", pa10},
! { "cldws",      0x24001000, 0xfc001e00, "ucm5(b),t", pa10},
! { "cldds",      0x2c001000, 0xfc001e00, "ucm5(s,b),t", pa10},
! { "cldds",      0x2c001000, 0xfc001e00, "ucm5(b),t", pa10},
! { "cstws",      0x24001200, 0xfc001e00, "ucmt,5(s,b)", pa10},
! { "cstws",      0x24001200, 0xfc001e00, "ucmt,5(b)", pa10},
! { "cstds",      0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10},
! { "cstds",      0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10},
  };
  
  #define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))
*** pa-prev/opcodes/hppa-dis.c	Wed Jul 28 15:20:22 1999
--- gas-src/opcodes/hppa-dis.c	Thu Jul 29 10:22:55 1999
***************
*** 420,436 ****
  		case 'S':
  		  (*info->fprintf_func) (info->stream, "sr%d", extract_3 (insn));
  		  break;
  		case 'c':
! 		  (*info->fprintf_func) (info->stream, "%s ",
! 				    index_compl_names[GET_COMPL (insn)]);
! 		  break;
! 		case 'C':
! 		  (*info->fprintf_func) (info->stream, "%s ",
! 				    short_ldst_compl_names[GET_COMPL (insn)]);
! 		  break;
! 		case 'Y':
! 		  (*info->fprintf_func) (info->stream, "%s ",
! 				    short_bytes_compl_names[GET_COMPL (insn)]);
  		  break;
  
  		/* Handle conditions.  */
--- 420,449 ----
  		case 'S':
  		  (*info->fprintf_func) (info->stream, "sr%d", extract_3 (insn));
  		  break;
+ 
+ 		/* Handle completers.  */
  		case 'c':
! 		  switch (*++s)
! 		    {
! 		    case 'x':
! 		      (*info->fprintf_func) (info->stream, "%s ",
! 					     index_compl_names[GET_COMPL (insn)]);
! 		      break;
! 		    case 'm':
! 		      (*info->fprintf_func) (info->stream, "%s ",
! 					     short_ldst_compl_names[GET_COMPL (insn)]);
! 		      break;
! 		    case 's':
! 		      (*info->fprintf_func) (info->stream, "%s ",
! 					     short_bytes_compl_names[GET_COMPL (insn)]);
! 		      break;
! 		    case 'Z':
! 		      if (GET_FIELD (insn, 26, 26))
! 			(*info->fprintf_func) (info->stream, ",m ");
! 		      else
! 			(*info->fprintf_func) (info->stream, " ");
! 		      break;
! 		    }
  		  break;
  
  		/* Handle conditions.  */
***************
*** 626,637 ****
  		  break;
  		case 'A':
  		  fput_const (GET_FIELD (insn, 6, 18), info);
- 		  break;
- 		case 'Z':
- 		  if (GET_FIELD (insn, 26, 26))
- 		    (*info->fprintf_func) (info->stream, ",m ");
- 		  else
- 		    (*info->fprintf_func) (info->stream, " ");
  		  break;
  		case 'D':
  		  fput_const (GET_FIELD (insn, 6, 31), info);
--- 639,644 ----


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]