This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Minor PA assembler/disassembler updates
- From: law at redhat dot com
- To: binutils at sources dot redhat dot com
- Date: Mon, 31 Dec 2001 16:44:49 -0700
- Subject: Minor PA assembler/disassembler updates
- Reply-to: law at redhat dot com
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 '*':