This is the mail archive of the binutils@sources.redhat.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]
Other format: [Raw text]

Minor PA assembler/disassembler updates



These changes fix a number of whitespace errors when disassembling
PA code.  

        * include/opcode/hppa.h (call, ret): Move to end of table.
        (addb, addib): PA2.0 variants should have been PA2.0W.
        (ldw, ldh, ldb, stw, sth, stb, stwa): Reorder to keep disassembler
        happy.
        (fldw, fldd, fstw, fstd, bb): Likewise.
        (short loads/stores): Tweak format specifier slightly to keep
        disassembler happy.
        (indexed loads/stores): Likewise.
        (absolute loads/stores): Likewise.e
        * opcodes/hppa-dis.c (print_insn_hppa): Handle new 'c' mode completers,
        'X', 'M', and 'A'.  No longer emit a space after 'x' or 's'.
        Always emit a space after 'H'.
        * gas/config/tc-hppa.c (pa_ip): Handle new 'c' mode completers,
        'X', 'M', and 'A'.

Index: include/opcode/hppa.h
===================================================================
RCS file: /cvs/cvsfiles/devo/include/opcode/hppa.h,v
retrieving revision 1.108
diff -c -3 -p -r1.108 hppa.h
*** hppa.h	2001/03/15 04:23:49	1.108
--- hppa.h	2001/12/31 23:40:19
*************** Also these:
*** 170,179 ****
--- 170,185 ----
  Completer operands all have 'c' as the prefix:
  
     cx   indexed load completer.
+    cX   indexed load completer.  Like cx, but emits a space after
+         in disassembler.
     cm   short load and store completer.
+    cM   short load and store completer.  Like cm, but emits a space
+         after in disassembler.
     cq   long load and store completer (like cm, but inserted into a
  	different location in the target instruction).
     cs   store bytes short completer.
+    cA   store bytes short completer.  Like cs, but emits a space
+         after in disassembler.
     ce   long load/store completer for LDW/STW with a different encoding than 
the
  	others
     cc   load cache control hint
*************** static const struct pa_opcode pa_opcodes
*** 285,294 ****
  { "ldi",	0x34000000, 0xffe00000, "l,x", pa20w, 0},/* ldo val(r0),r */
  { "ldi",	0x34000000, 0xffe0c000, "j,x", pa10, 0},/* ldo val(r0),r */
  
- { "call",	0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
- { "call",	0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT},
- { "ret",	0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT},
- 
  { "cmpib", 	0xec000000, 0xfc000000, "?Qn5,b,w", pa20, FLAG_STRICT},
  { "cmpib", 	0x84000000, 0xf4000000, "?nn5,b,w", pa10, FLAG_STRICT},
  { "comib", 	0x84000000, 0xfc000000, "?nn5,b,w", pa10, 0}, /* comib{tf}*/
--- 291,296 ----
*************** static const struct pa_opcode pa_opcodes
*** 301,312 ****
  /* This entry is for the disassembler only.  It will never be used by
     assembler.  */
  { "comb",	0x88000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */
! { "addb",	0xa0000000, 0xf4000000, "?Wnx,b,w", pa20, FLAG_STRICT},
  { "addb",	0xa0000000, 0xfc000000, "?@nx,b,w", pa10, 0}, /* addb{tf} */
  /* This entry is for the disassembler only.  It will never be used by
     assembler.  */
  { "addb",	0xa8000000, 0xfc000000, "?@nx,b,w", pa10, 0},
! { "addib",	0xa4000000, 0xf4000000, "?Wn5,b,w", pa20, FLAG_STRICT},
  { "addib",	0xa4000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/
  /* This entry is for the disassembler only.  It will never be used by
     assembler.  */
--- 303,314 ----
  /* This entry is for the disassembler only.  It will never be used by
     assembler.  */
  { "comb",	0x88000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */
! { "addb",	0xa0000000, 0xf4000000, "?Wnx,b,w", pa20w, FLAG_STRICT},
  { "addb",	0xa0000000, 0xfc000000, "?@nx,b,w", pa10, 0}, /* addb{tf} */
  /* This entry is for the disassembler only.  It will never be used by
     assembler.  */
  { "addb",	0xa8000000, 0xfc000000, "?@nx,b,w", pa10, 0},
! { "addib",	0xa4000000, 0xf4000000, "?Wn5,b,w", pa20w, FLAG_STRICT},
  { "addib",	0xa4000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/
  /* This entry is for the disassembler only.  It will never be used by
     assembler.  */
*************** static const struct pa_opcode pa_opcodes
*** 327,336 ****
  { "ldd",        0x50000000, 0xfc000002, "cq#(b),x", pa20, FLAG_STRICT},
  { "ldw",        0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
  { "ldw",        0x0c000080, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
- { "ldw",	0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
- { "ldw",	0x0c0010a0, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
  { "ldw",	0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},
  { "ldw",	0x0c001080, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
  { "ldw",        0x4c000000, 0xfc000000, "ce<(b),x", pa20w, FLAG_STRICT},
  { "ldw",        0x4c000000, 0xfc000000, "ceJ(s,b),x", pa10, FLAG_STRICT},
  { "ldw",        0x4c000000, 0xfc000000, "ceJ(b),x", pa10, FLAG_STRICT},
--- 329,338 ----
  { "ldd",        0x50000000, 0xfc000002, "cq#(b),x", pa20, FLAG_STRICT},
  { "ldw",        0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
  { "ldw",        0x0c000080, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
  { "ldw",	0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},
  { "ldw",	0x0c001080, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
+ { "ldw",	0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
+ { "ldw",	0x0c0010a0, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
  { "ldw",        0x4c000000, 0xfc000000, "ce<(b),x", pa20w, FLAG_STRICT},
  { "ldw",        0x4c000000, 0xfc000000, "ceJ(s,b),x", pa10, FLAG_STRICT},
  { "ldw",        0x4c000000, 0xfc000000, "ceJ(b),x", pa10, FLAG_STRICT},
*************** static const struct pa_opcode pa_opcodes
*** 342,360 ****
  { "ldw",        0x48000000, 0xfc000000, "j(b),x", pa10, 0},
  { "ldh",        0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
  { "ldh",        0x0c000040, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
- { "ldh",	0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
- { "ldh",	0x0c001060, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
  { "ldh",	0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},
  { "ldh",	0x0c001040, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
  { "ldh",        0x44000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
  { "ldh",        0x44000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "ldh",        0x44000000, 0xfc000000, "j(b),x", pa10, 0},
  { "ldb",        0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
  { "ldb",        0x0c000000, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
- { "ldb",	0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
- { "ldb",	0x0c001020, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
  { "ldb",	0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},
  { "ldb",	0x0c001000, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
  { "ldb",        0x40000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
  { "ldb",        0x40000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "ldb",        0x40000000, 0xfc000000, "j(b),x", pa10, 0},
--- 344,362 ----
  { "ldw",        0x48000000, 0xfc000000, "j(b),x", pa10, 0},
  { "ldh",        0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
  { "ldh",        0x0c000040, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
  { "ldh",	0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},
  { "ldh",	0x0c001040, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
+ { "ldh",	0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
+ { "ldh",	0x0c001060, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
  { "ldh",        0x44000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
  { "ldh",        0x44000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "ldh",        0x44000000, 0xfc000000, "j(b),x", pa10, 0},
  { "ldb",        0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
  { "ldb",        0x0c000000, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
  { "ldb",	0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},
  { "ldb",	0x0c001000, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
+ { "ldb",	0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
+ { "ldb",	0x0c001020, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
  { "ldb",        0x40000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
  { "ldb",        0x40000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "ldb",        0x40000000, 0xfc000000, "j(b),x", pa10, 0},
*************** static const struct pa_opcode pa_opcodes
*** 364,373 ****
  { "std",	0x0c0012c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
  { "std",        0x70000000, 0xfc000002, "cqx,&(b)", pa20w, FLAG_STRICT},
  { "std",        0x70000000, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT},
- { "stw",	0x0c0012a0, 0xfc0013ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
- { "stw",	0x0c0012a0, 0xfc0013ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "stw",	0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
  { "stw",	0x0c001280, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
  { "stw",        0x6c000000, 0xfc000000, "cex,<(b)", pa20w, FLAG_STRICT},
  { "stw",        0x6c000000, 0xfc000000, "cex,J(s,b)", pa10, FLAG_STRICT},
  { "stw",        0x6c000000, 0xfc000000, "cex,J(b)", pa10, FLAG_STRICT},
--- 366,375 ----
  { "std",	0x0c0012c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
  { "std",        0x70000000, 0xfc000002, "cqx,&(b)", pa20w, FLAG_STRICT},
  { "std",        0x70000000, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT},
  { "stw",	0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
  { "stw",	0x0c001280, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
+ { "stw",	0x0c0012a0, 0xfc0013ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
+ { "stw",	0x0c0012a0, 0xfc0013ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "stw",        0x6c000000, 0xfc000000, "cex,<(b)", pa20w, FLAG_STRICT},
  { "stw",        0x6c000000, 0xfc000000, "cex,J(s,b)", pa10, FLAG_STRICT},
  { "stw",        0x6c000000, 0xfc000000, "cex,J(b)", pa10, FLAG_STRICT},
*************** static const struct pa_opcode pa_opcodes
*** 377,393 ****
  { "stw",        0x68000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
  { "stw",        0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "stw",        0x68000000, 0xfc000000, "x,j(b)", pa10, 0},
- { "sth",	0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
- { "sth",	0x0c001260, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "sth",	0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
  { "sth",	0x0c001240, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
  { "sth",        0x64000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
  { "sth",        0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "sth",        0x64000000, 0xfc000000, "x,j(b)", pa10, 0},
- { "stb",	0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
- { "stb",	0x0c001220, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "stb",	0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
  { "stb",	0x0c001200, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
  { "stb",        0x60000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
  { "stb",        0x60000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "stb",        0x60000000, 0xfc000000, "x,j(b)", pa10, 0},
--- 379,395 ----
  { "stw",        0x68000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
  { "stw",        0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "stw",        0x68000000, 0xfc000000, "x,j(b)", pa10, 0},
  { "sth",	0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
  { "sth",	0x0c001240, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
+ { "sth",	0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
+ { "sth",	0x0c001260, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "sth",        0x64000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
  { "sth",        0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "sth",        0x64000000, 0xfc000000, "x,j(b)", pa10, 0},
  { "stb",	0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
  { "stb",	0x0c001200, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
+ { "stb",	0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
+ { "stb",	0x0c001220, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "stb",        0x60000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
  { "stb",        0x60000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "stb",        0x60000000, 0xfc000000, "x,j(b)", pa10, 0},
*************** static const struct pa_opcode pa_opcodes
*** 395,414 ****
  { "ldwm",       0x4c000000, 0xfc000000, "j(b),x", pa10, 0},
  { "stwm",       0x6c000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "stwm",       0x6c000000, 0xfc000000, "x,j(b)", pa10, 0},
! { "ldwx",       0x0c000080, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
! { "ldwx",       0x0c000080, 0xfc001fc0, "cxx(b),t", pa10, 0},
! { "ldhx",       0x0c000040, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
! { "ldhx",       0x0c000040, 0xfc001fc0, "cxx(b),t", pa10, 0},
! { "ldbx",       0x0c000000, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
! { "ldbx",       0x0c000000, 0xfc001fc0, "cxx(b),t", pa10, 0},
  { "ldwa",       0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa10, FLAG_STRICT},
  { "ldwa",	0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa10, FLAG_STRICT},
  { "ldcw",       0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa10, FLAG_STRICT},
  { "ldcw",       0x0c0001c0, 0xfc0013c0, "cxcdx(b),t", pa10, FLAG_STRICT},
  { "ldcw",	0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa10, FLAG_STRICT},
  { "ldcw",	0x0c0011c0, 0xfc0013c0, "cmcd5(b),t", pa10, FLAG_STRICT},
- { "stwa",	0x0c0013a0, 0xfc00d3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "stwa",	0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
  { "stby",	0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa10, FLAG_STRICT},
  { "stby",	0x0c001300, 0xfc0013c0, "cscCx,V(b)", pa10, FLAG_STRICT},
  { "ldda",       0x0c000100, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT},
--- 397,416 ----
  { "ldwm",       0x4c000000, 0xfc000000, "j(b),x", pa10, 0},
  { "stwm",       0x6c000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "stwm",       0x6c000000, 0xfc000000, "x,j(b)", pa10, 0},
! { "ldwx",       0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
! { "ldwx",       0x0c000080, 0xfc001fc0, "cXx(b),t", pa10, 0},
! { "ldhx",       0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
! { "ldhx",       0x0c000040, 0xfc001fc0, "cXx(b),t", pa10, 0},
! { "ldbx",       0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
! { "ldbx",       0x0c000000, 0xfc001fc0, "cXx(b),t", pa10, 0},
  { "ldwa",       0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa10, FLAG_STRICT},
  { "ldwa",	0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa10, FLAG_STRICT},
  { "ldcw",       0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa10, FLAG_STRICT},
  { "ldcw",       0x0c0001c0, 0xfc0013c0, "cxcdx(b),t", pa10, FLAG_STRICT},
  { "ldcw",	0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa10, FLAG_STRICT},
  { "ldcw",	0x0c0011c0, 0xfc0013c0, "cmcd5(b),t", pa10, FLAG_STRICT},
  { "stwa",	0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
+ { "stwa",	0x0c0013a0, 0xfc00d3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "stby",	0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa10, FLAG_STRICT},
  { "stby",	0x0c001300, 0xfc0013c0, "cscCx,V(b)", pa10, FLAG_STRICT},
  { "ldda",       0x0c000100, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT},
*************** static const struct pa_opcode pa_opcodes
*** 421,449 ****
  { "stda",	0x0c0013e0, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "stda",	0x0c0013c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT},
  { "stda",	0x0c0013c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
! { "ldwax",      0x0c000180, 0xfc00dfc0, "cxx(b),t", pa10, 0},
! { "ldcwx",      0x0c0001c0, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
! { "ldcwx",      0x0c0001c0, 0xfc001fc0, "cxx(b),t", pa10, 0},
! { "ldws",	0x0c001080, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
! { "ldws",	0x0c001080, 0xfc001fc0, "cm5(b),t", pa10, 0},
! { "ldhs",	0x0c001040, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
! { "ldhs",	0x0c001040, 0xfc001fc0, "cm5(b),t", pa10, 0},
! { "ldbs",	0x0c001000, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
! { "ldbs",	0x0c001000, 0xfc001fc0, "cm5(b),t", pa10, 0},
! { "ldwas",	0x0c001180, 0xfc00dfc0, "cm5(b),t", pa10, 0},
! { "ldcws",	0x0c0011c0, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
! { "ldcws",	0x0c0011c0, 0xfc001fc0, "cm5(b),t", pa10, 0},
! { "stws",	0x0c001280, 0xfc001fc0, "cmx,V(s,b)", pa10, 0},
! { "stws",	0x0c001280, 0xfc001fc0, "cmx,V(b)", pa10, 0},
! { "sths",	0x0c001240, 0xfc001fc0, "cmx,V(s,b)", pa10, 0},
! { "sths",	0x0c001240, 0xfc001fc0, "cmx,V(b)", pa10, 0},
! { "stbs",	0x0c001200, 0xfc001fc0, "cmx,V(s,b)", pa10, 0},
! { "stbs",	0x0c001200, 0xfc001fc0, "cmx,V(b)", pa10, 0},
! { "stwas",	0x0c001380, 0xfc00dfc0, "cmx,V(b)", pa10, 0},
  { "stdby",	0x0c001340, 0xfc0013c0, "cscCx,V(s,b)", pa20, FLAG_STRICT},
  { "stdby",	0x0c001340, 0xfc0013c0, "cscCx,V(b)", pa20, FLAG_STRICT},
! { "stbys",	0x0c001300, 0xfc001fc0, "csx,V(s,b)", pa10, 0},
! { "stbys",	0x0c001300, 0xfc001fc0, "csx,V(b)", pa10, 0},
  
  /* Immediate instructions.  */
  { "ldo",	0x34000000, 0xfc000000, "l(b),x", pa20w, 0},
--- 423,451 ----
  { "stda",	0x0c0013e0, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
  { "stda",	0x0c0013c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT},
  { "stda",	0x0c0013c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
! { "ldwax",      0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, 0},
! { "ldcwx",      0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
! { "ldcwx",      0x0c0001c0, 0xfc001fc0, "cXx(b),t", pa10, 0},
! { "ldws",	0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
! { "ldws",	0x0c001080, 0xfc001fc0, "cM5(b),t", pa10, 0},
! { "ldhs",	0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
! { "ldhs",	0x0c001040, 0xfc001fc0, "cM5(b),t", pa10, 0},
! { "ldbs",	0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
! { "ldbs",	0x0c001000, 0xfc001fc0, "cM5(b),t", pa10, 0},
! { "ldwas",	0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, 0},
! { "ldcws",	0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
! { "ldcws",	0x0c0011c0, 0xfc001fc0, "cM5(b),t", pa10, 0},
! { "stws",	0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
! { "stws",	0x0c001280, 0xfc001fc0, "cMx,V(b)", pa10, 0},
! { "sths",	0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
! { "sths",	0x0c001240, 0xfc001fc0, "cMx,V(b)", pa10, 0},
! { "stbs",	0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
! { "stbs",	0x0c001200, 0xfc001fc0, "cMx,V(b)", pa10, 0},
! { "stwas",	0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
  { "stdby",	0x0c001340, 0xfc0013c0, "cscCx,V(s,b)", pa20, FLAG_STRICT},
  { "stdby",	0x0c001340, 0xfc0013c0, "cscCx,V(b)", pa20, FLAG_STRICT},
! { "stbys",	0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, 0},
! { "stbys",	0x0c001300, 0xfc001fc0, "cAx,V(b)", pa10, 0},
  
  /* Immediate instructions.  */
  { "ldo",	0x34000000, 0xfc000000, "l(b),x", pa20w, 0},
*************** static const struct pa_opcode pa_opcodes
*** 482,491 ****
  { "addbf",	0xa8000000, 0xfc000000, "?dnx,b,w", pa10, 0},
  { "addibt",	0xa4000000, 0xfc000000, "?dn5,b,w", pa10, 0},
  { "addibf",	0xac000000, 0xfc000000, "?dn5,b,w", pa10, 0},
- { "bb",		0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT}, 
- { "bb",		0xc4004000, 0xfc004000, "?Bnx,B,w", pa20, FLAG_STRICT}, 
  { "bb",		0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT}, 
  { "bb",		0xc4004000, 0xfc004000, "?bnx,Q,w", pa10, 0}, 
  { "bvb",	0xc0004000, 0xffe04000, "?bnx,w", pa10, 0},
  { "clrbts",	0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT},
  { "popbts",	0xe8004005, 0xfffff007, "$", pa20, FLAG_STRICT},
--- 484,493 ----
  { "addbf",	0xa8000000, 0xfc000000, "?dnx,b,w", pa10, 0},
  { "addibt",	0xa4000000, 0xfc000000, "?dn5,b,w", pa10, 0},
  { "addibf",	0xac000000, 0xfc000000, "?dn5,b,w", pa10, 0},
  { "bb",		0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT}, 
  { "bb",		0xc4004000, 0xfc004000, "?bnx,Q,w", pa10, 0}, 
+ { "bb",		0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT}, 
+ { "bb",		0xc4004000, 0xfc004000, "?Bnx,B,w", pa20, FLAG_STRICT}, 
  { "bvb",	0xc0004000, 0xffe04000, "?bnx,w", pa10, 0},
  { "clrbts",	0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT},
  { "popbts",	0xe8004005, 0xfffff007, "$", pa20, FLAG_STRICT},
*************** static const struct pa_opcode pa_opcodes
*** 701,746 ****
  
  /* Floating Point Coprocessor Instructions.  */
   
- { "fldw",       0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT},
- { "fldw",       0x24001020, 0xfc1f33a0, "cocc@(b),fT", pa20, FLAG_STRICT},
  { "fldw",       0x24000000, 0xfc001380, "cxccx(s,b),fT", pa10, FLAG_STRICT},
  { "fldw",       0x24000000, 0xfc001380, "cxccx(b),fT", pa10, FLAG_STRICT},
  { "fldw",       0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa10, FLAG_STRICT},
  { "fldw",       0x24001000, 0xfc001380, "cmcc5(b),fT", pa10, FLAG_STRICT},
  { "fldw",       0x5c000000, 0xfc000004, "y(b),fe", pa20w, FLAG_STRICT},
  { "fldw",       0x58000000, 0xfc000000, "cJy(b),fe", pa20w, FLAG_STRICT},
  { "fldw",       0x5c000000, 0xfc000004, "d(b),fe", pa20, FLAG_STRICT},
  { "fldw",       0x58000000, 0xfc000000, "cJd(b),fe", pa20, FLAG_STRICT},
- { "fldd",       0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT},
- { "fldd",       0x2c001020, 0xfc1f33e0, "cocc@(b),ft", pa20, FLAG_STRICT},
  { "fldd",       0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa10, FLAG_STRICT},
  { "fldd",       0x2c000000, 0xfc0013c0, "cxccx(b),ft", pa10, FLAG_STRICT},
  { "fldd",       0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa10, FLAG_STRICT},
  { "fldd",       0x2c001000, 0xfc0013c0, "cmcc5(b),ft", pa10, FLAG_STRICT},
  { "fldd",       0x50000002, 0xfc000002, "cq&(b),fx", pa20w, FLAG_STRICT},
  { "fldd",       0x50000002, 0xfc000002, "cq#(b),fx", pa20, FLAG_STRICT},
- { "fstw",       0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa10, FLAG_STRICT},
- { "fstw",       0x24001220, 0xfc1f33a0, "cocCfT,@(b)", pa10, FLAG_STRICT},
  { "fstw",       0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa10, FLAG_STRICT},
  { "fstw",       0x24000200, 0xfc001380, "cxcCfT,x(b)", pa10, FLAG_STRICT},
  { "fstw",       0x24001200, 0xfc001380, "cmcCfT,5(s,b)", pa10, FLAG_STRICT},
  { "fstw",       0x24001200, 0xfc001380, "cmcCfT,5(b)", pa10, FLAG_STRICT},
  { "fstw",       0x7c000000, 0xfc000004, "fE,y(b)", pa20w, FLAG_STRICT},
  { "fstw",       0x78000000, 0xfc000000, "cJfe,y(b)", pa20w, FLAG_STRICT},
  { "fstw",       0x7c000000, 0xfc000004, "fe,d(b)", pa20, FLAG_STRICT},
  { "fstw",       0x78000000, 0xfc000000, "cJfe,d(b)", pa20, FLAG_STRICT},
- { "fstd",       0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa10, FLAG_STRICT},
- { "fstd",       0x2c001220, 0xfc1f33e0, "cocCft,@(b)", pa10, FLAG_STRICT},
  { "fstd",       0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa10, FLAG_STRICT},
  { "fstd",       0x2c000200, 0xfc0013c0, "cxcCft,x(b)", pa10, FLAG_STRICT},
  { "fstd",       0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa10, FLAG_STRICT},
  { "fstd",       0x2c001200, 0xfc0013c0, "cmcCft,5(b)", pa10, FLAG_STRICT},
  { "fstd",       0x70000002, 0xfc000002, "cqfx,&(b)", pa20w, FLAG_STRICT},
  { "fstd",       0x70000002, 0xfc000002, "cqfx,#(b)", pa20, FLAG_STRICT},
! { "fldwx",      0x24000000, 0xfc001f80, "cxx(s,b),fT", pa10, 0},
! { "fldwx",      0x24000000, 0xfc001f80, "cxx(b),fT", pa10, 0},
! { "flddx",      0x2c000000, 0xfc001fc0, "cxx(s,b),ft", pa10, 0},
! { "flddx",      0x2c000000, 0xfc001fc0, "cxx(b),ft", pa10, 0},
  { "fstwx",      0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, 0},
  { "fstwx",      0x24000200, 0xfc001f80, "cxfT,x(b)", pa10, 0},
  { "fstdx",      0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, 0},
--- 703,748 ----
  
  /* Floating Point Coprocessor Instructions.  */
   
  { "fldw",       0x24000000, 0xfc001380, "cxccx(s,b),fT", pa10, FLAG_STRICT},
  { "fldw",       0x24000000, 0xfc001380, "cxccx(b),fT", pa10, FLAG_STRICT},
  { "fldw",       0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa10, FLAG_STRICT},
  { "fldw",       0x24001000, 0xfc001380, "cmcc5(b),fT", pa10, FLAG_STRICT},
+ { "fldw",       0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT},
+ { "fldw",       0x24001020, 0xfc1f33a0, "cocc@(b),fT", pa20, FLAG_STRICT},
  { "fldw",       0x5c000000, 0xfc000004, "y(b),fe", pa20w, FLAG_STRICT},
  { "fldw",       0x58000000, 0xfc000000, "cJy(b),fe", pa20w, FLAG_STRICT},
  { "fldw",       0x5c000000, 0xfc000004, "d(b),fe", pa20, FLAG_STRICT},
  { "fldw",       0x58000000, 0xfc000000, "cJd(b),fe", pa20, FLAG_STRICT},
  { "fldd",       0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa10, FLAG_STRICT},
  { "fldd",       0x2c000000, 0xfc0013c0, "cxccx(b),ft", pa10, FLAG_STRICT},
  { "fldd",       0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa10, FLAG_STRICT},
  { "fldd",       0x2c001000, 0xfc0013c0, "cmcc5(b),ft", pa10, FLAG_STRICT},
+ { "fldd",       0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT},
+ { "fldd",       0x2c001020, 0xfc1f33e0, "cocc@(b),ft", pa20, FLAG_STRICT},
  { "fldd",       0x50000002, 0xfc000002, "cq&(b),fx", pa20w, FLAG_STRICT},
  { "fldd",       0x50000002, 0xfc000002, "cq#(b),fx", pa20, FLAG_STRICT},
  { "fstw",       0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa10, FLAG_STRICT},
  { "fstw",       0x24000200, 0xfc001380, "cxcCfT,x(b)", pa10, FLAG_STRICT},
  { "fstw",       0x24001200, 0xfc001380, "cmcCfT,5(s,b)", pa10, FLAG_STRICT},
  { "fstw",       0x24001200, 0xfc001380, "cmcCfT,5(b)", pa10, FLAG_STRICT},
+ { "fstw",       0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa10, FLAG_STRICT},
+ { "fstw",       0x24001220, 0xfc1f33a0, "cocCfT,@(b)", pa10, FLAG_STRICT},
  { "fstw",       0x7c000000, 0xfc000004, "fE,y(b)", pa20w, FLAG_STRICT},
  { "fstw",       0x78000000, 0xfc000000, "cJfe,y(b)", pa20w, FLAG_STRICT},
  { "fstw",       0x7c000000, 0xfc000004, "fe,d(b)", pa20, FLAG_STRICT},
  { "fstw",       0x78000000, 0xfc000000, "cJfe,d(b)", pa20, FLAG_STRICT},
  { "fstd",       0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa10, FLAG_STRICT},
  { "fstd",       0x2c000200, 0xfc0013c0, "cxcCft,x(b)", pa10, FLAG_STRICT},
  { "fstd",       0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa10, FLAG_STRICT},
  { "fstd",       0x2c001200, 0xfc0013c0, "cmcCft,5(b)", pa10, FLAG_STRICT},
+ { "fstd",       0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa10, FLAG_STRICT},
+ { "fstd",       0x2c001220, 0xfc1f33e0, "cocCft,@(b)", pa10, FLAG_STRICT},
  { "fstd",       0x70000002, 0xfc000002, "cqfx,&(b)", pa20w, FLAG_STRICT},
  { "fstd",       0x70000002, 0xfc000002, "cqfx,#(b)", pa20, FLAG_STRICT},
! { "fldwx",      0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, 0},
! { "fldwx",      0x24000000, 0xfc001f80, "cXx(b),fT", pa10, 0},
! { "flddx",      0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, 0},
! { "flddx",      0x2c000000, 0xfc001fc0, "cXx(b),ft", pa10, 0},
  { "fstwx",      0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, 0},
  { "fstwx",      0x24000200, 0xfc001f80, "cxfT,x(b)", pa10, 0},
  { "fstdx",      0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, 0},
*************** static const struct pa_opcode pa_opcodes
*** 815,852 ****
  { "spop2",      0x10000400, 0xfc000600, "v,1Nb", pa10, 0},
  { "spop3",      0x10000600, 0xfc000600, "v,0Nx,b", pa10, 0},
  { "copr",       0x30000000, 0xfc000000, "u,2N", pa10, 0},
! { "cldwx",      0x24000000, 0xfc001e00, "ucxx(s,b),t", pa10, 0},
! { "cldwx",      0x24000000, 0xfc001e00, "ucxx(b),t", pa10, 0},
! { "clddx",      0x2c000000, 0xfc001e00, "ucxx(s,b),t", pa10, 0},
! { "clddx",      0x2c000000, 0xfc001e00, "ucxx(b),t", pa10, 0},
! { "cstwx",      0x24000200, 0xfc001e00, "ucxt,x(s,b)", pa10, 0},
! { "cstwx",      0x24000200, 0xfc001e00, "ucxt,x(b)", pa10, 0},
! { "cstdx",      0x2c000200, 0xfc001e00, "ucxt,x(s,b)", pa10, 0},
! { "cstdx",      0x2c000200, 0xfc001e00, "ucxt,x(b)", pa10, 0},
! { "cldws",      0x24001000, 0xfc001e00, "ucm5(s,b),t", pa10, 0},
! { "cldws",      0x24001000, 0xfc001e00, "ucm5(b),t", pa10, 0},
! { "cldds",      0x2c001000, 0xfc001e00, "ucm5(s,b),t", pa10, 0},
! { "cldds",      0x2c001000, 0xfc001e00, "ucm5(b),t", pa10, 0},
! { "cstws",      0x24001200, 0xfc001e00, "ucmt,5(s,b)", pa10, 0},
! { "cstws",      0x24001200, 0xfc001e00, "ucmt,5(b)", pa10, 0},
! { "cstds",      0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10, 0},
! { "cstds",      0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10, 0},
! { "cldw",       0x24000000, 0xfc001e00, "ucxx(s,b),t", pa10, FLAG_STRICT},
! { "cldw",       0x24000000, 0xfc001e00, "ucxx(b),t", pa10, FLAG_STRICT},
! { "cldw",       0x24001000, 0xfc001e00, "ucm5(s,b),t", pa10, FLAG_STRICT},
! { "cldw",       0x24001000, 0xfc001e00, "ucm5(b),t", pa10, FLAG_STRICT},
! { "cldd",       0x2c000000, 0xfc001e00, "ucxx(s,b),t", pa10, FLAG_STRICT},
! { "cldd",       0x2c000000, 0xfc001e00, "ucxx(b),t", pa10, FLAG_STRICT},
! { "cldd",       0x2c001000, 0xfc001e00, "ucm5(s,b),t", pa10, FLAG_STRICT},
! { "cldd",       0x2c001000, 0xfc001e00, "ucm5(b),t", pa20, FLAG_STRICT},
! { "cstw",       0x24000200, 0xfc001e00, "ucxt,x(s,b)", pa10, FLAG_STRICT},
! { "cstw",       0x24000200, 0xfc001e00, "ucxt,x(b)", pa10, FLAG_STRICT},
! { "cstw",       0x24001200, 0xfc001e00, "ucmt,5(s,b)", pa10, FLAG_STRICT},
! { "cstw",       0x24001200, 0xfc001e00, "ucmt,5(b)", pa10, FLAG_STRICT},
! { "cstd",       0x2c000200, 0xfc001e00, "ucxt,x(s,b)", pa10, FLAG_STRICT},
! { "cstd",       0x2c000200, 0xfc001e00, "ucxt,x(b)", pa10, FLAG_STRICT},
! { "cstd",       0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10, FLAG_STRICT},
! { "cstd",       0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10, FLAG_STRICT},
  };
  
  #define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))
--- 817,860 ----
  { "spop2",      0x10000400, 0xfc000600, "v,1Nb", pa10, 0},
  { "spop3",      0x10000600, 0xfc000600, "v,0Nx,b", pa10, 0},
  { "copr",       0x30000000, 0xfc000000, "u,2N", pa10, 0},
! { "cldwx",      0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0},
! { "cldwx",      0x24000000, 0xfc001e00, "ucXx(b),t", pa10, 0},
! { "clddx",      0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0},
! { "clddx",      0x2c000000, 0xfc001e00, "ucXx(b),t", pa10, 0},
! { "cstwx",      0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0},
! { "cstwx",      0x24000200, 0xfc001e00, "ucXt,x(b)", pa10, 0},
! { "cstdx",      0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0},
! { "cstdx",      0x2c000200, 0xfc001e00, "ucXt,x(b)", pa10, 0},
! { "cldws",      0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0},
! { "cldws",      0x24001000, 0xfc001e00, "ucM5(b),t", pa10, 0},
! { "cldds",      0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0},
! { "cldds",      0x2c001000, 0xfc001e00, "ucM5(b),t", pa10, 0},
! { "cstws",      0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0},
! { "cstws",      0x24001200, 0xfc001e00, "ucMt,5(b)", pa10, 0},
! { "cstds",      0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0},
! { "cstds",      0x2c001200, 0xfc001e00, "ucMt,5(b)", pa10, 0},
! { "cldw",       0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
! { "cldw",       0x24000000, 0xfc001e00, "ucXx(b),t", pa10, FLAG_STRICT},
! { "cldw",       0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
! { "cldw",       0x24001000, 0xfc001e00, "ucM5(b),t", pa10, FLAG_STRICT},
! { "cldd",       0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
! { "cldd",       0x2c000000, 0xfc001e00, "ucXx(b),t", pa10, FLAG_STRICT},
! { "cldd",       0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
! { "cldd",       0x2c001000, 0xfc001e00, "ucM5(b),t", pa20, FLAG_STRICT},
! { "cstw",       0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
! { "cstw",       0x24000200, 0xfc001e00, "ucXt,x(b)", pa10, FLAG_STRICT},
! { "cstw",       0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
! { "cstw",       0x24001200, 0xfc001e00, "ucMt,5(b)", pa10, FLAG_STRICT},
! { "cstd",       0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
! { "cstd",       0x2c000200, 0xfc001e00, "ucXt,x(b)", pa10, FLAG_STRICT},
! { "cstd",       0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
! { "cstd",       0x2c001200, 0xfc001e00, "ucMt,5(b)", pa10, FLAG_STRICT},
! 
! /* More pseudo instructions which must follow the main table.  */
! { "call",	0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
! { "call",	0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT},
! { "ret",	0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT},
! 
  };
  
  #define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))
Index: gas/config/tc-hppa.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gas/config/tc-hppa.c,v
retrieving revision 1.263
diff -c -3 -p -r1.263 tc-hppa.c
*** tc-hppa.c	2001/10/13 08:51:37	1.263
--- tc-hppa.c	2001/12/31 23:40:25
*************** pa_ip (str)
*** 1810,1815 ****
--- 1810,1816 ----
  		{
  
  		/* Handle a completer for an indexing load or store.  */
+ 		case 'X':
  		case 'x':
  		  {
  		    int uu = 0;
*************** pa_ip (str)
*** 1848,1853 ****
--- 1849,1855 ----
  		  }
  
  		/* Handle a short load/store completer.  */
+ 		case 'M':
  		case 'm':
  		case 'q':
  		case 'J':
*************** pa_ip (str)
*** 1887,1895 ****
  		    else if (*args == 'e')
  		      break;
  
! 		   /* 'J', 'm' and 'q' are the same, except for where they
  		       encode the before/after field.  */
! 		   if (*args == 'm')
  		      {
  			opcode |= m << 5;
  			INSERT_FIELD_AND_CONTINUE (opcode, a, 13);
--- 1889,1897 ----
  		    else if (*args == 'e')
  		      break;
  
! 		   /* 'J', 'm', 'M' and 'q' are the same, except for where they
  		       encode the before/after field.  */
! 		   if (*args == 'm' || *args == 'M')
  		      {
  			opcode |= m << 5;
  			INSERT_FIELD_AND_CONTINUE (opcode, a, 13);
*************** pa_ip (str)
*** 1915,1920 ****
--- 1917,1923 ----
  		  }
  
  		/* Handle a stbys completer.  */
+ 		case 'A':
  		case 's':
  		  {
  		    int a = 0;
Index: opcodes/hppa-dis.c
===================================================================
RCS file: /cvs/cvsfiles/devo/opcodes/hppa-dis.c,v
retrieving revision 1.74
diff -c -3 -p -r1.74 hppa-dis.c
*** hppa-dis.c	2001/03/15 04:23:54	1.74
--- hppa-dis.c	2001/12/31 23:40:25
*************** print_insn_hppa (memaddr, info)
*** 554,570 ****
  		  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 'c':
  		    case 'C':
  		      switch (GET_FIELD (insn, 20, 21))
--- 554,582 ----
  		  switch (*++s)
  		    {
  		    case 'x':
+ 		      (*info->fprintf_func) (info->stream, "%s",
+ 					     index_compl_names[GET_COMPL (insn)]);
+ 		      break;
+ 		    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 'M':
  		      (*info->fprintf_func) (info->stream, "%s ",
  					     short_ldst_compl_names[GET_COMPL (insn)]);
  		      break;
! 		    case 'A':
  		      (*info->fprintf_func) (info->stream, "%s ",
  					     short_bytes_compl_names[GET_COMPL (insn)]);
  		      break;
+ 		    case 's':
+ 		      (*info->fprintf_func) (info->stream, "%s",
+ 					     short_bytes_compl_names[GET_COMPL (insn)]);
+ 		      break;
  		    case 'c':
  		    case 'C':
  		      switch (GET_FIELD (insn, 20, 21))
*************** print_insn_hppa (memaddr, info)
*** 686,692 ****
  		      break;
  		    case 'H':
  		      (*info->fprintf_func)
! 			  (info->stream, "%s", saturation_names[GET_FIELD
  							       (insn, 24, 25)]);
  		      break;
  		    case '*':
--- 698,704 ----
  		      break;
  		    case 'H':
  		      (*info->fprintf_func)
! 			  (info->stream, "%s ", saturation_names[GET_FIELD
  							       (insn, 24, 25)]);
  		      break;
  		    case '*':





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