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: PA2.0 cache completers


This patch adds the (hopefully :-) final piece of the hppa 2.0 instruction
set.  It adds load and store cache completers and ordered access for both
integer and floating point memory operations.

I'm signing off today for a while and won't be able to do any more HP work
easily from now on.

Enjoy,
Jerry


ChangeLog entry:

Tue Sep 28 14:36:06 EDT 1999  Jerry Quinn <jerry.quinn.adv91@alum.dartmouth.org>

    * include/opcode/hppa.h (pa_opcodes):  Add load and store cache control to
      instructions.  Add ordered access load and store.
    * gas/config/tc-hppa.c (pa_ip):  Add new codes 'cc', 'cd', 'cC', 'co',
      '@'.  Change autoincrement completers to fall through to cache control
      completers.
    * opcode/hppa-dis.c (print_insn_hppa):  Add new codes 'cc', 'cd', 'cC',
      'co', '@'.
    * gas/testsuite/gas/hppa/basic (imem2.s,basic.exp):  New tests.

*** orig/include/opcode/hppa.h	Fri Sep 24 17:02:21 1999
--- gas-src/include/opcode/hppa.h	Tue Sep 28 14:22:46 1999
***************
*** 155,170 ****
     J    Yet another 14bit offset with an unusual encoding.
     K    Yet another 14bit offset with an unusual encoding.
     Y    %sr0,%r31 -- implicit target of be,l instruction.
  
  Completer operands all have 'c' as the prefix:
  
     cx   indexed load completer.
     cm   short load and store completer.
!    cq   short load and store completer (like cm, but inserted into a
  	different location in the target instruction).
     cs   store bytes short completer.
!    cc   Another load/store completer with a different encoding than the
  	others
  
     cp	branch link and push completer
     cP	branch pop completer
--- 155,174 ----
     J    Yet another 14bit offset with an unusual encoding.
     K    Yet another 14bit offset with an unusual encoding.
     Y    %sr0,%r31 -- implicit target of be,l instruction.
+    @	implicit immediate value of 0
  
  Completer operands all have 'c' as the prefix:
  
     cx   indexed load completer.
     cm   short load and store completer.
!    cq   long load and store completer (like cm, but inserted into a
  	different location in the target instruction).
     cs   store bytes short completer.
!    ce   long load/store completer for LDW/STW with a different encoding than the
  	others
+    cc   load cache control hint
+    cd   load and clear cache control hint
+    cC   store cache control hint
+    co	ordered access
  
     cp	branch link and push completer
     cP	branch pop completer
***************
*** 296,348 ****
  { "mtsar",      0x01601840, 0xffe0ffff, "x", pa10, 0}, /* mtctl r,cr11 */
  
  /* Loads and Stores for integer registers.  */
! { "ldd",        0x0c0000c0, 0xfc001fc0, "cxx(s,b),t", pa20, FLAG_STRICT},
! { "ldd",        0x0c0000c0, 0xfc001fc0, "cxx(b),t", pa20, FLAG_STRICT},
! { "ldd",	0x0c0010c0, 0xfc001fc0, "cm5(s,b),t", pa20, FLAG_STRICT},
! { "ldd",	0x0c0010c0, 0xfc001fc0, "cm5(b),t", pa20, FLAG_STRICT},
  { "ldd",        0x50000000, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT},
  { "ldd",        0x50000000, 0xfc000002, "cq#(b),x", pa20, FLAG_STRICT},
! { "ldw",        0x0c000080, 0xfc001fc0, "cxx(s,b),t", pa10, FLAG_STRICT},
! { "ldw",        0x0c000080, 0xfc001fc0, "cxx(b),t", pa10, FLAG_STRICT},
! { "ldw",	0x0c001080, 0xfc001fc0, "cm5(s,b),t", pa10, FLAG_STRICT},
! { "ldw",	0x0c001080, 0xfc001fc0, "cm5(b),t", pa10, FLAG_STRICT},
! { "ldw",        0x4c000000, 0xfc000000, "ccJ(s,b),x", pa10, FLAG_STRICT},
! { "ldw",        0x4c000000, 0xfc000000, "ccJ(b),x", pa10, FLAG_STRICT},
! { "ldw",        0x5c000004, 0xfc000006, "ccK(s,b),x", pa20, FLAG_STRICT},
! { "ldw",        0x5c000004, 0xfc000006, "ccK(b),x", pa20, FLAG_STRICT},
  { "ldw",        0x48000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "ldw",        0x48000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "ldw",        0x48000000, 0xfc000000, "j(b),x", pa10, 0},
! { "ldh",        0x0c000040, 0xfc001fc0, "cxx(s,b),t", pa10, FLAG_STRICT},
! { "ldh",        0x0c000040, 0xfc001fc0, "cxx(b),t", pa10, FLAG_STRICT},
! { "ldh",	0x0c001040, 0xfc001fc0, "cm5(s,b),t", pa10, FLAG_STRICT},
! { "ldh",	0x0c001040, 0xfc001fc0, "cm5(b),t", pa10, FLAG_STRICT},
  { "ldh",        0x44000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "ldh",        0x44000000, 0xfc000000, "j(b),x", pa10, 0},
! { "ldb",        0x0c000000, 0xfc001fc0, "cxx(s,b),t", pa10, FLAG_STRICT},
! { "ldb",        0x0c000000, 0xfc001fc0, "cxx(b),t", pa10, FLAG_STRICT},
! { "ldb",	0x0c001000, 0xfc001fc0, "cm5(s,b),t", pa10, FLAG_STRICT},
! { "ldb",	0x0c001000, 0xfc001fc0, "cm5(b),t", pa10, FLAG_STRICT},
  { "ldb",        0x40000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "ldb",        0x40000000, 0xfc000000, "j(b),x", pa10, 0},
! { "std",	0x0c0012c0, 0xfc001fc0, "cmx,V(s,b)", pa20, FLAG_STRICT},
! { "std",	0x0c0012c0, 0xfc001fc0, "cmx,V(b)", pa20, FLAG_STRICT},
  { "std",        0x70000000, 0xfc000002, "cqx,#(s,b)", pa20, FLAG_STRICT},
  { "std",        0x70000000, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT},
! { "stw",	0x0c001280, 0xfc001fc0, "cmx,V(s,b)", pa10, FLAG_STRICT},
! { "stw",	0x0c001280, 0xfc001fc0, "cmx,V(b)", pa10, FLAG_STRICT},
! { "stw",        0x6c000000, 0xfc000000, "ccx,J(s,b)", pa10, FLAG_STRICT},
! { "stw",        0x6c000000, 0xfc000000, "ccx,J(b)", pa10, FLAG_STRICT},
! { "stw",        0x7c000004, 0xfc000006, "ccx,K(s,b)", pa20, FLAG_STRICT},
! { "stw",        0x7c000004, 0xfc000006, "ccx,K(b)", pa20, FLAG_STRICT},
  { "stw",        0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "stw",        0x68000000, 0xfc000000, "x,j(b)", pa10, 0},
! { "sth",	0x0c001240, 0xfc001fc0, "cmx,V(s,b)", pa10, FLAG_STRICT},
! { "sth",	0x0c001240, 0xfc001fc0, "cmx,V(b)", pa10, FLAG_STRICT},
  { "sth",        0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "sth",        0x64000000, 0xfc000000, "x,j(b)", pa10, 0},
! { "stb",	0x0c001200, 0xfc001fc0, "cmx,V(s,b)", pa10, FLAG_STRICT},
! { "stb",	0x0c001200, 0xfc001fc0, "cmx,V(b)", pa10, FLAG_STRICT},
  { "stb",        0x60000000, 0xfc000000, "x,j(s,b)", pa10, 0},
  { "stb",        0x60000000, 0xfc000000, "x,j(b)", pa10, 0},
  { "ldwm",       0x4c000000, 0xfc000000, "j(s,b),x", pa10, 0},
--- 300,369 ----
  { "mtsar",      0x01601840, 0xffe0ffff, "x", pa10, 0}, /* mtctl r,cr11 */
  
  /* Loads and Stores for integer registers.  */
! 
! { "ldd",	0x0c0010e0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
! { "ldd",	0x0c0010e0, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
! { "ldd",        0x0c0000c0, 0xfc0013c0, "cxccx(s,b),t", pa20, FLAG_STRICT},
! { "ldd",        0x0c0000c0, 0xfc0013c0, "cxccx(b),t", pa20, FLAG_STRICT},
! { "ldd",	0x0c0010c0, 0xfc0013c0, "cmcc5(s,b),t", pa20, FLAG_STRICT},
! { "ldd",	0x0c0010c0, 0xfc0013c0, "cmcc5(b),t", pa20, FLAG_STRICT},
  { "ldd",        0x50000000, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT},
  { "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, "ceJ(s,b),x", pa10, FLAG_STRICT},
! { "ldw",        0x4c000000, 0xfc000000, "ceJ(b),x", pa10, FLAG_STRICT},
! { "ldw",        0x5c000004, 0xfc000006, "ceK(s,b),x", pa20, FLAG_STRICT},
! { "ldw",        0x5c000004, 0xfc000006, "ceK(b),x", pa20, FLAG_STRICT},
  { "ldw",        0x48000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "ldw",        0x48000000, 0xfc000000, "j(s,b),x", pa10, 0},
  { "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, "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, "j(s,b),x", pa10, 0},
  { "ldb",        0x40000000, 0xfc000000, "j(b),x", pa10, 0},
! { "std",	0x0c0012e0, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
! { "std",	0x0c0012e0, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
! { "std",	0x0c0012c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT},
! { "std",	0x0c0012c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
  { "std",        0x70000000, 0xfc000002, "cqx,#(s,b)", pa20, 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,J(s,b)", pa10, FLAG_STRICT},
! { "stw",        0x6c000000, 0xfc000000, "cex,J(b)", pa10, FLAG_STRICT},
! { "stw",        0x7c000004, 0xfc000006, "cex,K(s,b)", pa20, FLAG_STRICT},
! { "stw",        0x7c000004, 0xfc000006, "cex,K(b)", pa20, 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,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,j(s,b)", pa10, 0},
  { "stb",        0x60000000, 0xfc000000, "x,j(b)", pa10, 0},
  { "ldwm",       0x4c000000, 0xfc000000, "j(s,b),x", pa10, 0},
***************
*** 355,377 ****
  { "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, 0xfc00dfc0, "cxx(b),t", pa10, FLAG_STRICT},
! { "ldwa",	0x0c001180, 0xfc00dfc0, "cm5(b),t", pa10, FLAG_STRICT},
! { "ldcw",       0x0c0001c0, 0xfc001fc0, "cxx(s,b),t", pa10, FLAG_STRICT},
! { "ldcw",       0x0c0001c0, 0xfc001fc0, "cxx(b),t", pa10, FLAG_STRICT},
! { "ldcw",	0x0c0011c0, 0xfc001fc0, "cm5(s,b),t", pa10, FLAG_STRICT},
! { "ldcw",	0x0c0011c0, 0xfc001fc0, "cm5(b),t", pa10, FLAG_STRICT},
! { "stwa",	0x0c001380, 0xfc00dfc0, "cmx,V(b)", pa10, FLAG_STRICT},
! { "stby",	0x0c001300, 0xfc001fc0, "csx,V(s,b)", pa10, FLAG_STRICT},
! { "stby",	0x0c001300, 0xfc001fc0, "csx,V(b)", pa10, FLAG_STRICT},
! { "ldda",       0x0c000100, 0xfc00dfc0, "cxx(b),t", pa20, FLAG_STRICT},
! { "ldda",	0x0c001100, 0xfc00dfc0, "cm5(b),t", pa20, FLAG_STRICT},
! { "ldcd",       0x0c000140, 0xfc001fc0, "cxx(s,b),t", pa20, FLAG_STRICT},
! { "ldcd",       0x0c000140, 0xfc001fc0, "cxx(b),t", pa20, FLAG_STRICT},
! { "ldcd",	0x0c001140, 0xfc001fc0, "cm5(s,b),t", pa20, FLAG_STRICT},
! { "ldcd",	0x0c001140, 0xfc001fc0, "cm5(b),t", pa20, FLAG_STRICT},
! { "stda",	0x0c0013c0, 0xfc001fc0, "cmx,V(s,b)", pa20, FLAG_STRICT},
! { "stda",	0x0c0013c0, 0xfc001fc0, "cmx,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},
--- 376,401 ----
  { "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},
! { "ldda",	0x0c001100, 0xfc00d3c0, "cmcc5(b),t", pa20, FLAG_STRICT},
! { "ldcd",       0x0c000140, 0xfc0013c0, "cxcdx(s,b),t", pa20, FLAG_STRICT},
! { "ldcd",       0x0c000140, 0xfc0013c0, "cxcdx(b),t", pa20, FLAG_STRICT},
! { "ldcd",	0x0c001140, 0xfc0013c0, "cmcd5(s,b),t", pa20, FLAG_STRICT},
! { "ldcd",	0x0c001140, 0xfc0013c0, "cmcd5(b),t", pa20, FLAG_STRICT},
! { "stda",	0x0c0013e0, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
! { "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},
***************
*** 391,398 ****
  { "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, 0xfc001fc0, "csx,V(s,b)", pa20, FLAG_STRICT},
! { "stdby",	0x0c001340, 0xfc001fc0, "csx,V(b)", pa20, FLAG_STRICT},
  { "stbys",	0x0c001300, 0xfc001fc0, "csx,V(s,b)", pa10, 0},
  { "stbys",	0x0c001300, 0xfc001fc0, "csx,V(b)", pa10, 0},
  
--- 415,422 ----
  { "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},
  
***************
*** 651,682 ****
  
  /* Floating Point Coprocessor Instructions */
   
! { "fldw",       0x24000000, 0xfc001f80, "cxx(s,b),fT", pa10, FLAG_STRICT},
! { "fldw",       0x24000000, 0xfc001f80, "cxx(b),fT", pa10, FLAG_STRICT},
! { "fldw",       0x24001000, 0xfc001f80, "cm5(s,b),fT", pa10, FLAG_STRICT},
! { "fldw",       0x24001000, 0xfc001f80, "cm5(b),fT", pa10, FLAG_STRICT},
  { "fldw",       0x5c000000, 0xfc000004, "d(s,b),fe", pa20, FLAG_STRICT},
  { "fldw",       0x5c000000, 0xfc000004, "d(b),fe", pa20, FLAG_STRICT},
  { "fldw",       0x58000000, 0xfc000004, "cJd(s,b),fe", pa20, FLAG_STRICT},
  { "fldw",       0x58000000, 0xfc000004, "cJd(b),fe", pa20, FLAG_STRICT},
! { "fldd",       0x2c000000, 0xfc001fc0, "cxx(s,b),ft", pa10, FLAG_STRICT},
! { "fldd",       0x2c000000, 0xfc001fc0, "cxx(b),ft", pa10, FLAG_STRICT},
! { "fldd",       0x2c001000, 0xfc001fc0, "cm5(s,b),ft", pa10, FLAG_STRICT},
! { "fldd",       0x2c001000, 0xfc001fc0, "cm5(b),ft", pa10, FLAG_STRICT},
  { "fldd",       0x50000002, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT},
  { "fldd",       0x50000002, 0xfc000002, "cq#(b),x", pa20, FLAG_STRICT},
! { "fstw",       0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, FLAG_STRICT},
! { "fstw",       0x24000200, 0xfc001f80, "cxfT,x(b)", pa10, FLAG_STRICT},
! { "fstw",       0x24001200, 0xfc001f80, "cmfT,5(s,b)", pa10, FLAG_STRICT},
! { "fstw",       0x24001200, 0xfc001f80, "cmfT,5(b)", pa10, FLAG_STRICT},
  { "fstw",       0x7c000000, 0xfc000004, "fe,d(s,b)", pa20, FLAG_STRICT},
  { "fstw",       0x7c000000, 0xfc000004, "fe,d(b)", pa20, FLAG_STRICT},
  { "fstw",       0x78000000, 0xfc000004, "cJfe,d(s,b)", pa20, FLAG_STRICT},
  { "fstw",       0x78000000, 0xfc000004, "cJfe,d(b)", pa20, FLAG_STRICT},
! { "fstd",       0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, FLAG_STRICT},
! { "fstd",       0x2c000200, 0xfc001fc0, "cxft,x(b)", pa10, FLAG_STRICT},
! { "fstd",       0x2c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, FLAG_STRICT},
! { "fstd",       0x2c001200, 0xfc001fc0, "cmft,5(b)", pa10, FLAG_STRICT},
  { "fstd",       0x70000002, 0xfc000002, "cqx,#(s,b)", pa20, FLAG_STRICT},
  { "fstd",       0x70000002, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT},
  { "fldwx",      0x24000000, 0xfc001f80, "cxx(s,b),fT", pa10, 0},
--- 675,714 ----
  
  /* 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, "d(s,b),fe", pa20, FLAG_STRICT},
  { "fldw",       0x5c000000, 0xfc000004, "d(b),fe", pa20, FLAG_STRICT},
  { "fldw",       0x58000000, 0xfc000004, "cJd(s,b),fe", pa20, FLAG_STRICT},
  { "fldw",       0x58000000, 0xfc000004, "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#(s,b),x", pa20, FLAG_STRICT},
  { "fldd",       0x50000002, 0xfc000002, "cq#(b),x", 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,d(s,b)", pa20, FLAG_STRICT},
  { "fstw",       0x7c000000, 0xfc000004, "fe,d(b)", pa20, FLAG_STRICT},
  { "fstw",       0x78000000, 0xfc000004, "cJfe,d(s,b)", pa20, FLAG_STRICT},
  { "fstw",       0x78000000, 0xfc000004, "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, "cqx,#(s,b)", pa20, FLAG_STRICT},
  { "fstd",       0x70000002, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT},
  { "fldwx",      0x24000000, 0xfc001f80, "cxx(s,b),fT", pa10, 0},
*** orig/gas/config/tc-hppa.c	Fri Sep 24 17:02:26 1999
--- gas-src/gas/config/tc-hppa.c	Tue Sep 28 13:43:17 1999
***************
*** 1770,1780 ****
  			  }
  			else if (strncasecmp (s, "m", 1) == 0)
  			  m = 1;
! 			else if (strncasecmp (s, "s", 1) == 0)
  			  uu = 1;
  			/* When in strict mode this is a match failure.  */
  			else if (strict)
! 			  break;
  			else
  			  as_bad (_("Invalid Indexed Load Completer."));
  			s++;
--- 1770,1784 ----
  			  }
  			else if (strncasecmp (s, "m", 1) == 0)
  			  m = 1;
! 			else if ((strncasecmp (s, "s ", 2) == 0)
! 				 || (strncasecmp (s, "s,", 2) == 0))
  			  uu = 1;
  			/* When in strict mode this is a match failure.  */
  			else if (strict)
! 			  {
! 			    s--;
! 			    break;
! 			  }
  			else
  			  as_bad (_("Invalid Indexed Load Completer."));
  			s++;
***************
*** 1790,1822 ****
  		case 'm':
  		case 'q':
  		case 'J':
! 		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;
  			  }
! 			/* When in strict mode this is a match failure.  */
! 			else if (strict)
! 			  break;
  			else
! 			  as_bad (_("Invalid Short Load/Store Completer."));
! 			s += 2;
  		      }
  		    /* If we did not get a ma/mb completer, then we do not
! 		       consider this a positive match for 'cc'.  */
! 		    else if (*args == 'c')
  		      break;
  
  		   /* 'J', 'm' and 'q' are the same, except for where they
--- 1794,1833 ----
  		case 'm':
  		case 'q':
  		case 'J':
! 		case 'e':
  		  {
  		    int a = 0;
  		    int m = 0;
  		    if (*s == ',')
  		      {
+ 			int found = 0;
  			s++;
  			if (strncasecmp (s, "ma", 2) == 0)
  			  {
  			    a = 0;
  			    m = 1;
+ 			    found = 1;
  			  }
  			else if (strncasecmp (s, "mb", 2) == 0)
  			  {
  			    a = 1;
  			    m = 1;
+ 			    found = 1;
  			  }
! 
! 			/* When in strict mode, pass through for cache op.  */
! 			if (!found && strict)
! 			  s--;
  			else
! 			  {
! 			    if (!found)
! 			      as_bad (_("Invalid Short Load/Store Completer."));
! 			    s += 2;
! 			  }
  		      }
  		    /* If we did not get a ma/mb completer, then we do not
! 		       consider this a positive match for 'ce'.  */
! 		    else if (*args == 'e')
  		      break;
  
  		   /* 'J', 'm' and 'q' are the same, except for where they
***************
*** 1836,1842 ****
  		        /* M bit is explicit in the major opcode.  */
  			INSERT_FIELD_AND_CONTINUE (opcode, a, 2);
  		      }
! 		    else if (*args == 'c')
  		      {
  			/* Gross!  Hide these values in the immediate field
  			   of the instruction, then pull them out later.  */
--- 1847,1853 ----
  		        /* M bit is explicit in the major opcode.  */
  			INSERT_FIELD_AND_CONTINUE (opcode, a, 2);
  		      }
! 		    else if (*args == 'e')
  		      {
  			/* Gross!  Hide these values in the immediate field
  			   of the instruction, then pull them out later.  */
***************
*** 1857,1869 ****
  			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;
  			/* When in strict mode this is a match failure.  */
  			else if (strict)
! 			  break;
  			else
  			  as_bad (_("Invalid Store Bytes Short Completer"));
  			s++;
--- 1868,1884 ----
  			s++;
  			if (strncasecmp (s, "m", 1) == 0)
  			  m = 1;
! 			else if ((strncasecmp (s, "b ", 2) == 0)
! 				 || (strncasecmp (s, "b,", 2) == 0))
  			  a = 0;
  			else if (strncasecmp (s, "e", 1) == 0)
  			  a = 1;
  			/* When in strict mode this is a match failure.  */
  			else if (strict)
! 			  {
! 			    s--;
! 			    break;
! 			  }
  			else
  			  as_bad (_("Invalid Store Bytes Short Completer"));
  			s++;
***************
*** 1875,1880 ****
--- 1890,1937 ----
  		    INSERT_FIELD_AND_CONTINUE (opcode, a, 13);
  		  }
  
+ 		/* Handle load cache hint completer.  */
+ 		case 'c':
+ 		  cmpltr = 0;
+ 		  if (!strncmp(s, ",sl", 3))
+ 		    {
+ 		      s += 3;
+ 		      cmpltr = 2;
+ 		    }
+ 		  INSERT_FIELD_AND_CONTINUE (opcode, cmpltr, 10);
+ 
+ 		/* Handle store cache hint completer.  */
+ 		case 'C':
+ 		  cmpltr = 0;
+ 		  if (!strncmp(s, ",sl", 3))
+ 		    {
+ 		      s += 3;
+ 		      cmpltr = 2;
+ 		    }
+ 		  else if (!strncmp(s, ",bc", 3))
+ 		    {
+ 		      s += 3;
+ 		      cmpltr = 1;
+ 		    }
+ 		  INSERT_FIELD_AND_CONTINUE (opcode, cmpltr, 10);
+ 
+ 		/* Handle load and clear cache hint completer.  */
+ 		case 'd':
+ 		  cmpltr = 0;
+ 		  if (!strncmp(s, ",co", 3))
+ 		    {
+ 		      s += 3;
+ 		      cmpltr = 1;
+ 		    }
+ 		  INSERT_FIELD_AND_CONTINUE (opcode, cmpltr, 10);
+ 
+ 		/* Handle load ordering completer. */
+ 		case 'o':
+ 		  if (strncmp(s, ",o", 2) != 0)
+ 		    break;
+ 		  s += 2;
+ 		  continue;
+ 
  		/* Handle a branch gate completer.  */
  		case 'g':
  		  if (strncasecmp (s, ",gate", 5) != 0)
***************
*** 3159,3164 ****
--- 3216,3228 ----
  	      if (strncasecmp (s, "%sr0,%r31", 9) != 0)
  		break;
  	      s += 9;
+ 	      continue;
+ 
+ 	    /* Handle immediate value of 0 for ordered load/store instructions.  */
+ 	    case '@':
+ 	      if (*s != '0')
+ 		break;
+ 	      s++;
  	      continue;
  
  	    /* Handle a 2 bit shift count at 25.  */
*** orig/opcodes/hppa-dis.c	Fri Sep 24 17:02:52 1999
--- gas-src/opcodes/hppa-dis.c	Mon Sep 27 17:22:09 1999
***************
*** 512,519 ****
--- 512,547 ----
  		      (*info->fprintf_func) (info->stream, "%s ",
  					     short_bytes_compl_names[GET_COMPL (insn)]);
  		      break;
+ 		    case 'c':
+ 		    case 'C':
+ 		      switch (GET_FIELD (insn, 20, 21))
+ 			{
+ 			case 1:
+ 			  (*info->fprintf_func) (info->stream, ",bc ");
+ 			  break;
+ 			case 2:
+ 			  (*info->fprintf_func) (info->stream, ",sl ");
+ 			  break;
+ 			default:
+ 			  (*info->fprintf_func) (info->stream, " ");
+ 			}
+ 		      break;
+ 		    case 'd':
+ 		      switch (GET_FIELD (insn, 20, 21))
+ 			{
+ 			case 1:
+ 			  (*info->fprintf_func) (info->stream, ",co ");
+ 			  break;
+ 			default:
+ 			  (*info->fprintf_func) (info->stream, " ");
+ 			}
+ 		      break;
+ 		    case 'o':
+ 		      (*info->fprintf_func) (info->stream, ",o");
+ 		      break;
  		    case 'g':
  		      (*info->fprintf_func) (info->stream, ",gate");
+ 		      break;
  		    case 'p':
  		      (*info->fprintf_func) (info->stream, ",l,push");
  		      break;
***************
*** 647,653 ****
  			break;
  		      }
  
! 		    case 'c':
  		      {
  			int opcode = GET_FIELD (insn, 0, 5);
  
--- 675,681 ----
  			break;
  		      }
  
! 		    case 'e':
  		      {
  			int opcode = GET_FIELD (insn, 0, 5);
  
***************
*** 848,853 ****
--- 876,884 ----
  		  (*info->fprintf_func) (info->stream, "%%sr0,%%r31");
  		  break;
  
+ 		case '@':
+ 		  (*info->fprintf_func) (info->stream, "0");
+ 		  break;
  		case '.':
  		  (*info->fprintf_func) (info->stream, "%d",
  				    GET_FIELD (insn, 24, 25));
diff -c orig/gas/testsuite/gas/hppa/basic/basic.exp gas-src/gas/testsuite/gas/hppa/basic/basic.exp
*** orig/gas/testsuite/gas/hppa/basic/basic.exp	Fri Sep 24 17:03:15 1999
--- gas-src/gas/testsuite/gas/hppa/basic/basic.exp	Tue Sep 28 14:32:22 1999
***************
*** 115,120 ****
--- 115,392 ----
      if [expr $x==60] then { pass $testname } else { fail $testname }
  }
  
+ proc do_imem2 {} {
+     set testname "imem2.s: integer memory loads and stores"
+     set x 0
+ 
+     gas_start "imem2.s" "-al"
+ 
+     # Check the assembled instruction against a table built by the HP assembler
+     # Any differences should be checked by hand -- with the number of problems
+     # I've seen in the HP assembler I don't completely trust it.
+     #
+     # Instead of having a variable for each match string just increment the
+     # total number of matches seen.  That's simpler when testing large numbers
+     # of instructions (as these tests to).
+     while 1 {
+ 	expect {
+ 	    -re "^ +\[0-9\]+ 0000 0C8500DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0004 0C8520DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0008 0C8500FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 000c 0C8520FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0010 0C8508DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0014 0C8528DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0018 0C8508FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 001c 0C8528FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0020 0C85009A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0024 0C85209A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0028 0C8500BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 002c 0C8520BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0030 0C85089A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0034 0C85289A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0038 0C8508BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 003c 0C8528BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0040 0C85005A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0044 0C85205A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0048 0C85007A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 004c 0C85207A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0050 0C85085A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0054 0C85285A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0058 0C85087A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 005c 0C85287A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0060 0C85001A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0064 0C85201A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0068 0C85003A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 006c 0C85203A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0070 0C85081A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0074 0C85281A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0078 0C85083A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 007c 0C85283A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0080 0C85011A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0084 0C85211A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0088 0C85013A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 008c 0C85213A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0090 0C85091A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0094 0C85291A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0098 0C85093A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 009c 0C85293A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00a0 0C85019A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00a4 0C85219A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00a8 0C8501BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00ac 0C8521BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00b0 0C85099A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00b4 0C85299A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00b8 0C8509BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00bc 0C8529BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00c0 0C85015A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00c4 0C85215A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00c8 0C85017A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00cc 0C85217A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00d0 0C85055A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00d4 0C85255A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00d8 0C85057A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00dc 0C85257A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00e0 0C8501DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00e4 0C8521DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00e8 0C8501FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00ec 0C8521FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00f0 0C8505DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00f4 0C8525DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00f8 0C8505FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 00fc 0C8525FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0100 0C9010DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0104 0C9030FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0108 0C9010FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 010c 0C8010FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0110 0C9018DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0114 0C9038FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0118 0C9018FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 011c 0C8018FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0120 0C90109A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0124 0C9030BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0128 0C9010BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 012c 0C8010BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0130 0C90189A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0134 0C9038BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0138 0C9018BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 013c 0C8018BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0140 0C90105A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0144 0C90307A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0148 0C90107A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 014c 0C80107A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0150 0C90185A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0154 0C90387A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0158 0C90187A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 015c 0C80187A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0160 0C90101A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0164 0C90303A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0168 0C90103A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 016c 0C80103A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0170 0C90181A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0174 0C90383A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0178 0C90183A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 017c 0C80183A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0180 0C90111A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0184 0C90313A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0188 0C90113A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 018c 0C90191A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0190 0C90393A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0194 0C90193A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0198 0C90119A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 019c 0C9031BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01a0 0C9011BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01a4 0C90199A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01a8 0C9039BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01ac 0C9019BA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01b0 0C90115A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01b4 0C90317A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01b8 0C90117A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01bc 0C90155A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01c0 0C90357A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01c4 0C90157A\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01c8 0C9011DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01cc 0C9031FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01d0 0C9011FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01d4 0C9015DA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01d8 0C9035FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01dc 0C9015FA\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01e0 509A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01e4 509A01CC\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01e8 509A01C8\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01ec 509A3E4D\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01f0 509A3E49\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01f4 489A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01f8 5C9A01C4\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 01fc 4C9A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0200 4C9A3E41\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0204 5C9A3E45\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0208 449A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 020c 409A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0210 0C9A12D0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0214 0C9A32F0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0218 0C9A12F0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 021c 0C9A12E0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0220 0C9A1AD0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0224 0C9A3AF0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0228 0C9A1AF0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 022c 0C9A1AE0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0230 0C9A16D0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0234 0C9A36F0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0238 0C9A16F0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 023c 0C9A16E0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0240 0C9A1290\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0244 0C9A32B0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0248 0C9A12B0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 024c 0C9A12A0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0250 0C9A1A90\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0254 0C9A3AB0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0258 0C9A1AB0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 025c 0C9A1AA0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0260 0C9A1690\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0264 0C9A36B0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0268 0C9A16B0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 026c 0C9A16A0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0270 0C9A1250\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0274 0C9A3270\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0278 0C9A1270\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 027c 0C9A1260\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0280 0C9A1A50\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0284 0C9A3A70\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0288 0C9A1A70\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 028c 0C9A1A60\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0290 0C9A1650\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0294 0C9A3670\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0298 0C9A1670\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 029c 0C9A1660\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02a0 0C9A1210\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02a4 0C9A3230\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02a8 0C9A1230\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02ac 0C9A1220\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02b0 0C9A1A10\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02b4 0C9A3A30\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02b8 0C9A1A30\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02bc 0C9A1A20\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02c0 0C9A1610\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02c4 0C9A3630\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02c8 0C9A1630\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02cc 0C9A1620\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02d0 0C9A13D0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02d4 0C9A33F0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02d8 0C9A13F0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02dc 0C9A1BD0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02e0 0C9A3BF0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02e4 0C9A1BF0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02e8 0C9A17D0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02ec 0C9A37F0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02f0 0C9A17F0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02f4 0C9A17E0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02f8 0C9A1390\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 02fc 0C9A33B0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0300 0C9A13B0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0304 0C9A1B90\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0308 0C9A3BB0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 030c 0C9A1BB0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0310 0C9A1790\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0314 0C9A37B0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0318 0C9A17B0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 031c 0C9A17A0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0320 0C9A1350\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0324 0C9A1350\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0328 0C9A3350\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 032c 0C9A1370\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0330 0C9A3370\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0334 0C9A1B50\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0338 0C9A1B50\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 033c 0C9A3B50\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0340 0C9A1B70\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0344 0C9A3B70\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0348 0C9A1750\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 034c 0C9A1750\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0350 0C9A3750\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0354 0C9A1770\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0358 0C9A3770\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 035c 0C9A1310\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0360 0C9A1310\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0364 0C9A3310\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0368 0C9A1330\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 036c 0C9A3330\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0370 0C9A1B10\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0374 0C9A1B10\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0378 0C9A3B10\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 037c 0C9A1B30\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0380 0C9A3B30\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0384 0C9A1710\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0388 0C9A1710\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 038c 0C9A3710\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0390 0C9A1730\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0394 0C9A3730\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 0398 709A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 039c 709A01CC\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03a0 709A01C8\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03a4 709A3E4D\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03a8 709A3E49\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03ac 689A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03b0 7C9A01C4\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03b4 6C9A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03b8 6C9A3E41\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03bc 7C9A3E45\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03c0 649A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "^ +\[0-9\]+ 03c4 609A01C0\[^\n\]*\n"	{ set x [expr $x+1] }
+ 	    -re "\[^\n\]*\n"				{ }
+ 	    timeout				{ perror "timeout\n"; break }
+ 	    eof					{ break }
+ 	}
+     }
+ 
+     # This was intended to do any cleanup necessary.  It kinda looks like it
+     # isn't needed, but just in case, please keep it in for now.
+     gas_finish
+ 
+     # Did we find what we were looking for?  If not, flunk it.
+     if [expr $x==242] then { pass $testname } else { fail $testname }
+ }
+ 
+ 
  proc do_immed {} {
      set testname "immed.s: immediate tests"
      set x 0
***************
*** 4007,4012 ****
--- 4279,4285 ----
  if [istarget hppa*-*-*] then {
      # Test the basic instruction parser.
      do_imem
+     do_imem2
      do_immed
      do_branch
      do_add


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