]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
2006-10-09 Roland McGrath <roland@redhat.com>
authorRoland McGrath <roland@redhat.com>
Tue, 10 Oct 2006 00:25:21 +0000 (00:25 +0000)
committerRoland McGrath <roland@redhat.com>
Tue, 10 Oct 2006 00:25:21 +0000 (00:25 +0000)
* ia64_symbol.c (ia64_reloc_simple_type): Treat SECREL types as simple.

51 files changed:
ChangeLog
NEWS
backends/ChangeLog
backends/Makefile.am
backends/i386_init.c
backends/i386_regs.c
backends/ia64_init.c
backends/ia64_regs.c
backends/ia64_symbol.c
backends/ppc64_init.c
backends/ppc_init.c
backends/ppc_regs.c
backends/s390_init.c
backends/s390_regs.c
backends/sparc_init.c
backends/sparc_regs.c
backends/sparc_retval.c [new file with mode: 0644]
backends/x86_64_init.c
backends/x86_64_regs.c
configure.ac
libasm/ChangeLog
libasm/Makefile.am
libdw/ChangeLog
libdw/Makefile.am
libdw/libdw.h
libdw/libdwP.h
libdw/libdw_alloc.c
libdwfl/ChangeLog
libdwfl/derelocate.c
libdwfl/dwfl_module_register_names.c
libdwfl/libdwfl.h
libebl/ChangeLog
libebl/Makefile.am
libebl/ebl-hooks.h
libebl/eblopenbackend.c
libebl/eblreginfo.c [moved from libebl/eblregname.c with 92% similarity]
libebl/libebl.h
libelf/ChangeLog
libelf/Makefile.am
libelf/elf32_getphdr.c
src/ChangeLog
src/Makefile.am
src/elflint.c
src/readelf.c
tests/ChangeLog
tests/allregs.c
tests/run-allregs.sh
tests/run-arextract.sh
tests/run-arsymtest.sh
tests/run-native-test.sh
tests/run-strings-test.sh

index aa95ce231e47155c96e2a240a212ed88d5d6431b..a4eb6e4887fb4a195066425dc701b2a9b7f8a2da 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2006-08-29  Roland McGrath  <roland@redhat.com>
+
+       * configure.ac: Use AM_MAINTAINER_MODE.
+
 2006-07-12  Ulrich Drepper  <drepper@redhat.com>
 
        * configure.ac (internal_function): Don't use internal visibility.
diff --git a/NEWS b/NEWS
index 5d22c73724798f0c3e92b98d84227802e7c7744e..d8fce7785bac2f5fc510942b40d304c44f08cce8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+Version 0.124:
+
+libebl: sparc backend support for return value location
+
+libebl, libdwfl: backend register name support extended with more info
+
+libelf, libdw: bug fixes for unaligned accesses on machines that care
+
+readelf, elflint: trivial bugs fixed
+
 Version 0.123:
 
 libebl: Backend build fixes, thanks to Stepan Kasal.
index 34ec4cfdf46c4255ade7ec14a74de16b6159f36a..86ac44b969080b5fc1eeb9bab541de2fba6a4935 100644 (file)
@@ -1,3 +1,30 @@
+2006-10-09  Roland McGrath  <roland@redhat.com>
+
+       * ia64_symbol.c (ia64_reloc_simple_type): Treat SECREL types as simple.
+
+2006-08-29  Roland McGrath  <roland@redhat.com>
+
+       * sparc_retval.c: New file.
+       * Makefile.am (sparc_SRCS): Add it.
+       * sparc_init.c (sparc_init): Initialize return_value_location hook.
+
+2006-08-22  Roland McGrath  <roland@redhat.com>
+
+       * i386_regs.c (i386_register_name): Renamed i386_register_info.
+       Take new args, yield more info.
+       * i386_init.c (i386_init): Update initializer.
+       * ia64_regs.c (ia64_register_name): Likewise.
+       * ia64_init.c (ia64_init): Likewise.
+       * ppc_regs.c (ppc_register_name): Likewise.
+       * ppc64_init.c (ppc64_init): Likewise.
+       * ppc_init.c (ppc_init): Likewise.
+       * s390_regs.c (s390_register_name): Likewise.
+       * s390_init.c (s390_init): Likewise.
+       * sparc_regs.c (sparc_register_name): Likewise.
+       * sparc_init.c (sparc_init): Likewise.
+       * x86_64_regs.c (x86_64_register_name): Likewise.
+       * x86_64_init.c (x86_64_init): Likewise.
+
 2006-08-08  Roland McGrath  <roland@redhat.com>
 
        * Makefile.am (%.os): Don't depend on %.o, since we don't actually
index a81c90e9bf59450d6e999cdc273ad269481e3d49..8af59139618d78b2cd6c9dfaae415b593b7eed12 100644 (file)
@@ -95,7 +95,7 @@ arm_SRCS = arm_init.c arm_symbol.c
 libebl_arm_pic_a_SOURCES = $(arm_SRCS)
 am_libebl_arm_pic_a_OBJECTS = $(arm_SRCS:.c=.os)
 
-sparc_SRCS = sparc_init.c sparc_symbol.c sparc_regs.c
+sparc_SRCS = sparc_init.c sparc_symbol.c sparc_regs.c sparc_retval.c
 libebl_sparc_pic_a_SOURCES = $(sparc_SRCS)
 am_libebl_sparc_pic_a_OBJECTS = $(sparc_SRCS:.c=.os)
 
index e0742b709c13f0cc337e5df4b1fbcb8cbf94f2f3..9f240075f392f74f5ccde34e413bd13aad3cebb0 100644 (file)
@@ -1,5 +1,5 @@
 /* Initialization of i386 specific backend library.
-   Copyright (C) 2000, 2001, 2002, 2005 Red Hat, Inc.
+   Copyright (C) 2000, 2001, 2002, 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
 
@@ -55,7 +55,7 @@ i386_init (elf, machine, eh, ehlen)
   generic_debugscn_p = eh->debugscn_p;
   HOOK (eh, debugscn_p);
   HOOK (eh, return_value_location);
-  HOOK (eh, register_name);
+  HOOK (eh, register_info);
 
   return MODVERSION;
 }
index 248700b6c83bf5e61c897a82c0fee109efaaa72e..a63c5439d540a3be0e6b969dbf611ed58de801f6 100644 (file)
 #endif
 
 #include <string.h>
+#include <dwarf.h>
 
 #define BACKEND i386_
 #include "libebl_CPU.h"
 
 ssize_t
-i386_register_name (Ebl *ebl __attribute__ ((unused)),
+i386_register_info (Ebl *ebl __attribute__ ((unused)),
                    int regno, char *name, size_t namelen,
-                   const char **prefix, const char **setname)
+                   const char **prefix, const char **setname,
+                   int *bits, int *type)
 {
   if (name == NULL)
     return 46;
@@ -44,18 +46,37 @@ i386_register_name (Ebl *ebl __attribute__ ((unused)),
     return -1;
 
   *prefix = "%";
+  *bits = 32;
+  *type = DW_ATE_unsigned;
   if (regno < 11)
-    *setname = "integer";
+    {
+      *setname = "integer";
+      if (regno < 9)
+       *type = DW_ATE_signed;
+    }
   else if (regno < 19)
-    *setname = "x87";
+    {
+      *setname = "x87";
+      *type = DW_ATE_float;
+      *bits = 80;
+    }
   else if (regno < 29)
-    *setname = "SSE";
+    {
+      *setname = "SSE";
+      *bits = 128;
+    }
   else if (regno < 37)
-    *setname = "MMX";
+    {
+      *setname = "MMX";
+      *bits = 64;
+    }
   else if (regno < 40)
     *setname = "FPU-control";
   else
-    *setname = "segment";
+    {
+      *setname = "segment";
+      *bits = 16;
+    }
 
   switch (regno)
     {
@@ -64,7 +85,12 @@ i386_register_name (Ebl *ebl __attribute__ ((unused)),
          "ax", "cx", "dx", "bx", "sp", "bp", "si", "di", "ip"
        };
 
-    case 0 ... 8:
+    case 4:
+    case 5:
+    case 8:
+      *type = DW_ATE_address;
+    case 0 ... 3:
+    case 6 ... 7:
       name[0] = 'e';
       name[1] = baseregs[regno][0];
       name[2] = baseregs[regno][1];
index 490c774a8df4fc5d1db3cbd350f3e643143e7faa..acae23463c907e229cbb52b0c1afefac31659f0a 100644 (file)
@@ -55,7 +55,7 @@ ia64_init (elf, machine, eh, ehlen)
   HOOK (eh, dynamic_tag_name);
   HOOK (eh, dynamic_tag_check);
   HOOK (eh, machine_flag_check);
-  HOOK (eh, register_name);
+  HOOK (eh, register_info);
   HOOK (eh, return_value_location);
 
   return MODVERSION;
index 076609db41d7db2936becca06db58d663ddac93e..0460739cb5982ed1a6aa6faff8a9817200ec1d2f 100644 (file)
 #endif
 
 #include <string.h>
+#include <dwarf.h>
 
 #define BACKEND i386_
 #include "libebl_CPU.h"
 
 ssize_t
-ia64_register_name (Ebl *ebl __attribute__ ((unused)),
+ia64_register_info (Ebl *ebl __attribute__ ((unused)),
                    int regno, char *name, size_t namelen,
-                   const char **prefix, const char **setname)
+                   const char **prefix, const char **setname,
+                   int *bits, int *type)
 {
   if (name == NULL)
     return 687 + 64;
@@ -45,6 +47,8 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
 
   *prefix = "ar.";
   *setname = "application";
+  *bits = 64;
+  *type = DW_ATE_signed;
   switch (regno)
     {
     case 0 ... 9:
@@ -78,6 +82,8 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
       name[0] = 'f';
       name[1] = (regno - 128) + '0';
       namelen = 2;
+      *type = DW_ATE_float;
+      *bits = 128;
       *setname = "FPU";
       *prefix = "";
       break;
@@ -97,6 +103,8 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
       name[2] = (regno - 128 - 100) / 10 + '0';
       name[3] = (regno - 128) % 10 + '0';
       namelen = 4;
+      *type = DW_ATE_float;
+      *bits = 128;
       *setname = "FPU";
       *prefix = "";
       break;
@@ -105,6 +113,7 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
       name[0] = 'b';
       name[1] = (regno - 320) + '0';
       namelen = 2;
+      *type = DW_ATE_address;
       *setname = "branch";
       *prefix = "";
       break;
@@ -117,12 +126,14 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
          };
        *setname = "special";
        *prefix = "";
+       *type = regno == 331 ? DW_ATE_address : DW_ATE_unsigned;
        return stpcpy (name, named_special[regno - 328]) + 1 - name;
       }
 
     case 590:
       *setname = "special";
       *prefix = "";
+      *type = DW_ATE_unsigned;
       return stpcpy (name, "bof") + 1 - name;
 
     case 334 + 0 ... 334 + 7:
@@ -158,6 +169,9 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
            [66 - 8] = "ec",
          };
        const size_t idx = regno - (334 + 8);
+       *type = DW_ATE_unsigned;
+       if (idx == 1 || idx == 2)
+         *type = DW_ATE_address;
        if (idx < sizeof named_ar / sizeof named_ar[0]
            && named_ar[idx][0] != '\0')
          return stpcpy (name, named_ar[idx]) + 1 - name;
@@ -193,6 +207,8 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
       name[3] = (regno - 462) + '0';
       namelen = 4;
       *setname = "NAT";
+      *type = DW_ATE_boolean;
+      *bits = 1;
       *prefix = "";
       break;
 
@@ -204,6 +220,8 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
       name[4] = (regno - 462) % 10 + '0';
       namelen = 5;
       *setname = "NAT";
+      *type = DW_ATE_boolean;
+      *bits = 1;
       *prefix = "";
       break;
 
@@ -216,6 +234,8 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
       name[5] = (regno - 462) % 10 + '0';
       namelen = 6;
       *setname = "NAT";
+      *type = DW_ATE_boolean;
+      *bits = 1;
       *prefix = "";
       break;
 
@@ -224,6 +244,8 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
       name[1] = (regno - 687) + '0';
       namelen = 2;
       *setname = "predicate";
+      *type = DW_ATE_boolean;
+      *bits = 1;
       *prefix = "";
       break;
 
@@ -233,6 +255,8 @@ ia64_register_name (Ebl *ebl __attribute__ ((unused)),
       name[2] = (regno - 687) % 10 + '0';
       namelen = 3;
       *setname = "predicate";
+      *type = DW_ATE_boolean;
+      *bits = 1;
       *prefix = "";
       break;
 
index d7caaf38aee28dac630d3b9681f14e240f00b048..4faec0c9b5608645a3cf8691f6b9dd5158ab9ae9 100644 (file)
@@ -1,5 +1,5 @@
 /* IA-64 specific symbolic name handling.
-   Copyright (C) 2002, 2003, 2005 Red Hat, Inc.
+   Copyright (C) 2002, 2003, 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -109,18 +109,27 @@ ia64_reloc_simple_type (Ebl *ebl, int type)
 {
   switch (type)
     {
+      /* The SECREL types when used with non-allocated sections
+        like .debug_* are the same as direct absolute relocs
+        applied to those sections, since a 0 section address is assumed.
+        So we treat them the same here.  */
+
+    case R_IA64_SECREL32MSB:
     case R_IA64_DIR32MSB:
       if (ebl->data == ELFDATA2MSB)
        return ELF_T_WORD;
       break;
+    case R_IA64_SECREL32LSB:
     case R_IA64_DIR32LSB:
       if (ebl->data == ELFDATA2LSB)
        return ELF_T_WORD;
       break;
     case R_IA64_DIR64MSB:
+    case R_IA64_SECREL64MSB:
       if (ebl->data == ELFDATA2MSB)
        return ELF_T_XWORD;
       break;
+    case R_IA64_SECREL64LSB:
     case R_IA64_DIR64LSB:
       if (ebl->data == ELFDATA2LSB)
        return ELF_T_XWORD;
index 1d4e830413d01a87757d87ab7df0e1867810b756..8cd75357d6508e836f7b46d450d3a48671bfa184 100644 (file)
@@ -1,5 +1,5 @@
 /* Initialization of PPC64 specific backend library.
-   Copyright (C) 2004, 2005 Red Hat, Inc.
+   Copyright (C) 2004, 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2004.
 
@@ -57,7 +57,7 @@ ppc64_init (elf, machine, eh, ehlen)
   HOOK (eh, check_special_symbol);
   HOOK (eh, bss_plt_p);
   HOOK (eh, return_value_location);
-  HOOK (eh, register_name);
+  HOOK (eh, register_info);
 
   return MODVERSION;
 }
index 1663258c7378a024b0415d0cca03ddba0011d950..1dfd5ec9bfebcebf6c95ef8bdda8ed6ce50db3d9 100644 (file)
@@ -1,5 +1,5 @@
 /* Initialization of PPC specific backend library.
-   Copyright (C) 2004, 2005 Red Hat, Inc.
+   Copyright (C) 2004, 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2004.
 
@@ -56,7 +56,7 @@ ppc_init (elf, machine, eh, ehlen)
   HOOK (eh, check_special_symbol);
   HOOK (eh, bss_plt_p);
   HOOK (eh, return_value_location);
-  HOOK (eh, register_name);
+  HOOK (eh, register_info);
 
   return MODVERSION;
 }
index bea8d3577a02382eba5aeff58a32b98f7586deab..3d47d3d0a5f2dc70260cbc767bbd42a18027d7a1 100644 (file)
 #endif
 
 #include <string.h>
+#include <dwarf.h>
 
 #define BACKEND ppc_
 #include "libebl_CPU.h"
 
 ssize_t
-ppc_register_name (Ebl *ebl __attribute__ ((unused)),
+ppc_register_info (Ebl *ebl __attribute__ ((unused)),
                   int regno, char *name, size_t namelen,
-                  const char **prefix, const char **setname)
+                  const char **prefix, const char **setname,
+                  int *bits, int *type)
 {
   if (name == NULL)
     return 1156;
@@ -44,6 +46,9 @@ ppc_register_name (Ebl *ebl __attribute__ ((unused)),
     return -1;
 
   *prefix = NULL;
+  *bits = ebl->machine == EM_PPC64 ? 64 : 32;
+  *type = (regno < 32 ? DW_ATE_signed
+          : regno < 64 ? DW_ATE_float : DW_ATE_unsigned);
 
   if (regno < 32 || regno == 64 || regno == 66)
     *setname = "integer";
@@ -52,7 +57,10 @@ ppc_register_name (Ebl *ebl __attribute__ ((unused)),
   else if (regno < 1124)
     *setname = "privileged";
   else
-    *setname = "vector";
+    {
+      *setname = "vector";
+      *bits = 128;
+    }
 
   switch (regno)
     {
@@ -155,5 +163,5 @@ ppc_register_name (Ebl *ebl __attribute__ ((unused)),
   return namelen;
 }
 
-__typeof (ppc_register_name)
-     ppc64_register_name __attribute__ ((alias ("ppc_register_name")));
+__typeof (ppc_register_info)
+     ppc64_register_info __attribute__ ((alias ("ppc_register_info")));
index 80cbb8329930d06cd19e0bc935f1c81a2ff8ae81..05ffce606eca7715d3d2ccedb955cd0ae956ec3b 100644 (file)
@@ -50,7 +50,7 @@ s390_init (elf, machine, eh, ehlen)
   eh->name = "IBM S/390";
   s390_init_reloc (eh);
   HOOK (eh, reloc_simple_type);
-  HOOK (eh, register_name);
+  HOOK (eh, register_info);
   HOOK (eh, return_value_location);
 
   /* Only the 64-bit format uses the incorrect hash table entry size.  */
index 28b798988d285adda96bc3af0a508599528c3ca6..7e8113a21569dfff6de63539145e5929aaa19dbd 100644 (file)
@@ -28,6 +28,7 @@
 #endif
 
 #include <string.h>
+#include <dwarf.h>
 
 #define BACKEND s390_
 #include "libebl_CPU.h"
@@ -50,9 +51,10 @@ zseries (64)
 
 
 ssize_t
-s390_register_name (Ebl *ebl __attribute__ ((unused)),
+s390_register_info (Ebl *ebl __attribute__ ((unused)),
                    int regno, char *name, size_t namelen,
-                   const char **prefix, const char **setname)
+                   const char **prefix, const char **setname,
+                   int *bits, int *type)
 {
   if (name == NULL)
     return 66;
@@ -62,14 +64,26 @@ s390_register_name (Ebl *ebl __attribute__ ((unused)),
 
   *prefix = "%";
 
+  *bits = ebl->class == ELFCLASS64 ? 64 : 32;
+  *type = DW_ATE_unsigned;
   if (regno < 16)
-    *setname = "integer";
+    {
+      *setname = "integer";
+      *type = DW_ATE_signed;
+    }
   else if (regno < 32)
-    *setname = "FPU";
+    {
+      *setname = "FPU";
+      *type = DW_ATE_float;
+      *bits = 64;
+    }
   else if (regno < 48 || regno > 63)
     *setname = "control";
   else
-    *setname = "access";
+    {
+      *setname = "access";
+      *bits = 32;
+    }
 
   switch (regno)
     {
@@ -116,6 +130,7 @@ s390_register_name (Ebl *ebl __attribute__ ((unused)),
     case 64:
       return stpcpy (name, "pswm") + 1 - name;
     case 65:
+      *type = DW_ATE_address;
       return stpcpy (name, "pswa") + 1 - name;
 
     default:
index 3767c1a8e0012f0e1b8f4ec6c1ed4a2ddef51146..ba0e08a3fb7473a2515ac127c88fdd26b3399e39 100644 (file)
@@ -1,5 +1,5 @@
 /* Initialization of SPARC specific backend library.
-   Copyright (C) 2002, 2005 Red Hat, Inc.
+   Copyright (C) 2002, 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
 
    Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -56,7 +56,8 @@ sparc_init (elf, machine, eh, ehlen)
   sparc_init_reloc (eh);
   HOOK (eh, reloc_simple_type);
   //HOOK (eh, core_note);
-  HOOK (eh, register_name);
+  HOOK (eh, register_info);
+  HOOK (eh, return_value_location);
 
   return MODVERSION;
 }
index 820878e106705ab856742a646c00258b084e3e44..b3e9e20148bec9cd3fe128a5269c694006e2d898 100644 (file)
 #endif
 
 #include <string.h>
+#include <dwarf.h>
 
 #define BACKEND sparc_
 #include "libebl_CPU.h"
 
 ssize_t
-sparc_register_name (Ebl *ebl,
+sparc_register_info (Ebl *ebl,
                     int regno, char *name, size_t namelen,
-                    const char **prefix, const char **setname)
+                    const char **prefix, const char **setname,
+                    int *bits, int *type)
 {
-  const int nfp = ebl->machine == EM_SPARC ? 32 : 64;
+  const int nfp = 32 + (ebl->machine == EM_SPARC ? 0 : 16);
+  const int nspec = ebl->machine == EM_SPARC ? 8 : 6;
 
   if (name == NULL)
-    return 32 + nfp;
+    return 32 + nfp + nspec;
 
-  if (regno < 0 || regno >= 32 + nfp || namelen < 4)
+  if (regno < 0 || regno >= 32 + nfp + nspec || namelen < 6)
     return -1;
 
+  *bits = ebl->machine == EM_SPARC ? 32 : 64;
+  *type = DW_ATE_signed;
+
   *prefix = "%";
 
+  if (regno >= 32 + nfp)
+    {
+      regno -= 32 + nfp;
+      static const char names[2][8][6] =
+       {
+         { "y", "psr", "wim", "tbr", "pc", "npc", "fsr", "csr" }, /* v8 */
+         { "pc", "npc", "state", "fsr", "fprs", "y" } /* v9 */
+       };
+      *setname = "control";
+      *type = DW_ATE_unsigned;
+      if ((ebl->machine != EM_SPARC ? 0 : 4) + 1 - (unsigned int) regno <= 1)
+       *type = DW_ATE_address;
+      return stpncpy (name, names[ebl->machine != EM_SPARC][regno],
+                     namelen) + 1 - name;
+    }
+
   if (regno < 32)
     {
       *setname = "integer";
       name[0] = "goli"[regno >> 3];
       name[1] = (regno & 7) + '0';
       namelen = 2;
+      if ((regno & 8) && (regno & 7) == 6)
+       *type = DW_ATE_address;
     }
   else
     {
       *setname = "FPU";
+      *type = DW_ATE_float;
+
+      regno -= 32;
+      if (regno >= 32)
+       regno = 32 + 2 * (regno - 32);
+      else
+       *bits = 32;
+
       name[0] = 'f';
-      if (regno < 32 + 10)
+      if (regno < 10)
        {
-         name[1] = (regno - 32) + '0';
+         name[1] = regno + '0';
          namelen = 2;
        }
       else
        {
-         name[1] = (regno - 32) / 10 + '0';
-         name[2] = (regno - 32) % 10 + '0';
+         name[1] = regno / 10 + '0';
+         name[2] = regno % 10 + '0';
          namelen = 3;
        }
     }
diff --git a/backends/sparc_retval.c b/backends/sparc_retval.c
new file mode 100644 (file)
index 0000000..cfde0d2
--- /dev/null
@@ -0,0 +1,154 @@
+/* Function return value location for SPARC.
+   Copyright (C) 2006 Red Hat, Inc.
+
+   This program is Open Source software; you can redistribute it and/or
+   modify it under the terms of the Open Software License version 1.0 as
+   published by the Open Source Initiative.
+
+   You should have received a copy of the Open Software License along
+   with this program; if not, you may obtain a copy of the Open Software
+   License version 1.0 from http://www.opensource.org/licenses/osl.php or
+   by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
+   3001 King Ranch Road, Ukiah, CA 95482.   */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <assert.h>
+#include <dwarf.h>
+
+#define BACKEND sparc_
+#include "libebl_CPU.h"
+
+
+/* %o0, or pair %o0, %o1.  */
+static const Dwarf_Op loc_intreg[] =
+  {
+    { .atom = DW_OP_reg8 }, { .atom = DW_OP_piece, .number = 4 },
+    { .atom = DW_OP_reg9 }, { .atom = DW_OP_piece, .number = 4 },
+  };
+#define nloc_intreg    1
+#define nloc_intregpair        4
+
+/* %f0 or pair %f0, %f1, or quad %f0..%f3.  */
+static const Dwarf_Op loc_fpreg[] =
+  {
+    { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 4 },
+    { .atom = DW_OP_regx, .number = 33 }, { .atom = DW_OP_piece, .number = 4 },
+    { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 4 },
+    { .atom = DW_OP_regx, .number = 35 }, { .atom = DW_OP_piece, .number = 4 },
+  };
+#define nloc_fpreg     1
+#define nloc_fpregpair 4
+#define nloc_fpregquad 8
+
+/* The return value is a structure and is actually stored in stack space
+   passed in a hidden argument by the caller.  But, the compiler
+   helpfully returns the address of that space in %o0.  */
+static const Dwarf_Op loc_aggregate[] =
+  {
+    { .atom = DW_OP_breg8, .number = 0 }
+  };
+#define nloc_aggregate 1
+
+int
+sparc_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
+{
+  /* Start with the function's type, and get the DW_AT_type attribute,
+     which is the type of the return value.  */
+
+  Dwarf_Attribute attr_mem;
+  Dwarf_Attribute *attr = dwarf_attr (functypedie, DW_AT_type, &attr_mem);
+  if (attr == NULL)
+    /* The function has no return value, like a `void' function in C.  */
+    return 0;
+
+  Dwarf_Die die_mem;
+  Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem);
+  int tag = dwarf_tag (typedie);
+
+  /* Follow typedefs and qualifiers to get to the actual type.  */
+  while (tag == DW_TAG_typedef
+        || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type
+        || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type)
+    {
+      attr = dwarf_attr (typedie, DW_AT_type, &attr_mem);
+      typedie = dwarf_formref_die (attr, &die_mem);
+      tag = dwarf_tag (typedie);
+    }
+
+  Dwarf_Word size;
+  switch (tag)
+    {
+    case -1:
+      return -1;
+
+    case DW_TAG_subrange_type:
+      if (! dwarf_hasattr (typedie, DW_AT_byte_size))
+       {
+         attr = dwarf_attr (typedie, DW_AT_type, &attr_mem);
+         typedie = dwarf_formref_die (attr, &die_mem);
+         tag = dwarf_tag (typedie);
+       }
+      /* Fall through.  */
+
+    case DW_TAG_base_type:
+    case DW_TAG_enumeration_type:
+    case DW_TAG_pointer_type:
+    case DW_TAG_ptr_to_member_type:
+      if (dwarf_formudata (dwarf_attr (typedie, DW_AT_byte_size,
+                                      &attr_mem), &size) != 0)
+       {
+         uint8_t asize;
+         Dwarf_Die cudie;
+         if ((tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type)
+             && dwarf_diecu (typedie, &cudie, &asize, NULL) != NULL)
+           size = asize;
+         else
+           return -1;
+       }
+      if (tag == DW_TAG_base_type)
+       {
+         Dwarf_Word encoding;
+         if (dwarf_formudata (dwarf_attr (typedie, DW_AT_encoding,
+                                          &attr_mem), &encoding) != 0)
+           return -1;
+         if (encoding == DW_ATE_float)
+           {
+             *locp = loc_fpreg;
+             if (size <= 4)
+               return nloc_fpreg;
+             if (size <= 8)
+               return nloc_fpregpair;
+             if (size <= 16)
+               return nloc_fpregquad;
+           }
+       }
+      if (size <= 8)
+       {
+       intreg:
+         *locp = loc_intreg;
+         return size <= 4 ? nloc_intreg : nloc_intregpair;
+       }
+
+    aggregate:
+      *locp = loc_aggregate;
+      return nloc_aggregate;
+
+    case DW_TAG_structure_type:
+    case DW_TAG_class_type:
+    case DW_TAG_union_type:
+    case DW_TAG_array_type:
+      if (dwarf_formudata (dwarf_attr (typedie, DW_AT_byte_size,
+                                      &attr_mem), &size) == 0
+         && size > 0 && size <= 8)
+       goto intreg;
+      goto aggregate;
+    }
+
+  /* XXX We don't have a good way to return specific errors from ebl calls.
+     This value means we do not understand the type, but it is well-formed
+     DWARF and might be valid.  */
+  return -2;
+}
index 4951e1c794cf8d60dac7fa7dfe1fd68af107ccc7..476f4ed279fd726ab35c7d3752159529737e221b 100644 (file)
@@ -1,5 +1,5 @@
 /* Initialization of x86-64 specific backend library.
-   Copyright (C) 2002, 2005 Red Hat, Inc.
+   Copyright (C) 2002, 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -54,7 +54,7 @@ x86_64_init (elf, machine, eh, ehlen)
   HOOK (eh, reloc_simple_type);
   HOOK (eh, core_note);
   HOOK (eh, return_value_location);
-  HOOK (eh, register_name);
+  HOOK (eh, register_info);
 
   return MODVERSION;
 }
index 45ef94ea05d2fa04da5e5e7840f83554ccea7846..1128a352130c77cc36095daebec23d175ba85b94 100644 (file)
@@ -1,5 +1,5 @@
 /* Register names and numbers for x86-64 DWARF.
-   Copyright (C) 2005 Red Hat, Inc.
+   Copyright (C) 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
 
    Red Hat elfutils is free software; you can redistribute it and/or modify
 #include "libebl_CPU.h"
 
 ssize_t
-x86_64_register_name (Ebl *ebl __attribute__ ((unused)),
+x86_64_register_info (Ebl *ebl __attribute__ ((unused)),
                      int regno, char *name, size_t namelen,
-                     const char **prefix, const char **setname)
+                     const char **prefix, const char **setname,
+                     int *bits, int *type)
 {
   if (name == NULL)
     return 49;
@@ -45,14 +46,32 @@ x86_64_register_name (Ebl *ebl __attribute__ ((unused)),
     return -1;
 
   *prefix = "%";
+  *bits = 64;
+  *type = DW_ATE_unsigned;
   if (regno < 17)
-    *setname = "integer";
+    {
+      *setname = "integer";
+      if (regno == 16 || regno == 6 || regno == 7)
+       *type = DW_ATE_address;
+      else
+       *type = DW_ATE_signed;
+    }
   else if (regno < 33)
-    *setname = "SSE";
+    {
+      *setname = "SSE";
+      *bits = 128;
+    }
   else if (regno < 41)
-    *setname = "x87";
+    {
+      *setname = "x87";
+      *type = DW_ATE_float;
+      *bits = 80;
+    }
   else
-    *setname = "MMX";
+    {
+      *setname = "MMX";
+      *bits = 64;
+    }
 
   switch (regno)
     {
index 06d442831efb6a69311cac61d027869367ab8c9c..f3644f362eca965831b86124832698e2a1661954 100644 (file)
@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU General Public License
 dnl along with this program; if not, write to the Free Software Foundation,
 dnl Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
 dnl
-AC_INIT([Red Hat elfutils],[0.123],[http://bugzilla.redhat.com/bugzilla/],
+AC_INIT([Red Hat elfutils],[0.124],[http://bugzilla.redhat.com/bugzilla/],
        [elfutils])
 
 AC_CONFIG_AUX_DIR([config])
@@ -26,6 +26,7 @@ AC_COPYRIGHT([Copyright (C) 1996-2003, 2004, 2005, 2006 Red Hat, Inc.])
 AC_PREREQ(2.59)                        dnl Minimum Autoconf version required.
 
 AM_INIT_AUTOMAKE([gnits 1.7])
+AM_MAINTAINER_MODE
 
 dnl Unique ID for this build.
 MODVERSION="Build on $(hostname) $(date +%FT%R:%S%z)"
index 56d2961eed333e51f645e51fc3ca9d8581bd328c..99fb5e4f885adc1535c326eb6196f5d6d570eadb 100644 (file)
@@ -1,3 +1,7 @@
+2006-08-29  Roland McGrath  <roland@redhat.com>
+
+       * Makefile.am (CLEANFILES): Add libasm.so.$(VERSION).
+
 2005-11-13  Roland McGrath  <roland@redhat.com>
 
        * Makefile.am (INCLUDES): Search in libdw.
index 3b2b1812308f282ea5a0e053ac52f2921b5f1349..3bea3747b7a8a4ff7ff3f4972def955f913e72ef 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with automake to create Makefile.in
 ##
-## Copyright (C) 2002, 2004, 2005 Red Hat, Inc.
+## Copyright (C) 2002, 2004, 2005, 2006 Red Hat, Inc.
 ## This file is part of Red Hat elfutils.
 ##
 ## Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -99,4 +99,4 @@ endif
 noinst_HEADERS = libasmP.h symbolhash.h
 EXTRA_DIST = libasm.map
 
-CLEANFILES = $(am_libasm_pic_a_OBJECTS) *.gcno *.gcda
+CLEANFILES = $(am_libasm_pic_a_OBJECTS) *.gcno *.gcda libasm.so.$(VERSION)
index 69c160a2b6f962f47e2a0b42ab300578ea152872..88a0c06dc50494f21b07826fac2db80dbbff6272 100644 (file)
@@ -1,3 +1,15 @@
+2006-08-29  Roland McGrath  <roland@redhat.com>
+
+       * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
+
+       * libdw.h (dwarf_diecu): Add __nonnull_attribute__.
+       (dwarf_child): Don't list arg 1 in __nonnull_attribute__.
+
+       * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
+       result is aligned.  Adjust NEWP->remaining here for this allocation.
+       * libdwP.h: Update decl.
+       (libdw_alloc): Update caller.
+
 2006-07-12  Ulrich Drepper  <drepper@redhat.com>
 
        * dwarf_child.c: Adjust for internal_function_def removal.
index 5058dcf8cc6ecc0306b9a1eda20479de92d7a81c..04d15bbf2231a743e64646a6a72940b4f4bcda3b 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with automake to create Makefile.in
 ##
-## Copyright (C) 2002, 2003, 2004, 2005 Red Hat, Inc.
+## Copyright (C) 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
 ## This file is part of Red Hat elfutils.
 ##
 ## Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -128,4 +128,4 @@ noinst_HEADERS = libdwP.h memory-access.h dwarf_abbrev_hash.h
 
 EXTRA_DIST = libdw.map
 
-CLEANFILES = $(am_libdw_pic_a_OBJECTS) *.gcno *.gcda
+CLEANFILES = $(am_libdw_pic_a_OBJECTS) *.gcno *.gcda libdw.so.$(VERSION)
index 0758a38d523eb290871e2db79d00e800ac2a4d22..d44f427dad5057800603d84be030763c6b75f0b5 100644 (file)
@@ -232,7 +232,8 @@ extern Dwarf_Off dwarf_cuoffset (Dwarf_Die *die);
 
 /* Return CU DIE containing given DIE.  */
 extern Dwarf_Die *dwarf_diecu (Dwarf_Die *die, Dwarf_Die *result,
-                              uint8_t *address_sizep, uint8_t *offset_sizep);
+                              uint8_t *address_sizep, uint8_t *offset_sizep)
+     __nonnull_attribute__ (2);
 
 /* Return CU DIE containing given address.  */
 extern Dwarf_Die *dwarf_addrdie (Dwarf *dbg, Dwarf_Addr addr,
@@ -240,7 +241,7 @@ extern Dwarf_Die *dwarf_addrdie (Dwarf *dbg, Dwarf_Addr addr,
 
 /* Return child of current DIE.  */
 extern int dwarf_child (Dwarf_Die *die, Dwarf_Die *result)
-     __nonnull_attribute__ (1, 2);
+     __nonnull_attribute__ (2);
 
 /* Return sibling of given DIE.  */
 extern int dwarf_siblingof (Dwarf_Die *die, Dwarf_Die *result)
index d4ee30366325841ab66e565eaad00530e1fd45c0..09599e6d83ef26691d059f75081f0bbcf6b8c091 100644 (file)
@@ -1,5 +1,5 @@
 /* Internal definitions for libdwarf.
-   Copyright (C) 2002, 2003, 2004, 2005 Red Hat, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -315,7 +315,7 @@ extern void __libdw_seterrno (int value) internal_function;
 
 
 /* Memory handling, the easy parts.  This macro does not do any locking.  */
-#define libdw_alloc(dbg, type, tsize, cnt) \
+#define libdw_alloc(dbg, type, tsize, cnt)                                   \
   ({ struct libdw_memblock *_tail = (dbg)->mem_tail;                         \
      size_t _required = (tsize) * (cnt);                                     \
      type *_result = (type *) (_tail->mem + (_tail->size - _tail->remaining));\
@@ -323,23 +323,20 @@ extern void __libdw_seterrno (int value) internal_function;
                         - ((uintptr_t) _result & (__alignof (type) - 1)))    \
                        & (__alignof (type) - 1));                            \
      if (unlikely (_tail->remaining < _required + _padding))                 \
-       {                                                                     \
-        _result = (type *) __libdw_allocate (dbg, _required);                \
-        _tail = (dbg)->mem_tail;                                             \
-       }                                                                     \
+       _result = (type *) __libdw_allocate (dbg, _required, __alignof (type));\
      else                                                                    \
        {                                                                     \
         _required += _padding;                                               \
         _result = (type *) ((char *) _result + _padding);                    \
+        _tail->remaining -= _required;                                       \
        }                                                                     \
-     _tail->remaining -= _required;                                          \
      _result; })
 
 #define libdw_typed_alloc(dbg, type) \
   libdw_alloc (dbg, type, sizeof (type), 1)
 
 /* Callback to allocate more.  */
-extern void *__libdw_allocate (Dwarf *dbg, size_t minsize)
+extern void *__libdw_allocate (Dwarf *dbg, size_t minsize, size_t align)
      __attribute__ ((__malloc__)) __nonnull_attribute__ (1);
 
 /* Default OOM handler.  */
index 1518ef629013cc39a909f626b03fb0e44f3e4674..917cb309bba87d1d593b73d99ce6d77ab6882b3a 100644 (file)
@@ -1,5 +1,5 @@
 /* Memory handling for libdw.
-   Copyright (C) 2003, 2004 Red Hat, Inc.
+   Copyright (C) 2003, 2004, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2003.
 
 
 
 void *
-__libdw_allocate (Dwarf *dbg, size_t minsize)
+__libdw_allocate (Dwarf *dbg, size_t minsize, size_t align)
 {
   size_t size = MAX (dbg->mem_default_size,
-                    2 * minsize + offsetof (struct libdw_memblock, mem));
+                    (align - 1 +
+                     2 * minsize + offsetof (struct libdw_memblock, mem)));
   struct libdw_memblock *newp = malloc (size);
   if (newp == NULL)
     dbg->oom_handler ();
 
-  newp->size = newp->remaining = size - offsetof (struct libdw_memblock, mem);
+  uintptr_t result = ((uintptr_t) newp->mem + align - 1) & ~(align - 1);
+
+  newp->size = size - offsetof (struct libdw_memblock, mem);
+  newp->remaining = (uintptr_t) newp + size - (result + minsize);
 
   newp->prev = dbg->mem_tail;
   dbg->mem_tail = newp;
 
-  return newp->mem;
+  return (void *) result;
 }
 
 
index 0e3ac13678021fccd6024ad06f1baada1814d0d0..7dea9438208cfc8be4938cff6ed9af2e473ffd73 100644 (file)
@@ -1,3 +1,8 @@
+2006-09-05  Roland McGrath  <roland@redhat.com>
+
+       * derelocate.c (cache_sections): Use alloca instead of variable-sized
+       auto array, in function already alloca.
+
 2006-08-14  Roland McGrath  <roland@redhat.com>
 
        * linux-kernel-modules.c (try_kernel_name): If the call to
index 89a2de8b814f379a7601c4382e9b6323a208887c..c26be8d84511b4e667decc75fa117b0dc5231b42 100644 (file)
@@ -1,5 +1,5 @@
 /* Recover relocatibility for addresses computed from debug information.
-   Copyright (C) 2005 Red Hat, Inc.
+   Copyright (C) 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
 
    Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -124,7 +124,7 @@ cache_sections (Dwfl_Module *mod)
       return -1;
     }
 
-  struct secref *sortrefs[nrefs];
+  struct secref **sortrefs = alloca (nrefs * sizeof sortrefs[0]);
   for (size_t i = nrefs; i-- > 0; refs = refs->next)
     sortrefs[i] = refs;
   assert (refs == NULL);
index 9004b6b4c0fc992199ada1900e8b2e366ed7fd50..79a874a8cf88a0588325a4b52b1b1f461828c95a 100644 (file)
@@ -1,5 +1,5 @@
 /* Enumerate DWARF register numbers and their names.
-   Copyright (C) 2005 Red Hat, Inc.
+   Copyright (C) 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
 
    Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -54,7 +54,8 @@ int
 dwfl_module_register_names (mod, func, arg)
      Dwfl_Module *mod;
      int (*func) (void *, int regno, const char *setname,
-                 const char *prefix, const char *regname);
+                 const char *prefix, const char *regname,
+                 int bits, int type);
      void *arg;
 {
   if (unlikely (mod == NULL))
@@ -70,15 +71,18 @@ dwfl_module_register_names (mod, func, arg)
        }
     }
 
-  int nregs = ebl_register_name (mod->ebl, -1, NULL, 0, NULL, NULL);
+  int nregs = ebl_register_info (mod->ebl, -1, NULL, 0,
+                                NULL, NULL, NULL, NULL);
   int result = 0;
   for (int regno = 0; regno < nregs && likely (result == 0); ++regno)
     {
       char name[32];
       const char *setname = NULL;
       const char *prefix = NULL;
-      ssize_t len = ebl_register_name (mod->ebl, regno, name, sizeof name,
-                                      &prefix, &setname);
+      int bits = -1;
+      int type = -1;
+      ssize_t len = ebl_register_info (mod->ebl, regno, name, sizeof name,
+                                      &prefix, &setname, &bits, &type);
       if (unlikely (len < 0))
        {
          __libdwfl_seterrno (DWFL_E_LIBEBL);
@@ -88,7 +92,7 @@ dwfl_module_register_names (mod, func, arg)
       if (likely (len > 0))
        {
          assert (len > 1);     /* Backend should never yield "".  */
-         result = (*func) (arg, regno, setname, prefix, name);
+         result = (*func) (arg, regno, setname, prefix, name, bits, type);
        }
     }
 
index ce85a6bb865c6ccb7adb9615e4496e6240ded9e1..a7e8caeefd5307ba26ba1d8085fa2d6c6f1d5175 100644 (file)
@@ -426,7 +426,8 @@ extern int dwfl_module_register_names (Dwfl_Module *mod,
                                                        int regno,
                                                        const char *setname,
                                                        const char *prefix,
-                                                       const char *regname),
+                                                       const char *regname,
+                                                       int bits, int type),
                                       void *arg);
 
 
index c4f5c65ac609b33b7a0dfe8c5cc86f2828bba7ce..33fde08b5d7f4c82f4f40e943387de9e1f82c7a0 100644 (file)
@@ -1,3 +1,17 @@
+2006-09-04  Roland McGrath  <roland@redhat.com>
+
+       * ebl-hooks.h: Replace register_name hook with register_info.
+       Also yield natural bit width and base type encoding.
+       * eblopenbackend.c (default_register_name): Renamed
+       default_register_info, new args added.
+       (fill_defaults): Update initialization.
+       * eblregname.c: File renamed ...
+       * eblreginfo.c: ... to this.
+       (ebl_register_name): Renamed to ebl_register_info, new args added.
+       * libebl.h: Update decl.
+
+       * Makefile.am (gen_SOURCES): Update list.
+
 2006-07-06  Ulrich Drepper  <drepper@redhat.com>
 
        * ebldynamictagname.c: Add support for DT_GNU_HASH.
index 278d93e0dfc1bb0731cb91ad1683f03b88a52949..48042d9fe1277b61d3391f2fa3049602c686a036 100644 (file)
@@ -56,7 +56,7 @@ gen_SOURCES = eblopenbackend.c eblclosebackend.c eblstrtab.c \
              eblgotpcreloccheck.c eblcopyrelocp.c eblsectionstripp.c \
              eblelfclass.c eblelfdata.c eblelfmachine.c \
              ebl_check_special_symbol.c eblbsspltp.c eblretval.c \
-             eblregname.c eblnonerelocp.c eblrelativerelocp.c \
+             eblreginfo.c eblnonerelocp.c eblrelativerelocp.c \
              eblsysvhashentrysize.c
 
 libebl_a_SOURCES = $(gen_SOURCES)
index e4923b2ede322c7f1241e62f6437ba8ed0f19ecf..944e6404ea4ac7a686d3cb58d03cfbfceb4e12b7 100644 (file)
@@ -135,9 +135,10 @@ int EBLHOOK(return_value_location) (Dwarf_Die *functypedie,
                                    const Dwarf_Op **locp);
 
 /* Return register name information.  */
-ssize_t EBLHOOK(register_name) (Ebl *ebl,
+ssize_t EBLHOOK(register_info) (Ebl *ebl,
                                int regno, char *name, size_t namelen,
-                               const char **prefix, const char **setname);
+                               const char **prefix, const char **setname,
+                               int *bits, int *type);
 
 
 /* Destructor for ELF backend handle.  */
index 5916e0de3e69f30624a2909bfab2d58d375d9f4b..dba22ba1780967d621731cfdc71c8b0d7480c3eb 100644 (file)
@@ -55,6 +55,7 @@
 #include <dlfcn.h>
 #include <error.h>
 #include <libelfP.h>
+#include <dwarf.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
@@ -199,10 +200,11 @@ static bool default_check_special_symbol (Elf *elf, GElf_Ehdr *ehdr,
 static bool default_bss_plt_p (Elf *elf, GElf_Ehdr *ehdr);
 static int default_return_value_location (Dwarf_Die *functypedie,
                                          const Dwarf_Op **locops);
-static ssize_t default_register_name (Ebl *ebl,
+static ssize_t default_register_info (Ebl *ebl,
                                      int regno, char *name, size_t namelen,
                                      const char **prefix,
-                                     const char **setname);
+                                     const char **setname,
+                                     int *bits, int *type);
 
 
 static void
@@ -236,7 +238,7 @@ fill_defaults (Ebl *result)
   result->check_special_symbol = default_check_special_symbol;
   result->bss_plt_p = default_bss_plt_p;
   result->return_value_location = default_return_value_location;
-  result->register_name = default_register_name;
+  result->register_info = default_register_info;
   result->destr = default_destr;
   result->sysvhash_entrysize = sizeof (Elf32_Word);
 }
@@ -657,15 +659,18 @@ default_return_value_location (Dwarf_Die *functypedie __attribute__ ((unused)),
 }
 
 static ssize_t
-default_register_name (Ebl *ebl __attribute__ ((unused)),
+default_register_info (Ebl *ebl __attribute__ ((unused)),
                       int regno, char *name, size_t namelen,
                       const char **prefix,
-                      const char **setname)
+                      const char **setname,
+                      int *bits, int *type)
 {
   if (name == NULL)
     return 0;
 
   *setname = "???";
   *prefix = "";
+  *bits = -1;
+  *type = DW_ATE_void;
   return snprintf (name, namelen, "reg%d", regno);
 }
similarity index 92%
rename from libebl/eblregname.c
rename to libebl/eblreginfo.c
index 212e375fc5ec3a964a3af689c5710f63f4373d63..8fc4abfa03f01a117288b61c1e9eae6050f7a8c3 100644 (file)
@@ -1,5 +1,5 @@
 /* Return register name information.
-   Copyright (C) 2005 Red Hat, Inc.
+   Copyright (C) 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
 
    Red Hat elfutils is free software; you can redistribute it and/or modify
 
 
 ssize_t
-ebl_register_name (ebl, regno, name, namelen, prefix, setname)
+ebl_register_info (ebl, regno, name, namelen, prefix, setname, bits, type)
      Ebl *ebl;
      int regno;
      char *name;
      size_t namelen;
      const char **prefix;
      const char **setname;
+     int *bits;
+     int *type;
 {
-  return ebl == NULL ? -1 : ebl->register_name (ebl, regno, name, namelen,
-                                               prefix, setname);
+  return ebl == NULL ? -1 : ebl->register_info (ebl, regno, name, namelen,
+                                               prefix, setname, bits, type);
 }
index 6969c550ea79f95c60a688cdb5e927fa5bd4f236..3375525d976f2f9ba7bf4494d0878cca5e6613d5 100644 (file)
@@ -219,7 +219,7 @@ extern int ebl_return_value_location (Ebl *ebl,
                                      Dwarf_Die *functypedie,
                                      const Dwarf_Op **locops);
 
-/* Fill in register name information given DWARF register numbers.
+/* Fill in register information given DWARF register numbers.
    If NAME is null, return the maximum REGNO + 1 that has a name.
    Otherwise, store in NAME the name for DWARF register number REGNO
    and return the number of bytes written (including '\0' terminator).
@@ -229,9 +229,10 @@ extern int ebl_return_value_location (Ebl *ebl,
    fit for "%s registers" title display, and *PREFIX to the string
    that precedes NAME in canonical assembler syntax (e.g. "%" or "$").
    The NAME string contains identifier characters only (maybe just digits).  */
-extern ssize_t ebl_register_name (Ebl *ebl,
+extern ssize_t ebl_register_info (Ebl *ebl,
                                  int regno, char *name, size_t namelen,
-                                 const char **prefix, const char **setname);
+                                 const char **prefix, const char **setname,
+                                 int *bits, int *type);
 
 
 /* ELF string table handling.  */
index 029923c085d02483d23dae7a461498cd5dee4220..81c6057ce897a6ea6f74fdb1461c73582870fabc 100644 (file)
@@ -1,3 +1,11 @@
+2006-08-29  Roland McGrath  <roland@redhat.com>
+
+       * elf32_getphdr.c: Don't byteswap phdr fields when EI_DATA matches
+       MY_ELFDATA on !ALLOW_UNALIGNED machines.
+       Reported by Christian Aichinger <Greek0@gmx.net>.
+
+       * Makefile.am (CLEANFILES): Add libelf.so.$(VERSION).
+
 2006-08-08  Ulrich Drepper  <drepper@redhat.com>
 
        * elf.h (DT_VALNUM): Update.
index 1c2e69a23ffee5b82bfca5f5ca11ff0b161380a4..f27d4f0bdcab56cf517971c544aaddd50aa93f86 100644 (file)
@@ -135,4 +135,4 @@ noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
                 version_xlate.h gnuhash_xlate.h dl-hash.h
 EXTRA_DIST = libelf.map
 
-CLEANFILES = $(am_libelf_pic_a_OBJECTS) *.gcno *.gcda
+CLEANFILES = $(am_libelf_pic_a_OBJECTS) *.gcno *.gcda libelf.so.$(VERSION)
index bb7c66dee16c4a457c1dc085e18c1669beb68fff..6908724533adfbd0a4187ff4de9400396b7b9d69 100644 (file)
@@ -1,5 +1,5 @@
 /* Get ELF program header table.
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 Red Hat, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 1998.
 
@@ -55,6 +55,7 @@
 #include <errno.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <assert.h>
 
 #include <system.h>
 #include "libelfP.h"
@@ -116,14 +117,14 @@ elfw2(LIBELFBITS,getphdr) (elf)
       if (elf->map_address != NULL)
        {
          /* All the data is already mapped.  Use it.  */
+         void *file_phdr = ((char *) elf->map_address
+                            + elf->start_offset + ehdr->e_phoff);
          if (ehdr->e_ident[EI_DATA] == MY_ELFDATA
              && (ALLOW_UNALIGNED
-                 || ((((uintptr_t) elf->map_address + elf->start_offset
-                       + ehdr->e_phoff)
-                      & (__alignof__ (ElfW2(LIBELFBITS,Phdr)) - 1)) == 0)))
+                 || ((uintptr_t) file_phdr
+                     & (__alignof__ (ElfW2(LIBELFBITS,Phdr)) - 1)) == 0))
            /* Simply use the mapped data.  */
-           elf->state.ELFW(elf,LIBELFBITS).phdr = (ElfW2(LIBELFBITS,Phdr) *)
-             ((char *) elf->map_address + elf->start_offset + ehdr->e_phoff);
+           elf->state.ELFW(elf,LIBELFBITS).phdr = file_phdr;
          else
            {
              ElfW2(LIBELFBITS,Phdr) *notcvt;
@@ -143,31 +144,35 @@ elfw2(LIBELFBITS,getphdr) (elf)
 
              /* Now copy the data and at the same time convert the
                 byte order.  */
-             if (ALLOW_UNALIGNED
-                 || ((((uintptr_t) elf->map_address + elf->start_offset
-                       + ehdr->e_phoff)
-                      & (__alignof__ (ElfW2(LIBELFBITS,Phdr)) - 1)) == 0))
-               notcvt = (ElfW2(LIBELFBITS,Phdr) *)
-                 ((char *) elf->map_address
-                  + elf->start_offset + ehdr->e_phoff);
-             else
+
+             if (ehdr->e_ident[EI_DATA] == MY_ELFDATA)
                {
-                 notcvt = (ElfW2(LIBELFBITS,Phdr) *) alloca (size);
-                 memcpy (notcvt, ((char *) elf->map_address +
-                                  elf->start_offset + ehdr->e_phoff),
-                         size);
+                 assert (! ALLOW_UNALIGNED);
+                 memcpy (phdr, file_phdr, size);
                }
-
-             for (size_t cnt = 0; cnt < phnum; ++cnt)
+             else
                {
-                 CONVERT_TO (phdr[cnt].p_type, notcvt[cnt].p_type);
-                 CONVERT_TO (phdr[cnt].p_offset, notcvt[cnt].p_offset);
-                 CONVERT_TO (phdr[cnt].p_vaddr, notcvt[cnt].p_vaddr);
-                 CONVERT_TO (phdr[cnt].p_paddr, notcvt[cnt].p_paddr);
-                 CONVERT_TO (phdr[cnt].p_filesz, notcvt[cnt].p_filesz);
-                 CONVERT_TO (phdr[cnt].p_memsz, notcvt[cnt].p_memsz);
-                 CONVERT_TO (phdr[cnt].p_flags, notcvt[cnt].p_flags);
-                 CONVERT_TO (phdr[cnt].p_align, notcvt[cnt].p_align);
+                 if (ALLOW_UNALIGNED
+                     || ((uintptr_t) file_phdr
+                         & (__alignof__ (ElfW2(LIBELFBITS,Phdr)) - 1)) == 0)
+                   notcvt = file_phdr;
+                 else
+                   {
+                     notcvt = (ElfW2(LIBELFBITS,Phdr) *) alloca (size);
+                     memcpy (notcvt, file_phdr, size);
+                   }
+
+                 for (size_t cnt = 0; cnt < phnum; ++cnt)
+                   {
+                     CONVERT_TO (phdr[cnt].p_type, notcvt[cnt].p_type);
+                     CONVERT_TO (phdr[cnt].p_offset, notcvt[cnt].p_offset);
+                     CONVERT_TO (phdr[cnt].p_vaddr, notcvt[cnt].p_vaddr);
+                     CONVERT_TO (phdr[cnt].p_paddr, notcvt[cnt].p_paddr);
+                     CONVERT_TO (phdr[cnt].p_filesz, notcvt[cnt].p_filesz);
+                     CONVERT_TO (phdr[cnt].p_memsz, notcvt[cnt].p_memsz);
+                     CONVERT_TO (phdr[cnt].p_flags, notcvt[cnt].p_flags);
+                     CONVERT_TO (phdr[cnt].p_align, notcvt[cnt].p_align);
+                   }
                }
            }
        }
index 5a12ac62d884d946eab36bcd338e379b5e52f812..cbee068bc96877d69fe72deae7f6187f57163e72 100644 (file)
@@ -1,3 +1,13 @@
+2006-08-29  Roland McGrath  <roland@redhat.com>
+
+       * Makefile.am (MAINTAINERCLEANFILES): New variable.
+
+       * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
+       Reported by Christian Aichinger <Greek0@gmx.net>.
+
+       * elflint.c (valid_e_machine): Add EM_ALPHA.
+       Reported by Christian Aichinger <Greek0@gmx.net>.
+
 2006-08-08  Ulrich Drepper  <drepper@redhat.com>
 
        * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
index 604483ab6fc70652ebc40bd0c18a9041a5174d20..470a6b3aa65fd4d0ed8b63ada1459fed92230c08 100644 (file)
@@ -172,3 +172,5 @@ installcheck-binPROGRAMS: $(bin_PROGRAMS)
        done; rm -f c$${pid}_.???; exit $$bad
 
 CLEANFILES = none_ld.os $(ld_modules:.c=.os) *.gcno *.gcda *.gconv
+
+MAINTAINERCLEANFILES = ldlex.c ldscript.c ldscript.h
index c96e8ab0cc3f0214893fa11a0a6ff83716774a7d..57dd716ae358be346906bca6a8ccf2ace466735f 100644 (file)
@@ -331,7 +331,7 @@ static const int valid_e_machine[] =
     EM_68HC16, EM_68HC11, EM_68HC08, EM_68HC05, EM_SVX, EM_ST19, EM_VAX,
     EM_CRIS, EM_JAVELIN, EM_FIREPATH, EM_ZSP, EM_MMIX, EM_HUANY, EM_PRISM,
     EM_AVR, EM_FR30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300,
-    EM_MN10200, EM_PJ, EM_OPENRISC, EM_ARC_A5, EM_XTENSA
+    EM_MN10200, EM_PJ, EM_OPENRISC, EM_ARC_A5, EM_XTENSA, EM_ALPHA
   };
 #define nvalid_e_machine \
   (sizeof (valid_e_machine) / sizeof (valid_e_machine[0]))
index ac313d00c3c129be2d75a6a0f1d80fdecb937ed0..b592c72b2efa300132a11a3d8e84a43741164206 100644 (file)
@@ -1418,7 +1418,7 @@ handle_relocs_rel (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
                                                   ? xndx : sym->st_shndx),
                                       &destshdr_mem);
 
-             if (shdr == NULL)
+             if (destshdr == NULL)
                printf ("  %#0*" PRIx64 "  %-20s <%s %ld>\n",
                        class == ELFCLASS32 ? 10 : 18, rel->r_offset,
                        ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
index fc795084837bcc94976e54b8cfa1de2101890d39..44b0bb4ae869305b27813ba01c88343aae89baf1 100644 (file)
@@ -1,3 +1,23 @@
+2006-09-05  Roland McGrath  <roland@redhat.com>
+
+       * run-strings-test.sh: Export LC_ALL=C for the test.
+
+2006-08-29  Roland McGrath  <roland@redhat.com>
+
+       * run-arextract.sh: Use testrun, tempfiles functions from test-subr.sh.
+       * run-arsymtest.sh: Likewise.
+
+       * run-native-test.sh (native.c compilation): Add some braces.
+
+2006-08-22  Roland McGrath  <roland@redhat.com>
+
+       * allregs.c (dwarf_encoding_string): New function, swiped from readelf.
+       (struct reginfo): New members bits, type.
+       (one_register, match_register): Update to take new args,
+       record and display new info.
+       (main): Display new info.
+       * run-allregs.sh: Update expected results.
+
 2006-08-03  Roland McGrath  <roland@redhat.com>
 
        * run-allregs.sh: Add sparc cases.
index baec94edc8b752fc41056ebca1592fc994928073..f1856dfda235274e5bb9033794a9dc2a2a430f1b 100644 (file)
 #include <argp.h>
 #include <assert.h>
 #include ELFUTILS_HEADER(dwfl)
+#include <dwarf.h>
 
 
+static const char *
+dwarf_encoding_string (unsigned int code)
+{
+  static const char *known[] =
+    {
+      [DW_ATE_void] = "void",
+      [DW_ATE_address] = "address",
+      [DW_ATE_boolean] = "boolean",
+      [DW_ATE_complex_float] = "complex_float",
+      [DW_ATE_float] = "float",
+      [DW_ATE_signed] = "signed",
+      [DW_ATE_signed_char] = "signed_char",
+      [DW_ATE_unsigned] = "unsigned",
+      [DW_ATE_unsigned_char] = "unsigned_char",
+      [DW_ATE_imaginary_float] = "imaginary_float",
+      [DW_ATE_packed_decimal] = "packed_decimal",
+      [DW_ATE_numeric_string] = "numeric_string",
+      [DW_ATE_edited] = "edited",
+      [DW_ATE_signed_fixed] = "signed_fixed",
+      [DW_ATE_unsigned_fixed] = "unsigned_fixed",
+      [DW_ATE_decimal_float] = "decimal_float",
+    };
+
+  if (code < sizeof (known) / sizeof (known[0]))
+    return known[code];
+
+  if (code >= DW_ATE_lo_user && code <= DW_ATE_hi_user)
+    {
+      static char buf[30];
+      snprintf (buf, sizeof (buf), "lo_user+%u", code - DW_ATE_lo_user);
+      return buf;
+    }
+
+  return "???";
+}
+
 static int
 first_module (Dwfl_Module *mod,
              void **userdatap __attribute__ ((unused)),
@@ -62,6 +99,8 @@ struct reginfo
 {
   const char *set, *pfx;
   int regno;
+  int bits;
+  int type;
   char name[32];
 };
 
@@ -87,7 +126,8 @@ one_register (void *arg,
              int regno,
              const char *setname,
              const char *prefix,
-             const char *regname)
+             const char *regname,
+             int bits, int type)
 {
   struct state *state = arg;
 
@@ -103,6 +143,8 @@ one_register (void *arg,
   state->info[regno].regno = regno;
   state->info[regno].set = setname;
   state->info[regno].pfx = prefix;
+  state->info[regno].bits = bits;
+  state->info[regno].type = type;
   assert (strlen (regname) < sizeof state->info[regno].name);
   strcpy (state->info[regno].name, regname);
 
@@ -115,10 +157,13 @@ match_register (void *arg,
                int regno,
                const char *setname,
                const char *prefix,
-               const char *regname)
+               const char *regname,
+               int bits, int type)
 {
   if (regno == *(int *) arg)
-    printf ("%5d => %s register %s%s\n", regno, setname, prefix, regname);
+    printf ("%5d => %s register %s%s %s %d bits\n",
+           regno, setname, prefix, regname,
+           dwarf_encoding_string (type), bits);
 
   return DWARF_CB_ABORT;
 }
@@ -158,9 +203,12 @@ main (int argc, char **argv)
              printf ("%s registers:\n", state.info[i].set);
            set = state.info[i].set;
 
-           printf ("\t%3d: %s%s (%s)\n", state.info[i].regno,
+           printf ("\t%3d: %s%s (%s), %s %d bits\n",
+                   state.info[i].regno,
                    state.info[i].pfx ?: "", state.info[i].name,
-                   state.info[i].name);
+                   state.info[i].name,
+                   dwarf_encoding_string (state.info[i].type),
+                   state.info[i].bits);
          }
     }
   else
index bdd1ca23b42ba7a0ba6aedb65a05229687122ea5..46503f20a2aa052ebdf526c87d4263522eca9572 100755 (executable)
@@ -36,1376 +36,2471 @@ regs_test()
 
 regs_test testfile11 <<\EOF
 integer registers:
-         0: %eax (eax)
-         1: %ecx (ecx)
-         2: %edx (edx)
-         3: %ebx (ebx)
-         4: %esp (esp)
-         5: %ebp (ebp)
-         6: %esi (esi)
-         7: %edi (edi)
-         8: %eip (eip)
-         9: %eflags (eflags)
-        10: %trapno (trapno)
+         0: %eax (eax), signed 32 bits
+         1: %ecx (ecx), signed 32 bits
+         2: %edx (edx), signed 32 bits
+         3: %ebx (ebx), signed 32 bits
+         4: %esp (esp), address 32 bits
+         5: %ebp (ebp), address 32 bits
+         6: %esi (esi), signed 32 bits
+         7: %edi (edi), signed 32 bits
+         8: %eip (eip), address 32 bits
+         9: %eflags (eflags), unsigned 32 bits
+        10: %trapno (trapno), unsigned 32 bits
 FPU-control registers:
-        37: %fctrl (fctrl)
-        38: %fstat (fstat)
-        39: %mxcsr (mxcsr)
+        37: %fctrl (fctrl), unsigned 32 bits
+        38: %fstat (fstat), unsigned 32 bits
+        39: %mxcsr (mxcsr), unsigned 32 bits
 MMX registers:
-        29: %mm0 (mm0)
-        30: %mm1 (mm1)
-        31: %mm2 (mm2)
-        32: %mm3 (mm3)
-        33: %mm4 (mm4)
-        34: %mm5 (mm5)
-        35: %mm6 (mm6)
-        36: %mm7 (mm7)
+        29: %mm0 (mm0), unsigned 64 bits
+        30: %mm1 (mm1), unsigned 64 bits
+        31: %mm2 (mm2), unsigned 64 bits
+        32: %mm3 (mm3), unsigned 64 bits
+        33: %mm4 (mm4), unsigned 64 bits
+        34: %mm5 (mm5), unsigned 64 bits
+        35: %mm6 (mm6), unsigned 64 bits
+        36: %mm7 (mm7), unsigned 64 bits
 SSE registers:
-        21: %xmm0 (xmm0)
-        22: %xmm1 (xmm1)
-        23: %xmm2 (xmm2)
-        24: %xmm3 (xmm3)
-        25: %xmm4 (xmm4)
-        26: %xmm5 (xmm5)
-        27: %xmm6 (xmm6)
-        28: %xmm7 (xmm7)
+        21: %xmm0 (xmm0), unsigned 128 bits
+        22: %xmm1 (xmm1), unsigned 128 bits
+        23: %xmm2 (xmm2), unsigned 128 bits
+        24: %xmm3 (xmm3), unsigned 128 bits
+        25: %xmm4 (xmm4), unsigned 128 bits
+        26: %xmm5 (xmm5), unsigned 128 bits
+        27: %xmm6 (xmm6), unsigned 128 bits
+        28: %xmm7 (xmm7), unsigned 128 bits
 segment registers:
-        40: %es (es)
-        41: %cs (cs)
-        42: %ss (ss)
-        43: %ds (ds)
-        44: %fs (fs)
-        45: %gs (gs)
+        40: %es (es), unsigned 16 bits
+        41: %cs (cs), unsigned 16 bits
+        42: %ss (ss), unsigned 16 bits
+        43: %ds (ds), unsigned 16 bits
+        44: %fs (fs), unsigned 16 bits
+        45: %gs (gs), unsigned 16 bits
 x87 registers:
-        11: %st0 (st0)
-        12: %st1 (st1)
-        13: %st2 (st2)
-        14: %st3 (st3)
-        15: %st4 (st4)
-        16: %st5 (st5)
-        17: %st6 (st6)
-        18: %st7 (st7)
+        11: %st0 (st0), float 80 bits
+        12: %st1 (st1), float 80 bits
+        13: %st2 (st2), float 80 bits
+        14: %st3 (st3), float 80 bits
+        15: %st4 (st4), float 80 bits
+        16: %st5 (st5), float 80 bits
+        17: %st6 (st6), float 80 bits
+        18: %st7 (st7), float 80 bits
 EOF
 
 regs_test testfile12 <<\EOF
 integer registers:
-         0: %rax (rax)
-         1: %rdx (rdx)
-         2: %rcx (rcx)
-         3: %rbx (rbx)
-         4: %rsi (rsi)
-         5: %rdi (rdi)
-         6: %rbp (rbp)
-         7: %rsp (rsp)
-         8: %r8 (r8)
-         9: %r9 (r9)
-        10: %r10 (r10)
-        11: %r11 (r11)
-        12: %r12 (r12)
-        13: %r13 (r13)
-        14: %r14 (r14)
-        15: %r15 (r15)
-        16: %rip (rip)
+         0: %rax (rax), signed 64 bits
+         1: %rdx (rdx), signed 64 bits
+         2: %rcx (rcx), signed 64 bits
+         3: %rbx (rbx), signed 64 bits
+         4: %rsi (rsi), signed 64 bits
+         5: %rdi (rdi), signed 64 bits
+         6: %rbp (rbp), address 64 bits
+         7: %rsp (rsp), address 64 bits
+         8: %r8 (r8), signed 64 bits
+         9: %r9 (r9), signed 64 bits
+        10: %r10 (r10), signed 64 bits
+        11: %r11 (r11), signed 64 bits
+        12: %r12 (r12), signed 64 bits
+        13: %r13 (r13), signed 64 bits
+        14: %r14 (r14), signed 64 bits
+        15: %r15 (r15), signed 64 bits
+        16: %rip (rip), address 64 bits
 MMX registers:
-        41: %mm0 (mm0)
-        42: %mm1 (mm1)
-        43: %mm2 (mm2)
-        44: %mm3 (mm3)
-        45: %mm4 (mm4)
-        46: %mm5 (mm5)
-        47: %mm6 (mm6)
-        48: %mm7 (mm7)
+        41: %mm0 (mm0), unsigned 64 bits
+        42: %mm1 (mm1), unsigned 64 bits
+        43: %mm2 (mm2), unsigned 64 bits
+        44: %mm3 (mm3), unsigned 64 bits
+        45: %mm4 (mm4), unsigned 64 bits
+        46: %mm5 (mm5), unsigned 64 bits
+        47: %mm6 (mm6), unsigned 64 bits
+        48: %mm7 (mm7), unsigned 64 bits
 SSE registers:
-        17: %xmm0 (xmm0)
-        18: %xmm1 (xmm1)
-        19: %xmm2 (xmm2)
-        20: %xmm3 (xmm3)
-        21: %xmm4 (xmm4)
-        22: %xmm5 (xmm5)
-        23: %xmm6 (xmm6)
-        24: %xmm7 (xmm7)
-        25: %xmm8 (xmm8)
-        26: %xmm9 (xmm9)
-        27: %xmm10 (xmm10)
-        28: %xmm11 (xmm11)
-        29: %xmm12 (xmm12)
-        30: %xmm13 (xmm13)
-        31: %xmm14 (xmm14)
-        32: %xmm15 (xmm15)
+        17: %xmm0 (xmm0), unsigned 128 bits
+        18: %xmm1 (xmm1), unsigned 128 bits
+        19: %xmm2 (xmm2), unsigned 128 bits
+        20: %xmm3 (xmm3), unsigned 128 bits
+        21: %xmm4 (xmm4), unsigned 128 bits
+        22: %xmm5 (xmm5), unsigned 128 bits
+        23: %xmm6 (xmm6), unsigned 128 bits
+        24: %xmm7 (xmm7), unsigned 128 bits
+        25: %xmm8 (xmm8), unsigned 128 bits
+        26: %xmm9 (xmm9), unsigned 128 bits
+        27: %xmm10 (xmm10), unsigned 128 bits
+        28: %xmm11 (xmm11), unsigned 128 bits
+        29: %xmm12 (xmm12), unsigned 128 bits
+        30: %xmm13 (xmm13), unsigned 128 bits
+        31: %xmm14 (xmm14), unsigned 128 bits
+        32: %xmm15 (xmm15), unsigned 128 bits
 x87 registers:
-        33: %st0 (st0)
-        34: %st1 (st1)
-        35: %st2 (st2)
-        36: %st3 (st3)
-        37: %st4 (st4)
-        38: %st5 (st5)
-        39: %st6 (st6)
-        40: %st7 (st7)
+        33: %st0 (st0), float 80 bits
+        34: %st1 (st1), float 80 bits
+        35: %st2 (st2), float 80 bits
+        36: %st3 (st3), float 80 bits
+        37: %st4 (st4), float 80 bits
+        38: %st5 (st5), float 80 bits
+        39: %st6 (st6), float 80 bits
+        40: %st7 (st7), float 80 bits
 EOF
 
-regs_test testfile2 testfile23 <<\EOF
+regs_test testfile2 <<\EOF
 integer registers:
-         0: r0 (r0)
-         1: r1 (r1)
-         2: r2 (r2)
-         3: r3 (r3)
-         4: r4 (r4)
-         5: r5 (r5)
-         6: r6 (r6)
-         7: r7 (r7)
-         8: r8 (r8)
-         9: r9 (r9)
-        10: r10 (r10)
-        11: r11 (r11)
-        12: r12 (r12)
-        13: r13 (r13)
-        14: r14 (r14)
-        15: r15 (r15)
-        16: r16 (r16)
-        17: r17 (r17)
-        18: r18 (r18)
-        19: r19 (r19)
-        20: r20 (r20)
-        21: r21 (r21)
-        22: r22 (r22)
-        23: r23 (r23)
-        24: r24 (r24)
-        25: r25 (r25)
-        26: r26 (r26)
-        27: r27 (r27)
-        28: r28 (r28)
-        29: r29 (r29)
-        30: r30 (r30)
-        31: r31 (r31)
-        64: cr (cr)
-        66: msr (msr)
+         0: r0 (r0), signed 32 bits
+         1: r1 (r1), signed 32 bits
+         2: r2 (r2), signed 32 bits
+         3: r3 (r3), signed 32 bits
+         4: r4 (r4), signed 32 bits
+         5: r5 (r5), signed 32 bits
+         6: r6 (r6), signed 32 bits
+         7: r7 (r7), signed 32 bits
+         8: r8 (r8), signed 32 bits
+         9: r9 (r9), signed 32 bits
+        10: r10 (r10), signed 32 bits
+        11: r11 (r11), signed 32 bits
+        12: r12 (r12), signed 32 bits
+        13: r13 (r13), signed 32 bits
+        14: r14 (r14), signed 32 bits
+        15: r15 (r15), signed 32 bits
+        16: r16 (r16), signed 32 bits
+        17: r17 (r17), signed 32 bits
+        18: r18 (r18), signed 32 bits
+        19: r19 (r19), signed 32 bits
+        20: r20 (r20), signed 32 bits
+        21: r21 (r21), signed 32 bits
+        22: r22 (r22), signed 32 bits
+        23: r23 (r23), signed 32 bits
+        24: r24 (r24), signed 32 bits
+        25: r25 (r25), signed 32 bits
+        26: r26 (r26), signed 32 bits
+        27: r27 (r27), signed 32 bits
+        28: r28 (r28), signed 32 bits
+        29: r29 (r29), signed 32 bits
+        30: r30 (r30), signed 32 bits
+        31: r31 (r31), signed 32 bits
+        64: cr (cr), unsigned 32 bits
+        66: msr (msr), unsigned 32 bits
 FPU registers:
-        32: f0 (f0)
-        33: f1 (f1)
-        34: f2 (f2)
-        35: f3 (f3)
-        36: f4 (f4)
-        37: f5 (f5)
-        38: f6 (f6)
-        39: f7 (f7)
-        40: f8 (f8)
-        41: f9 (f9)
-        42: f10 (f10)
-        43: f11 (f11)
-        44: f12 (f12)
-        45: f13 (f13)
-        46: f14 (f14)
-        47: f15 (f15)
-        48: f16 (f16)
-        49: f17 (f17)
-        50: f18 (f18)
-        51: f19 (f19)
-        52: f20 (f20)
-        53: f21 (f21)
-        54: f22 (f22)
-        55: f23 (f23)
-        56: f24 (f24)
-        57: f25 (f25)
-        58: f26 (f26)
-        59: f27 (f27)
-        60: f28 (f28)
-        61: f29 (f29)
-        62: f30 (f30)
-        63: f31 (f31)
-        65: fpscr (fpscr)
+        32: f0 (f0), float 32 bits
+        33: f1 (f1), float 32 bits
+        34: f2 (f2), float 32 bits
+        35: f3 (f3), float 32 bits
+        36: f4 (f4), float 32 bits
+        37: f5 (f5), float 32 bits
+        38: f6 (f6), float 32 bits
+        39: f7 (f7), float 32 bits
+        40: f8 (f8), float 32 bits
+        41: f9 (f9), float 32 bits
+        42: f10 (f10), float 32 bits
+        43: f11 (f11), float 32 bits
+        44: f12 (f12), float 32 bits
+        45: f13 (f13), float 32 bits
+        46: f14 (f14), float 32 bits
+        47: f15 (f15), float 32 bits
+        48: f16 (f16), float 32 bits
+        49: f17 (f17), float 32 bits
+        50: f18 (f18), float 32 bits
+        51: f19 (f19), float 32 bits
+        52: f20 (f20), float 32 bits
+        53: f21 (f21), float 32 bits
+        54: f22 (f22), float 32 bits
+        55: f23 (f23), float 32 bits
+        56: f24 (f24), float 32 bits
+        57: f25 (f25), float 32 bits
+        58: f26 (f26), float 32 bits
+        59: f27 (f27), float 32 bits
+        60: f28 (f28), float 32 bits
+        61: f29 (f29), float 32 bits
+        62: f30 (f30), float 32 bits
+        63: f31 (f31), float 32 bits
+        65: fpscr (fpscr), unsigned 32 bits
 privileged registers:
-        70: sr0 (sr0)
-        71: sr1 (sr1)
-        72: sr2 (sr2)
-        73: sr3 (sr3)
-        74: sr4 (sr4)
-        75: sr5 (sr5)
-        76: sr6 (sr6)
-        77: sr7 (sr7)
-        78: sr8 (sr8)
-        79: sr9 (sr9)
-        80: sr10 (sr10)
-        81: sr11 (sr11)
-        82: sr12 (sr12)
-        83: sr13 (sr13)
-        84: sr14 (sr14)
-        85: sr15 (sr15)
-       100: spr0 (spr0)
-       101: spr1 (spr1)
-       102: spr2 (spr2)
-       103: spr3 (spr3)
-       104: spr4 (spr4)
-       105: spr5 (spr5)
-       106: spr6 (spr6)
-       107: spr7 (spr7)
-       108: spr8 (spr8)
-       109: spr9 (spr9)
-       110: spr10 (spr10)
-       111: spr11 (spr11)
-       112: spr12 (spr12)
-       113: spr13 (spr13)
-       114: spr14 (spr14)
-       115: spr15 (spr15)
-       116: spr16 (spr16)
-       117: spr17 (spr17)
-       118: spr18 (spr18)
-       119: spr19 (spr19)
-       120: spr20 (spr20)
-       121: spr21 (spr21)
-       122: spr22 (spr22)
-       123: spr23 (spr23)
-       124: spr24 (spr24)
-       125: spr25 (spr25)
-       126: spr26 (spr26)
-       127: spr27 (spr27)
-       128: spr28 (spr28)
-       129: spr29 (spr29)
-       130: spr30 (spr30)
-       131: spr31 (spr31)
-       132: spr32 (spr32)
-       133: spr33 (spr33)
-       134: spr34 (spr34)
-       135: spr35 (spr35)
-       136: spr36 (spr36)
-       137: spr37 (spr37)
-       138: spr38 (spr38)
-       139: spr39 (spr39)
-       140: spr40 (spr40)
-       141: spr41 (spr41)
-       142: spr42 (spr42)
-       143: spr43 (spr43)
-       144: spr44 (spr44)
-       145: spr45 (spr45)
-       146: spr46 (spr46)
-       147: spr47 (spr47)
-       148: spr48 (spr48)
-       149: spr49 (spr49)
-       150: spr50 (spr50)
-       151: spr51 (spr51)
-       152: spr52 (spr52)
-       153: spr53 (spr53)
-       154: spr54 (spr54)
-       155: spr55 (spr55)
-       156: spr56 (spr56)
-       157: spr57 (spr57)
-       158: spr58 (spr58)
-       159: spr59 (spr59)
-       160: spr60 (spr60)
-       161: spr61 (spr61)
-       162: spr62 (spr62)
-       163: spr63 (spr63)
-       164: spr64 (spr64)
-       165: spr65 (spr65)
-       166: spr66 (spr66)
-       167: spr67 (spr67)
-       168: spr68 (spr68)
-       169: spr69 (spr69)
-       170: spr70 (spr70)
-       171: spr71 (spr71)
-       172: spr72 (spr72)
-       173: spr73 (spr73)
-       174: spr74 (spr74)
-       175: spr75 (spr75)
-       176: spr76 (spr76)
-       177: spr77 (spr77)
-       178: spr78 (spr78)
-       179: spr79 (spr79)
-       180: spr80 (spr80)
-       181: spr81 (spr81)
-       182: spr82 (spr82)
-       183: spr83 (spr83)
-       184: spr84 (spr84)
-       185: spr85 (spr85)
-       186: spr86 (spr86)
-       187: spr87 (spr87)
-       188: spr88 (spr88)
-       189: spr89 (spr89)
-       190: spr90 (spr90)
-       191: spr91 (spr91)
-       192: spr92 (spr92)
-       193: spr93 (spr93)
-       194: spr94 (spr94)
-       195: spr95 (spr95)
-       196: spr96 (spr96)
-       197: spr97 (spr97)
-       198: spr98 (spr98)
-       199: spr99 (spr99)
-       200: spr100 (spr100)
-       201: spr101 (spr101)
-       202: spr102 (spr102)
-       203: spr103 (spr103)
-       204: spr104 (spr104)
-       205: spr105 (spr105)
-       206: spr106 (spr106)
-       207: spr107 (spr107)
-       208: spr108 (spr108)
-       209: spr109 (spr109)
-       210: spr110 (spr110)
-       211: spr111 (spr111)
-       212: spr112 (spr112)
-       213: spr113 (spr113)
-       214: spr114 (spr114)
-       215: spr115 (spr115)
-       216: spr116 (spr116)
-       217: spr117 (spr117)
-       218: spr118 (spr118)
-       219: spr119 (spr119)
-       220: spr120 (spr120)
-       221: spr121 (spr121)
-       222: spr122 (spr122)
-       223: spr123 (spr123)
-       224: spr124 (spr124)
-       225: spr125 (spr125)
-       226: spr126 (spr126)
-       227: spr127 (spr127)
-       228: spr128 (spr128)
-       229: spr129 (spr129)
-       230: spr130 (spr130)
-       231: spr131 (spr131)
-       232: spr132 (spr132)
-       233: spr133 (spr133)
-       234: spr134 (spr134)
-       235: spr135 (spr135)
-       236: spr136 (spr136)
-       237: spr137 (spr137)
-       238: spr138 (spr138)
-       239: spr139 (spr139)
-       240: spr140 (spr140)
-       241: spr141 (spr141)
-       242: spr142 (spr142)
-       243: spr143 (spr143)
-       244: spr144 (spr144)
-       245: spr145 (spr145)
-       246: spr146 (spr146)
-       247: spr147 (spr147)
-       248: spr148 (spr148)
-       249: spr149 (spr149)
-       250: spr150 (spr150)
-       251: spr151 (spr151)
-       252: spr152 (spr152)
-       253: spr153 (spr153)
-       254: spr154 (spr154)
-       255: spr155 (spr155)
-       256: spr156 (spr156)
-       257: spr157 (spr157)
-       258: spr158 (spr158)
-       259: spr159 (spr159)
-       260: spr160 (spr160)
-       261: spr161 (spr161)
-       262: spr162 (spr162)
-       263: spr163 (spr163)
-       264: spr164 (spr164)
-       265: spr165 (spr165)
-       266: spr166 (spr166)
-       267: spr167 (spr167)
-       268: spr168 (spr168)
-       269: spr169 (spr169)
-       270: spr170 (spr170)
-       271: spr171 (spr171)
-       272: spr172 (spr172)
-       273: spr173 (spr173)
-       274: spr174 (spr174)
-       275: spr175 (spr175)
-       276: spr176 (spr176)
-       277: spr177 (spr177)
-       278: spr178 (spr178)
-       279: spr179 (spr179)
-       280: spr180 (spr180)
-       281: spr181 (spr181)
-       282: spr182 (spr182)
-       283: spr183 (spr183)
-       284: spr184 (spr184)
-       285: spr185 (spr185)
-       286: spr186 (spr186)
-       287: spr187 (spr187)
-       288: spr188 (spr188)
-       289: spr189 (spr189)
-       290: spr190 (spr190)
-       291: spr191 (spr191)
-       292: spr192 (spr192)
-       293: spr193 (spr193)
-       294: spr194 (spr194)
-       295: spr195 (spr195)
-       296: spr196 (spr196)
-       297: spr197 (spr197)
-       298: spr198 (spr198)
-       299: spr199 (spr199)
-       300: spr200 (spr200)
-       301: spr201 (spr201)
-       302: spr202 (spr202)
-       303: spr203 (spr203)
-       304: spr204 (spr204)
-       305: spr205 (spr205)
-       306: spr206 (spr206)
-       307: spr207 (spr207)
-       308: spr208 (spr208)
-       309: spr209 (spr209)
-       310: spr210 (spr210)
-       311: spr211 (spr211)
-       312: spr212 (spr212)
-       313: spr213 (spr213)
-       314: spr214 (spr214)
-       315: spr215 (spr215)
-       316: spr216 (spr216)
-       317: spr217 (spr217)
-       318: spr218 (spr218)
-       319: spr219 (spr219)
-       320: spr220 (spr220)
-       321: spr221 (spr221)
-       322: spr222 (spr222)
-       323: spr223 (spr223)
-       324: spr224 (spr224)
-       325: spr225 (spr225)
-       326: spr226 (spr226)
-       327: spr227 (spr227)
-       328: spr228 (spr228)
-       329: spr229 (spr229)
-       330: spr230 (spr230)
-       331: spr231 (spr231)
-       332: spr232 (spr232)
-       333: spr233 (spr233)
-       334: spr234 (spr234)
-       335: spr235 (spr235)
-       336: spr236 (spr236)
-       337: spr237 (spr237)
-       338: spr238 (spr238)
-       339: spr239 (spr239)
-       340: spr240 (spr240)
-       341: spr241 (spr241)
-       342: spr242 (spr242)
-       343: spr243 (spr243)
-       344: spr244 (spr244)
-       345: spr245 (spr245)
-       346: spr246 (spr246)
-       347: spr247 (spr247)
-       348: spr248 (spr248)
-       349: spr249 (spr249)
-       350: spr250 (spr250)
-       351: spr251 (spr251)
-       352: spr252 (spr252)
-       353: spr253 (spr253)
-       354: spr254 (spr254)
-       355: spr255 (spr255)
-       356: spr256 (spr256)
-       357: spr257 (spr257)
-       358: spr258 (spr258)
-       359: spr259 (spr259)
-       360: spr260 (spr260)
-       361: spr261 (spr261)
-       362: spr262 (spr262)
-       363: spr263 (spr263)
-       364: spr264 (spr264)
-       365: spr265 (spr265)
-       366: spr266 (spr266)
-       367: spr267 (spr267)
-       368: spr268 (spr268)
-       369: spr269 (spr269)
-       370: spr270 (spr270)
-       371: spr271 (spr271)
-       372: spr272 (spr272)
-       373: spr273 (spr273)
-       374: spr274 (spr274)
-       375: spr275 (spr275)
-       376: spr276 (spr276)
-       377: spr277 (spr277)
-       378: spr278 (spr278)
-       379: spr279 (spr279)
-       380: spr280 (spr280)
-       381: spr281 (spr281)
-       382: spr282 (spr282)
-       383: spr283 (spr283)
-       384: spr284 (spr284)
-       385: spr285 (spr285)
-       386: spr286 (spr286)
-       387: spr287 (spr287)
-       388: spr288 (spr288)
-       389: spr289 (spr289)
-       390: spr290 (spr290)
-       391: spr291 (spr291)
-       392: spr292 (spr292)
-       393: spr293 (spr293)
-       394: spr294 (spr294)
-       395: spr295 (spr295)
-       396: spr296 (spr296)
-       397: spr297 (spr297)
-       398: spr298 (spr298)
-       399: spr299 (spr299)
-       400: spr300 (spr300)
-       401: spr301 (spr301)
-       402: spr302 (spr302)
-       403: spr303 (spr303)
-       404: spr304 (spr304)
-       405: spr305 (spr305)
-       406: spr306 (spr306)
-       407: spr307 (spr307)
-       408: spr308 (spr308)
-       409: spr309 (spr309)
-       410: spr310 (spr310)
-       411: spr311 (spr311)
-       412: spr312 (spr312)
-       413: spr313 (spr313)
-       414: spr314 (spr314)
-       415: spr315 (spr315)
-       416: spr316 (spr316)
-       417: spr317 (spr317)
-       418: spr318 (spr318)
-       419: spr319 (spr319)
-       420: spr320 (spr320)
-       421: spr321 (spr321)
-       422: spr322 (spr322)
-       423: spr323 (spr323)
-       424: spr324 (spr324)
-       425: spr325 (spr325)
-       426: spr326 (spr326)
-       427: spr327 (spr327)
-       428: spr328 (spr328)
-       429: spr329 (spr329)
-       430: spr330 (spr330)
-       431: spr331 (spr331)
-       432: spr332 (spr332)
-       433: spr333 (spr333)
-       434: spr334 (spr334)
-       435: spr335 (spr335)
-       436: spr336 (spr336)
-       437: spr337 (spr337)
-       438: spr338 (spr338)
-       439: spr339 (spr339)
-       440: spr340 (spr340)
-       441: spr341 (spr341)
-       442: spr342 (spr342)
-       443: spr343 (spr343)
-       444: spr344 (spr344)
-       445: spr345 (spr345)
-       446: spr346 (spr346)
-       447: spr347 (spr347)
-       448: spr348 (spr348)
-       449: spr349 (spr349)
-       450: spr350 (spr350)
-       451: spr351 (spr351)
-       452: spr352 (spr352)
-       453: spr353 (spr353)
-       454: spr354 (spr354)
-       455: spr355 (spr355)
-       456: spr356 (spr356)
-       457: spr357 (spr357)
-       458: spr358 (spr358)
-       459: spr359 (spr359)
-       460: spr360 (spr360)
-       461: spr361 (spr361)
-       462: spr362 (spr362)
-       463: spr363 (spr363)
-       464: spr364 (spr364)
-       465: spr365 (spr365)
-       466: spr366 (spr366)
-       467: spr367 (spr367)
-       468: spr368 (spr368)
-       469: spr369 (spr369)
-       470: spr370 (spr370)
-       471: spr371 (spr371)
-       472: spr372 (spr372)
-       473: spr373 (spr373)
-       474: spr374 (spr374)
-       475: spr375 (spr375)
-       476: spr376 (spr376)
-       477: spr377 (spr377)
-       478: spr378 (spr378)
-       479: spr379 (spr379)
-       480: spr380 (spr380)
-       481: spr381 (spr381)
-       482: spr382 (spr382)
-       483: spr383 (spr383)
-       484: spr384 (spr384)
-       485: spr385 (spr385)
-       486: spr386 (spr386)
-       487: spr387 (spr387)
-       488: spr388 (spr388)
-       489: spr389 (spr389)
-       490: spr390 (spr390)
-       491: spr391 (spr391)
-       492: spr392 (spr392)
-       493: spr393 (spr393)
-       494: spr394 (spr394)
-       495: spr395 (spr395)
-       496: spr396 (spr396)
-       497: spr397 (spr397)
-       498: spr398 (spr398)
-       499: spr399 (spr399)
-       500: spr400 (spr400)
-       501: spr401 (spr401)
-       502: spr402 (spr402)
-       503: spr403 (spr403)
-       504: spr404 (spr404)
-       505: spr405 (spr405)
-       506: spr406 (spr406)
-       507: spr407 (spr407)
-       508: spr408 (spr408)
-       509: spr409 (spr409)
-       510: spr410 (spr410)
-       511: spr411 (spr411)
-       512: spr412 (spr412)
-       513: spr413 (spr413)
-       514: spr414 (spr414)
-       515: spr415 (spr415)
-       516: spr416 (spr416)
-       517: spr417 (spr417)
-       518: spr418 (spr418)
-       519: spr419 (spr419)
-       520: spr420 (spr420)
-       521: spr421 (spr421)
-       522: spr422 (spr422)
-       523: spr423 (spr423)
-       524: spr424 (spr424)
-       525: spr425 (spr425)
-       526: spr426 (spr426)
-       527: spr427 (spr427)
-       528: spr428 (spr428)
-       529: spr429 (spr429)
-       530: spr430 (spr430)
-       531: spr431 (spr431)
-       532: spr432 (spr432)
-       533: spr433 (spr433)
-       534: spr434 (spr434)
-       535: spr435 (spr435)
-       536: spr436 (spr436)
-       537: spr437 (spr437)
-       538: spr438 (spr438)
-       539: spr439 (spr439)
-       540: spr440 (spr440)
-       541: spr441 (spr441)
-       542: spr442 (spr442)
-       543: spr443 (spr443)
-       544: spr444 (spr444)
-       545: spr445 (spr445)
-       546: spr446 (spr446)
-       547: spr447 (spr447)
-       548: spr448 (spr448)
-       549: spr449 (spr449)
-       550: spr450 (spr450)
-       551: spr451 (spr451)
-       552: spr452 (spr452)
-       553: spr453 (spr453)
-       554: spr454 (spr454)
-       555: spr455 (spr455)
-       556: spr456 (spr456)
-       557: spr457 (spr457)
-       558: spr458 (spr458)
-       559: spr459 (spr459)
-       560: spr460 (spr460)
-       561: spr461 (spr461)
-       562: spr462 (spr462)
-       563: spr463 (spr463)
-       564: spr464 (spr464)
-       565: spr465 (spr465)
-       566: spr466 (spr466)
-       567: spr467 (spr467)
-       568: spr468 (spr468)
-       569: spr469 (spr469)
-       570: spr470 (spr470)
-       571: spr471 (spr471)
-       572: spr472 (spr472)
-       573: spr473 (spr473)
-       574: spr474 (spr474)
-       575: spr475 (spr475)
-       576: spr476 (spr476)
-       577: spr477 (spr477)
-       578: spr478 (spr478)
-       579: spr479 (spr479)
-       580: spr480 (spr480)
-       581: spr481 (spr481)
-       582: spr482 (spr482)
-       583: spr483 (spr483)
-       584: spr484 (spr484)
-       585: spr485 (spr485)
-       586: spr486 (spr486)
-       587: spr487 (spr487)
-       588: spr488 (spr488)
-       589: spr489 (spr489)
-       590: spr490 (spr490)
-       591: spr491 (spr491)
-       592: spr492 (spr492)
-       593: spr493 (spr493)
-       594: spr494 (spr494)
-       595: spr495 (spr495)
-       596: spr496 (spr496)
-       597: spr497 (spr497)
-       598: spr498 (spr498)
-       599: spr499 (spr499)
-       600: spr500 (spr500)
-       601: spr501 (spr501)
-       602: spr502 (spr502)
-       603: spr503 (spr503)
-       604: spr504 (spr504)
-       605: spr505 (spr505)
-       606: spr506 (spr506)
-       607: spr507 (spr507)
-       608: spr508 (spr508)
-       609: spr509 (spr509)
-       610: spr510 (spr510)
-       611: spr511 (spr511)
-       612: spr512 (spr512)
-       613: spr513 (spr513)
-       614: spr514 (spr514)
-       615: spr515 (spr515)
-       616: spr516 (spr516)
-       617: spr517 (spr517)
-       618: spr518 (spr518)
-       619: spr519 (spr519)
-       620: spr520 (spr520)
-       621: spr521 (spr521)
-       622: spr522 (spr522)
-       623: spr523 (spr523)
-       624: spr524 (spr524)
-       625: spr525 (spr525)
-       626: spr526 (spr526)
-       627: spr527 (spr527)
-       628: spr528 (spr528)
-       629: spr529 (spr529)
-       630: spr530 (spr530)
-       631: spr531 (spr531)
-       632: spr532 (spr532)
-       633: spr533 (spr533)
-       634: spr534 (spr534)
-       635: spr535 (spr535)
-       636: spr536 (spr536)
-       637: spr537 (spr537)
-       638: spr538 (spr538)
-       639: spr539 (spr539)
-       640: spr540 (spr540)
-       641: spr541 (spr541)
-       642: spr542 (spr542)
-       643: spr543 (spr543)
-       644: spr544 (spr544)
-       645: spr545 (spr545)
-       646: spr546 (spr546)
-       647: spr547 (spr547)
-       648: spr548 (spr548)
-       649: spr549 (spr549)
-       650: spr550 (spr550)
-       651: spr551 (spr551)
-       652: spr552 (spr552)
-       653: spr553 (spr553)
-       654: spr554 (spr554)
-       655: spr555 (spr555)
-       656: spr556 (spr556)
-       657: spr557 (spr557)
-       658: spr558 (spr558)
-       659: spr559 (spr559)
-       660: spr560 (spr560)
-       661: spr561 (spr561)
-       662: spr562 (spr562)
-       663: spr563 (spr563)
-       664: spr564 (spr564)
-       665: spr565 (spr565)
-       666: spr566 (spr566)
-       667: spr567 (spr567)
-       668: spr568 (spr568)
-       669: spr569 (spr569)
-       670: spr570 (spr570)
-       671: spr571 (spr571)
-       672: spr572 (spr572)
-       673: spr573 (spr573)
-       674: spr574 (spr574)
-       675: spr575 (spr575)
-       676: spr576 (spr576)
-       677: spr577 (spr577)
-       678: spr578 (spr578)
-       679: spr579 (spr579)
-       680: spr580 (spr580)
-       681: spr581 (spr581)
-       682: spr582 (spr582)
-       683: spr583 (spr583)
-       684: spr584 (spr584)
-       685: spr585 (spr585)
-       686: spr586 (spr586)
-       687: spr587 (spr587)
-       688: spr588 (spr588)
-       689: spr589 (spr589)
-       690: spr590 (spr590)
-       691: spr591 (spr591)
-       692: spr592 (spr592)
-       693: spr593 (spr593)
-       694: spr594 (spr594)
-       695: spr595 (spr595)
-       696: spr596 (spr596)
-       697: spr597 (spr597)
-       698: spr598 (spr598)
-       699: spr599 (spr599)
-       700: spr600 (spr600)
-       701: spr601 (spr601)
-       702: spr602 (spr602)
-       703: spr603 (spr603)
-       704: spr604 (spr604)
-       705: spr605 (spr605)
-       706: spr606 (spr606)
-       707: spr607 (spr607)
-       708: spr608 (spr608)
-       709: spr609 (spr609)
-       710: spr610 (spr610)
-       711: spr611 (spr611)
-       712: spr612 (spr612)
-       713: spr613 (spr613)
-       714: spr614 (spr614)
-       715: spr615 (spr615)
-       716: spr616 (spr616)
-       717: spr617 (spr617)
-       718: spr618 (spr618)
-       719: spr619 (spr619)
-       720: spr620 (spr620)
-       721: spr621 (spr621)
-       722: spr622 (spr622)
-       723: spr623 (spr623)
-       724: spr624 (spr624)
-       725: spr625 (spr625)
-       726: spr626 (spr626)
-       727: spr627 (spr627)
-       728: spr628 (spr628)
-       729: spr629 (spr629)
-       730: spr630 (spr630)
-       731: spr631 (spr631)
-       732: spr632 (spr632)
-       733: spr633 (spr633)
-       734: spr634 (spr634)
-       735: spr635 (spr635)
-       736: spr636 (spr636)
-       737: spr637 (spr637)
-       738: spr638 (spr638)
-       739: spr639 (spr639)
-       740: spr640 (spr640)
-       741: spr641 (spr641)
-       742: spr642 (spr642)
-       743: spr643 (spr643)
-       744: spr644 (spr644)
-       745: spr645 (spr645)
-       746: spr646 (spr646)
-       747: spr647 (spr647)
-       748: spr648 (spr648)
-       749: spr649 (spr649)
-       750: spr650 (spr650)
-       751: spr651 (spr651)
-       752: spr652 (spr652)
-       753: spr653 (spr653)
-       754: spr654 (spr654)
-       755: spr655 (spr655)
-       756: spr656 (spr656)
-       757: spr657 (spr657)
-       758: spr658 (spr658)
-       759: spr659 (spr659)
-       760: spr660 (spr660)
-       761: spr661 (spr661)
-       762: spr662 (spr662)
-       763: spr663 (spr663)
-       764: spr664 (spr664)
-       765: spr665 (spr665)
-       766: spr666 (spr666)
-       767: spr667 (spr667)
-       768: spr668 (spr668)
-       769: spr669 (spr669)
-       770: spr670 (spr670)
-       771: spr671 (spr671)
-       772: spr672 (spr672)
-       773: spr673 (spr673)
-       774: spr674 (spr674)
-       775: spr675 (spr675)
-       776: spr676 (spr676)
-       777: spr677 (spr677)
-       778: spr678 (spr678)
-       779: spr679 (spr679)
-       780: spr680 (spr680)
-       781: spr681 (spr681)
-       782: spr682 (spr682)
-       783: spr683 (spr683)
-       784: spr684 (spr684)
-       785: spr685 (spr685)
-       786: spr686 (spr686)
-       787: spr687 (spr687)
-       788: spr688 (spr688)
-       789: spr689 (spr689)
-       790: spr690 (spr690)
-       791: spr691 (spr691)
-       792: spr692 (spr692)
-       793: spr693 (spr693)
-       794: spr694 (spr694)
-       795: spr695 (spr695)
-       796: spr696 (spr696)
-       797: spr697 (spr697)
-       798: spr698 (spr698)
-       799: spr699 (spr699)
-       800: spr700 (spr700)
-       801: spr701 (spr701)
-       802: spr702 (spr702)
-       803: spr703 (spr703)
-       804: spr704 (spr704)
-       805: spr705 (spr705)
-       806: spr706 (spr706)
-       807: spr707 (spr707)
-       808: spr708 (spr708)
-       809: spr709 (spr709)
-       810: spr710 (spr710)
-       811: spr711 (spr711)
-       812: spr712 (spr712)
-       813: spr713 (spr713)
-       814: spr714 (spr714)
-       815: spr715 (spr715)
-       816: spr716 (spr716)
-       817: spr717 (spr717)
-       818: spr718 (spr718)
-       819: spr719 (spr719)
-       820: spr720 (spr720)
-       821: spr721 (spr721)
-       822: spr722 (spr722)
-       823: spr723 (spr723)
-       824: spr724 (spr724)
-       825: spr725 (spr725)
-       826: spr726 (spr726)
-       827: spr727 (spr727)
-       828: spr728 (spr728)
-       829: spr729 (spr729)
-       830: spr730 (spr730)
-       831: spr731 (spr731)
-       832: spr732 (spr732)
-       833: spr733 (spr733)
-       834: spr734 (spr734)
-       835: spr735 (spr735)
-       836: spr736 (spr736)
-       837: spr737 (spr737)
-       838: spr738 (spr738)
-       839: spr739 (spr739)
-       840: spr740 (spr740)
-       841: spr741 (spr741)
-       842: spr742 (spr742)
-       843: spr743 (spr743)
-       844: spr744 (spr744)
-       845: spr745 (spr745)
-       846: spr746 (spr746)
-       847: spr747 (spr747)
-       848: spr748 (spr748)
-       849: spr749 (spr749)
-       850: spr750 (spr750)
-       851: spr751 (spr751)
-       852: spr752 (spr752)
-       853: spr753 (spr753)
-       854: spr754 (spr754)
-       855: spr755 (spr755)
-       856: spr756 (spr756)
-       857: spr757 (spr757)
-       858: spr758 (spr758)
-       859: spr759 (spr759)
-       860: spr760 (spr760)
-       861: spr761 (spr761)
-       862: spr762 (spr762)
-       863: spr763 (spr763)
-       864: spr764 (spr764)
-       865: spr765 (spr765)
-       866: spr766 (spr766)
-       867: spr767 (spr767)
-       868: spr768 (spr768)
-       869: spr769 (spr769)
-       870: spr770 (spr770)
-       871: spr771 (spr771)
-       872: spr772 (spr772)
-       873: spr773 (spr773)
-       874: spr774 (spr774)
-       875: spr775 (spr775)
-       876: spr776 (spr776)
-       877: spr777 (spr777)
-       878: spr778 (spr778)
-       879: spr779 (spr779)
-       880: spr780 (spr780)
-       881: spr781 (spr781)
-       882: spr782 (spr782)
-       883: spr783 (spr783)
-       884: spr784 (spr784)
-       885: spr785 (spr785)
-       886: spr786 (spr786)
-       887: spr787 (spr787)
-       888: spr788 (spr788)
-       889: spr789 (spr789)
-       890: spr790 (spr790)
-       891: spr791 (spr791)
-       892: spr792 (spr792)
-       893: spr793 (spr793)
-       894: spr794 (spr794)
-       895: spr795 (spr795)
-       896: spr796 (spr796)
-       897: spr797 (spr797)
-       898: spr798 (spr798)
-       899: spr799 (spr799)
-       900: spr800 (spr800)
-       901: spr801 (spr801)
-       902: spr802 (spr802)
-       903: spr803 (spr803)
-       904: spr804 (spr804)
-       905: spr805 (spr805)
-       906: spr806 (spr806)
-       907: spr807 (spr807)
-       908: spr808 (spr808)
-       909: spr809 (spr809)
-       910: spr810 (spr810)
-       911: spr811 (spr811)
-       912: spr812 (spr812)
-       913: spr813 (spr813)
-       914: spr814 (spr814)
-       915: spr815 (spr815)
-       916: spr816 (spr816)
-       917: spr817 (spr817)
-       918: spr818 (spr818)
-       919: spr819 (spr819)
-       920: spr820 (spr820)
-       921: spr821 (spr821)
-       922: spr822 (spr822)
-       923: spr823 (spr823)
-       924: spr824 (spr824)
-       925: spr825 (spr825)
-       926: spr826 (spr826)
-       927: spr827 (spr827)
-       928: spr828 (spr828)
-       929: spr829 (spr829)
-       930: spr830 (spr830)
-       931: spr831 (spr831)
-       932: spr832 (spr832)
-       933: spr833 (spr833)
-       934: spr834 (spr834)
-       935: spr835 (spr835)
-       936: spr836 (spr836)
-       937: spr837 (spr837)
-       938: spr838 (spr838)
-       939: spr839 (spr839)
-       940: spr840 (spr840)
-       941: spr841 (spr841)
-       942: spr842 (spr842)
-       943: spr843 (spr843)
-       944: spr844 (spr844)
-       945: spr845 (spr845)
-       946: spr846 (spr846)
-       947: spr847 (spr847)
-       948: spr848 (spr848)
-       949: spr849 (spr849)
-       950: spr850 (spr850)
-       951: spr851 (spr851)
-       952: spr852 (spr852)
-       953: spr853 (spr853)
-       954: spr854 (spr854)
-       955: spr855 (spr855)
-       956: spr856 (spr856)
-       957: spr857 (spr857)
-       958: spr858 (spr858)
-       959: spr859 (spr859)
-       960: spr860 (spr860)
-       961: spr861 (spr861)
-       962: spr862 (spr862)
-       963: spr863 (spr863)
-       964: spr864 (spr864)
-       965: spr865 (spr865)
-       966: spr866 (spr866)
-       967: spr867 (spr867)
-       968: spr868 (spr868)
-       969: spr869 (spr869)
-       970: spr870 (spr870)
-       971: spr871 (spr871)
-       972: spr872 (spr872)
-       973: spr873 (spr873)
-       974: spr874 (spr874)
-       975: spr875 (spr875)
-       976: spr876 (spr876)
-       977: spr877 (spr877)
-       978: spr878 (spr878)
-       979: spr879 (spr879)
-       980: spr880 (spr880)
-       981: spr881 (spr881)
-       982: spr882 (spr882)
-       983: spr883 (spr883)
-       984: spr884 (spr884)
-       985: spr885 (spr885)
-       986: spr886 (spr886)
-       987: spr887 (spr887)
-       988: spr888 (spr888)
-       989: spr889 (spr889)
-       990: spr890 (spr890)
-       991: spr891 (spr891)
-       992: spr892 (spr892)
-       993: spr893 (spr893)
-       994: spr894 (spr894)
-       995: spr895 (spr895)
-       996: spr896 (spr896)
-       997: spr897 (spr897)
-       998: spr898 (spr898)
-       999: spr899 (spr899)
+        70: sr0 (sr0), unsigned 32 bits
+        71: sr1 (sr1), unsigned 32 bits
+        72: sr2 (sr2), unsigned 32 bits
+        73: sr3 (sr3), unsigned 32 bits
+        74: sr4 (sr4), unsigned 32 bits
+        75: sr5 (sr5), unsigned 32 bits
+        76: sr6 (sr6), unsigned 32 bits
+        77: sr7 (sr7), unsigned 32 bits
+        78: sr8 (sr8), unsigned 32 bits
+        79: sr9 (sr9), unsigned 32 bits
+        80: sr10 (sr10), unsigned 32 bits
+        81: sr11 (sr11), unsigned 32 bits
+        82: sr12 (sr12), unsigned 32 bits
+        83: sr13 (sr13), unsigned 32 bits
+        84: sr14 (sr14), unsigned 32 bits
+        85: sr15 (sr15), unsigned 32 bits
+       100: spr0 (spr0), unsigned 32 bits
+       101: spr1 (spr1), unsigned 32 bits
+       102: spr2 (spr2), unsigned 32 bits
+       103: spr3 (spr3), unsigned 32 bits
+       104: spr4 (spr4), unsigned 32 bits
+       105: spr5 (spr5), unsigned 32 bits
+       106: spr6 (spr6), unsigned 32 bits
+       107: spr7 (spr7), unsigned 32 bits
+       108: spr8 (spr8), unsigned 32 bits
+       109: spr9 (spr9), unsigned 32 bits
+       110: spr10 (spr10), unsigned 32 bits
+       111: spr11 (spr11), unsigned 32 bits
+       112: spr12 (spr12), unsigned 32 bits
+       113: spr13 (spr13), unsigned 32 bits
+       114: spr14 (spr14), unsigned 32 bits
+       115: spr15 (spr15), unsigned 32 bits
+       116: spr16 (spr16), unsigned 32 bits
+       117: spr17 (spr17), unsigned 32 bits
+       118: spr18 (spr18), unsigned 32 bits
+       119: spr19 (spr19), unsigned 32 bits
+       120: spr20 (spr20), unsigned 32 bits
+       121: spr21 (spr21), unsigned 32 bits
+       122: spr22 (spr22), unsigned 32 bits
+       123: spr23 (spr23), unsigned 32 bits
+       124: spr24 (spr24), unsigned 32 bits
+       125: spr25 (spr25), unsigned 32 bits
+       126: spr26 (spr26), unsigned 32 bits
+       127: spr27 (spr27), unsigned 32 bits
+       128: spr28 (spr28), unsigned 32 bits
+       129: spr29 (spr29), unsigned 32 bits
+       130: spr30 (spr30), unsigned 32 bits
+       131: spr31 (spr31), unsigned 32 bits
+       132: spr32 (spr32), unsigned 32 bits
+       133: spr33 (spr33), unsigned 32 bits
+       134: spr34 (spr34), unsigned 32 bits
+       135: spr35 (spr35), unsigned 32 bits
+       136: spr36 (spr36), unsigned 32 bits
+       137: spr37 (spr37), unsigned 32 bits
+       138: spr38 (spr38), unsigned 32 bits
+       139: spr39 (spr39), unsigned 32 bits
+       140: spr40 (spr40), unsigned 32 bits
+       141: spr41 (spr41), unsigned 32 bits
+       142: spr42 (spr42), unsigned 32 bits
+       143: spr43 (spr43), unsigned 32 bits
+       144: spr44 (spr44), unsigned 32 bits
+       145: spr45 (spr45), unsigned 32 bits
+       146: spr46 (spr46), unsigned 32 bits
+       147: spr47 (spr47), unsigned 32 bits
+       148: spr48 (spr48), unsigned 32 bits
+       149: spr49 (spr49), unsigned 32 bits
+       150: spr50 (spr50), unsigned 32 bits
+       151: spr51 (spr51), unsigned 32 bits
+       152: spr52 (spr52), unsigned 32 bits
+       153: spr53 (spr53), unsigned 32 bits
+       154: spr54 (spr54), unsigned 32 bits
+       155: spr55 (spr55), unsigned 32 bits
+       156: spr56 (spr56), unsigned 32 bits
+       157: spr57 (spr57), unsigned 32 bits
+       158: spr58 (spr58), unsigned 32 bits
+       159: spr59 (spr59), unsigned 32 bits
+       160: spr60 (spr60), unsigned 32 bits
+       161: spr61 (spr61), unsigned 32 bits
+       162: spr62 (spr62), unsigned 32 bits
+       163: spr63 (spr63), unsigned 32 bits
+       164: spr64 (spr64), unsigned 32 bits
+       165: spr65 (spr65), unsigned 32 bits
+       166: spr66 (spr66), unsigned 32 bits
+       167: spr67 (spr67), unsigned 32 bits
+       168: spr68 (spr68), unsigned 32 bits
+       169: spr69 (spr69), unsigned 32 bits
+       170: spr70 (spr70), unsigned 32 bits
+       171: spr71 (spr71), unsigned 32 bits
+       172: spr72 (spr72), unsigned 32 bits
+       173: spr73 (spr73), unsigned 32 bits
+       174: spr74 (spr74), unsigned 32 bits
+       175: spr75 (spr75), unsigned 32 bits
+       176: spr76 (spr76), unsigned 32 bits
+       177: spr77 (spr77), unsigned 32 bits
+       178: spr78 (spr78), unsigned 32 bits
+       179: spr79 (spr79), unsigned 32 bits
+       180: spr80 (spr80), unsigned 32 bits
+       181: spr81 (spr81), unsigned 32 bits
+       182: spr82 (spr82), unsigned 32 bits
+       183: spr83 (spr83), unsigned 32 bits
+       184: spr84 (spr84), unsigned 32 bits
+       185: spr85 (spr85), unsigned 32 bits
+       186: spr86 (spr86), unsigned 32 bits
+       187: spr87 (spr87), unsigned 32 bits
+       188: spr88 (spr88), unsigned 32 bits
+       189: spr89 (spr89), unsigned 32 bits
+       190: spr90 (spr90), unsigned 32 bits
+       191: spr91 (spr91), unsigned 32 bits
+       192: spr92 (spr92), unsigned 32 bits
+       193: spr93 (spr93), unsigned 32 bits
+       194: spr94 (spr94), unsigned 32 bits
+       195: spr95 (spr95), unsigned 32 bits
+       196: spr96 (spr96), unsigned 32 bits
+       197: spr97 (spr97), unsigned 32 bits
+       198: spr98 (spr98), unsigned 32 bits
+       199: spr99 (spr99), unsigned 32 bits
+       200: spr100 (spr100), unsigned 32 bits
+       201: spr101 (spr101), unsigned 32 bits
+       202: spr102 (spr102), unsigned 32 bits
+       203: spr103 (spr103), unsigned 32 bits
+       204: spr104 (spr104), unsigned 32 bits
+       205: spr105 (spr105), unsigned 32 bits
+       206: spr106 (spr106), unsigned 32 bits
+       207: spr107 (spr107), unsigned 32 bits
+       208: spr108 (spr108), unsigned 32 bits
+       209: spr109 (spr109), unsigned 32 bits
+       210: spr110 (spr110), unsigned 32 bits
+       211: spr111 (spr111), unsigned 32 bits
+       212: spr112 (spr112), unsigned 32 bits
+       213: spr113 (spr113), unsigned 32 bits
+       214: spr114 (spr114), unsigned 32 bits
+       215: spr115 (spr115), unsigned 32 bits
+       216: spr116 (spr116), unsigned 32 bits
+       217: spr117 (spr117), unsigned 32 bits
+       218: spr118 (spr118), unsigned 32 bits
+       219: spr119 (spr119), unsigned 32 bits
+       220: spr120 (spr120), unsigned 32 bits
+       221: spr121 (spr121), unsigned 32 bits
+       222: spr122 (spr122), unsigned 32 bits
+       223: spr123 (spr123), unsigned 32 bits
+       224: spr124 (spr124), unsigned 32 bits
+       225: spr125 (spr125), unsigned 32 bits
+       226: spr126 (spr126), unsigned 32 bits
+       227: spr127 (spr127), unsigned 32 bits
+       228: spr128 (spr128), unsigned 32 bits
+       229: spr129 (spr129), unsigned 32 bits
+       230: spr130 (spr130), unsigned 32 bits
+       231: spr131 (spr131), unsigned 32 bits
+       232: spr132 (spr132), unsigned 32 bits
+       233: spr133 (spr133), unsigned 32 bits
+       234: spr134 (spr134), unsigned 32 bits
+       235: spr135 (spr135), unsigned 32 bits
+       236: spr136 (spr136), unsigned 32 bits
+       237: spr137 (spr137), unsigned 32 bits
+       238: spr138 (spr138), unsigned 32 bits
+       239: spr139 (spr139), unsigned 32 bits
+       240: spr140 (spr140), unsigned 32 bits
+       241: spr141 (spr141), unsigned 32 bits
+       242: spr142 (spr142), unsigned 32 bits
+       243: spr143 (spr143), unsigned 32 bits
+       244: spr144 (spr144), unsigned 32 bits
+       245: spr145 (spr145), unsigned 32 bits
+       246: spr146 (spr146), unsigned 32 bits
+       247: spr147 (spr147), unsigned 32 bits
+       248: spr148 (spr148), unsigned 32 bits
+       249: spr149 (spr149), unsigned 32 bits
+       250: spr150 (spr150), unsigned 32 bits
+       251: spr151 (spr151), unsigned 32 bits
+       252: spr152 (spr152), unsigned 32 bits
+       253: spr153 (spr153), unsigned 32 bits
+       254: spr154 (spr154), unsigned 32 bits
+       255: spr155 (spr155), unsigned 32 bits
+       256: spr156 (spr156), unsigned 32 bits
+       257: spr157 (spr157), unsigned 32 bits
+       258: spr158 (spr158), unsigned 32 bits
+       259: spr159 (spr159), unsigned 32 bits
+       260: spr160 (spr160), unsigned 32 bits
+       261: spr161 (spr161), unsigned 32 bits
+       262: spr162 (spr162), unsigned 32 bits
+       263: spr163 (spr163), unsigned 32 bits
+       264: spr164 (spr164), unsigned 32 bits
+       265: spr165 (spr165), unsigned 32 bits
+       266: spr166 (spr166), unsigned 32 bits
+       267: spr167 (spr167), unsigned 32 bits
+       268: spr168 (spr168), unsigned 32 bits
+       269: spr169 (spr169), unsigned 32 bits
+       270: spr170 (spr170), unsigned 32 bits
+       271: spr171 (spr171), unsigned 32 bits
+       272: spr172 (spr172), unsigned 32 bits
+       273: spr173 (spr173), unsigned 32 bits
+       274: spr174 (spr174), unsigned 32 bits
+       275: spr175 (spr175), unsigned 32 bits
+       276: spr176 (spr176), unsigned 32 bits
+       277: spr177 (spr177), unsigned 32 bits
+       278: spr178 (spr178), unsigned 32 bits
+       279: spr179 (spr179), unsigned 32 bits
+       280: spr180 (spr180), unsigned 32 bits
+       281: spr181 (spr181), unsigned 32 bits
+       282: spr182 (spr182), unsigned 32 bits
+       283: spr183 (spr183), unsigned 32 bits
+       284: spr184 (spr184), unsigned 32 bits
+       285: spr185 (spr185), unsigned 32 bits
+       286: spr186 (spr186), unsigned 32 bits
+       287: spr187 (spr187), unsigned 32 bits
+       288: spr188 (spr188), unsigned 32 bits
+       289: spr189 (spr189), unsigned 32 bits
+       290: spr190 (spr190), unsigned 32 bits
+       291: spr191 (spr191), unsigned 32 bits
+       292: spr192 (spr192), unsigned 32 bits
+       293: spr193 (spr193), unsigned 32 bits
+       294: spr194 (spr194), unsigned 32 bits
+       295: spr195 (spr195), unsigned 32 bits
+       296: spr196 (spr196), unsigned 32 bits
+       297: spr197 (spr197), unsigned 32 bits
+       298: spr198 (spr198), unsigned 32 bits
+       299: spr199 (spr199), unsigned 32 bits
+       300: spr200 (spr200), unsigned 32 bits
+       301: spr201 (spr201), unsigned 32 bits
+       302: spr202 (spr202), unsigned 32 bits
+       303: spr203 (spr203), unsigned 32 bits
+       304: spr204 (spr204), unsigned 32 bits
+       305: spr205 (spr205), unsigned 32 bits
+       306: spr206 (spr206), unsigned 32 bits
+       307: spr207 (spr207), unsigned 32 bits
+       308: spr208 (spr208), unsigned 32 bits
+       309: spr209 (spr209), unsigned 32 bits
+       310: spr210 (spr210), unsigned 32 bits
+       311: spr211 (spr211), unsigned 32 bits
+       312: spr212 (spr212), unsigned 32 bits
+       313: spr213 (spr213), unsigned 32 bits
+       314: spr214 (spr214), unsigned 32 bits
+       315: spr215 (spr215), unsigned 32 bits
+       316: spr216 (spr216), unsigned 32 bits
+       317: spr217 (spr217), unsigned 32 bits
+       318: spr218 (spr218), unsigned 32 bits
+       319: spr219 (spr219), unsigned 32 bits
+       320: spr220 (spr220), unsigned 32 bits
+       321: spr221 (spr221), unsigned 32 bits
+       322: spr222 (spr222), unsigned 32 bits
+       323: spr223 (spr223), unsigned 32 bits
+       324: spr224 (spr224), unsigned 32 bits
+       325: spr225 (spr225), unsigned 32 bits
+       326: spr226 (spr226), unsigned 32 bits
+       327: spr227 (spr227), unsigned 32 bits
+       328: spr228 (spr228), unsigned 32 bits
+       329: spr229 (spr229), unsigned 32 bits
+       330: spr230 (spr230), unsigned 32 bits
+       331: spr231 (spr231), unsigned 32 bits
+       332: spr232 (spr232), unsigned 32 bits
+       333: spr233 (spr233), unsigned 32 bits
+       334: spr234 (spr234), unsigned 32 bits
+       335: spr235 (spr235), unsigned 32 bits
+       336: spr236 (spr236), unsigned 32 bits
+       337: spr237 (spr237), unsigned 32 bits
+       338: spr238 (spr238), unsigned 32 bits
+       339: spr239 (spr239), unsigned 32 bits
+       340: spr240 (spr240), unsigned 32 bits
+       341: spr241 (spr241), unsigned 32 bits
+       342: spr242 (spr242), unsigned 32 bits
+       343: spr243 (spr243), unsigned 32 bits
+       344: spr244 (spr244), unsigned 32 bits
+       345: spr245 (spr245), unsigned 32 bits
+       346: spr246 (spr246), unsigned 32 bits
+       347: spr247 (spr247), unsigned 32 bits
+       348: spr248 (spr248), unsigned 32 bits
+       349: spr249 (spr249), unsigned 32 bits
+       350: spr250 (spr250), unsigned 32 bits
+       351: spr251 (spr251), unsigned 32 bits
+       352: spr252 (spr252), unsigned 32 bits
+       353: spr253 (spr253), unsigned 32 bits
+       354: spr254 (spr254), unsigned 32 bits
+       355: spr255 (spr255), unsigned 32 bits
+       356: spr256 (spr256), unsigned 32 bits
+       357: spr257 (spr257), unsigned 32 bits
+       358: spr258 (spr258), unsigned 32 bits
+       359: spr259 (spr259), unsigned 32 bits
+       360: spr260 (spr260), unsigned 32 bits
+       361: spr261 (spr261), unsigned 32 bits
+       362: spr262 (spr262), unsigned 32 bits
+       363: spr263 (spr263), unsigned 32 bits
+       364: spr264 (spr264), unsigned 32 bits
+       365: spr265 (spr265), unsigned 32 bits
+       366: spr266 (spr266), unsigned 32 bits
+       367: spr267 (spr267), unsigned 32 bits
+       368: spr268 (spr268), unsigned 32 bits
+       369: spr269 (spr269), unsigned 32 bits
+       370: spr270 (spr270), unsigned 32 bits
+       371: spr271 (spr271), unsigned 32 bits
+       372: spr272 (spr272), unsigned 32 bits
+       373: spr273 (spr273), unsigned 32 bits
+       374: spr274 (spr274), unsigned 32 bits
+       375: spr275 (spr275), unsigned 32 bits
+       376: spr276 (spr276), unsigned 32 bits
+       377: spr277 (spr277), unsigned 32 bits
+       378: spr278 (spr278), unsigned 32 bits
+       379: spr279 (spr279), unsigned 32 bits
+       380: spr280 (spr280), unsigned 32 bits
+       381: spr281 (spr281), unsigned 32 bits
+       382: spr282 (spr282), unsigned 32 bits
+       383: spr283 (spr283), unsigned 32 bits
+       384: spr284 (spr284), unsigned 32 bits
+       385: spr285 (spr285), unsigned 32 bits
+       386: spr286 (spr286), unsigned 32 bits
+       387: spr287 (spr287), unsigned 32 bits
+       388: spr288 (spr288), unsigned 32 bits
+       389: spr289 (spr289), unsigned 32 bits
+       390: spr290 (spr290), unsigned 32 bits
+       391: spr291 (spr291), unsigned 32 bits
+       392: spr292 (spr292), unsigned 32 bits
+       393: spr293 (spr293), unsigned 32 bits
+       394: spr294 (spr294), unsigned 32 bits
+       395: spr295 (spr295), unsigned 32 bits
+       396: spr296 (spr296), unsigned 32 bits
+       397: spr297 (spr297), unsigned 32 bits
+       398: spr298 (spr298), unsigned 32 bits
+       399: spr299 (spr299), unsigned 32 bits
+       400: spr300 (spr300), unsigned 32 bits
+       401: spr301 (spr301), unsigned 32 bits
+       402: spr302 (spr302), unsigned 32 bits
+       403: spr303 (spr303), unsigned 32 bits
+       404: spr304 (spr304), unsigned 32 bits
+       405: spr305 (spr305), unsigned 32 bits
+       406: spr306 (spr306), unsigned 32 bits
+       407: spr307 (spr307), unsigned 32 bits
+       408: spr308 (spr308), unsigned 32 bits
+       409: spr309 (spr309), unsigned 32 bits
+       410: spr310 (spr310), unsigned 32 bits
+       411: spr311 (spr311), unsigned 32 bits
+       412: spr312 (spr312), unsigned 32 bits
+       413: spr313 (spr313), unsigned 32 bits
+       414: spr314 (spr314), unsigned 32 bits
+       415: spr315 (spr315), unsigned 32 bits
+       416: spr316 (spr316), unsigned 32 bits
+       417: spr317 (spr317), unsigned 32 bits
+       418: spr318 (spr318), unsigned 32 bits
+       419: spr319 (spr319), unsigned 32 bits
+       420: spr320 (spr320), unsigned 32 bits
+       421: spr321 (spr321), unsigned 32 bits
+       422: spr322 (spr322), unsigned 32 bits
+       423: spr323 (spr323), unsigned 32 bits
+       424: spr324 (spr324), unsigned 32 bits
+       425: spr325 (spr325), unsigned 32 bits
+       426: spr326 (spr326), unsigned 32 bits
+       427: spr327 (spr327), unsigned 32 bits
+       428: spr328 (spr328), unsigned 32 bits
+       429: spr329 (spr329), unsigned 32 bits
+       430: spr330 (spr330), unsigned 32 bits
+       431: spr331 (spr331), unsigned 32 bits
+       432: spr332 (spr332), unsigned 32 bits
+       433: spr333 (spr333), unsigned 32 bits
+       434: spr334 (spr334), unsigned 32 bits
+       435: spr335 (spr335), unsigned 32 bits
+       436: spr336 (spr336), unsigned 32 bits
+       437: spr337 (spr337), unsigned 32 bits
+       438: spr338 (spr338), unsigned 32 bits
+       439: spr339 (spr339), unsigned 32 bits
+       440: spr340 (spr340), unsigned 32 bits
+       441: spr341 (spr341), unsigned 32 bits
+       442: spr342 (spr342), unsigned 32 bits
+       443: spr343 (spr343), unsigned 32 bits
+       444: spr344 (spr344), unsigned 32 bits
+       445: spr345 (spr345), unsigned 32 bits
+       446: spr346 (spr346), unsigned 32 bits
+       447: spr347 (spr347), unsigned 32 bits
+       448: spr348 (spr348), unsigned 32 bits
+       449: spr349 (spr349), unsigned 32 bits
+       450: spr350 (spr350), unsigned 32 bits
+       451: spr351 (spr351), unsigned 32 bits
+       452: spr352 (spr352), unsigned 32 bits
+       453: spr353 (spr353), unsigned 32 bits
+       454: spr354 (spr354), unsigned 32 bits
+       455: spr355 (spr355), unsigned 32 bits
+       456: spr356 (spr356), unsigned 32 bits
+       457: spr357 (spr357), unsigned 32 bits
+       458: spr358 (spr358), unsigned 32 bits
+       459: spr359 (spr359), unsigned 32 bits
+       460: spr360 (spr360), unsigned 32 bits
+       461: spr361 (spr361), unsigned 32 bits
+       462: spr362 (spr362), unsigned 32 bits
+       463: spr363 (spr363), unsigned 32 bits
+       464: spr364 (spr364), unsigned 32 bits
+       465: spr365 (spr365), unsigned 32 bits
+       466: spr366 (spr366), unsigned 32 bits
+       467: spr367 (spr367), unsigned 32 bits
+       468: spr368 (spr368), unsigned 32 bits
+       469: spr369 (spr369), unsigned 32 bits
+       470: spr370 (spr370), unsigned 32 bits
+       471: spr371 (spr371), unsigned 32 bits
+       472: spr372 (spr372), unsigned 32 bits
+       473: spr373 (spr373), unsigned 32 bits
+       474: spr374 (spr374), unsigned 32 bits
+       475: spr375 (spr375), unsigned 32 bits
+       476: spr376 (spr376), unsigned 32 bits
+       477: spr377 (spr377), unsigned 32 bits
+       478: spr378 (spr378), unsigned 32 bits
+       479: spr379 (spr379), unsigned 32 bits
+       480: spr380 (spr380), unsigned 32 bits
+       481: spr381 (spr381), unsigned 32 bits
+       482: spr382 (spr382), unsigned 32 bits
+       483: spr383 (spr383), unsigned 32 bits
+       484: spr384 (spr384), unsigned 32 bits
+       485: spr385 (spr385), unsigned 32 bits
+       486: spr386 (spr386), unsigned 32 bits
+       487: spr387 (spr387), unsigned 32 bits
+       488: spr388 (spr388), unsigned 32 bits
+       489: spr389 (spr389), unsigned 32 bits
+       490: spr390 (spr390), unsigned 32 bits
+       491: spr391 (spr391), unsigned 32 bits
+       492: spr392 (spr392), unsigned 32 bits
+       493: spr393 (spr393), unsigned 32 bits
+       494: spr394 (spr394), unsigned 32 bits
+       495: spr395 (spr395), unsigned 32 bits
+       496: spr396 (spr396), unsigned 32 bits
+       497: spr397 (spr397), unsigned 32 bits
+       498: spr398 (spr398), unsigned 32 bits
+       499: spr399 (spr399), unsigned 32 bits
+       500: spr400 (spr400), unsigned 32 bits
+       501: spr401 (spr401), unsigned 32 bits
+       502: spr402 (spr402), unsigned 32 bits
+       503: spr403 (spr403), unsigned 32 bits
+       504: spr404 (spr404), unsigned 32 bits
+       505: spr405 (spr405), unsigned 32 bits
+       506: spr406 (spr406), unsigned 32 bits
+       507: spr407 (spr407), unsigned 32 bits
+       508: spr408 (spr408), unsigned 32 bits
+       509: spr409 (spr409), unsigned 32 bits
+       510: spr410 (spr410), unsigned 32 bits
+       511: spr411 (spr411), unsigned 32 bits
+       512: spr412 (spr412), unsigned 32 bits
+       513: spr413 (spr413), unsigned 32 bits
+       514: spr414 (spr414), unsigned 32 bits
+       515: spr415 (spr415), unsigned 32 bits
+       516: spr416 (spr416), unsigned 32 bits
+       517: spr417 (spr417), unsigned 32 bits
+       518: spr418 (spr418), unsigned 32 bits
+       519: spr419 (spr419), unsigned 32 bits
+       520: spr420 (spr420), unsigned 32 bits
+       521: spr421 (spr421), unsigned 32 bits
+       522: spr422 (spr422), unsigned 32 bits
+       523: spr423 (spr423), unsigned 32 bits
+       524: spr424 (spr424), unsigned 32 bits
+       525: spr425 (spr425), unsigned 32 bits
+       526: spr426 (spr426), unsigned 32 bits
+       527: spr427 (spr427), unsigned 32 bits
+       528: spr428 (spr428), unsigned 32 bits
+       529: spr429 (spr429), unsigned 32 bits
+       530: spr430 (spr430), unsigned 32 bits
+       531: spr431 (spr431), unsigned 32 bits
+       532: spr432 (spr432), unsigned 32 bits
+       533: spr433 (spr433), unsigned 32 bits
+       534: spr434 (spr434), unsigned 32 bits
+       535: spr435 (spr435), unsigned 32 bits
+       536: spr436 (spr436), unsigned 32 bits
+       537: spr437 (spr437), unsigned 32 bits
+       538: spr438 (spr438), unsigned 32 bits
+       539: spr439 (spr439), unsigned 32 bits
+       540: spr440 (spr440), unsigned 32 bits
+       541: spr441 (spr441), unsigned 32 bits
+       542: spr442 (spr442), unsigned 32 bits
+       543: spr443 (spr443), unsigned 32 bits
+       544: spr444 (spr444), unsigned 32 bits
+       545: spr445 (spr445), unsigned 32 bits
+       546: spr446 (spr446), unsigned 32 bits
+       547: spr447 (spr447), unsigned 32 bits
+       548: spr448 (spr448), unsigned 32 bits
+       549: spr449 (spr449), unsigned 32 bits
+       550: spr450 (spr450), unsigned 32 bits
+       551: spr451 (spr451), unsigned 32 bits
+       552: spr452 (spr452), unsigned 32 bits
+       553: spr453 (spr453), unsigned 32 bits
+       554: spr454 (spr454), unsigned 32 bits
+       555: spr455 (spr455), unsigned 32 bits
+       556: spr456 (spr456), unsigned 32 bits
+       557: spr457 (spr457), unsigned 32 bits
+       558: spr458 (spr458), unsigned 32 bits
+       559: spr459 (spr459), unsigned 32 bits
+       560: spr460 (spr460), unsigned 32 bits
+       561: spr461 (spr461), unsigned 32 bits
+       562: spr462 (spr462), unsigned 32 bits
+       563: spr463 (spr463), unsigned 32 bits
+       564: spr464 (spr464), unsigned 32 bits
+       565: spr465 (spr465), unsigned 32 bits
+       566: spr466 (spr466), unsigned 32 bits
+       567: spr467 (spr467), unsigned 32 bits
+       568: spr468 (spr468), unsigned 32 bits
+       569: spr469 (spr469), unsigned 32 bits
+       570: spr470 (spr470), unsigned 32 bits
+       571: spr471 (spr471), unsigned 32 bits
+       572: spr472 (spr472), unsigned 32 bits
+       573: spr473 (spr473), unsigned 32 bits
+       574: spr474 (spr474), unsigned 32 bits
+       575: spr475 (spr475), unsigned 32 bits
+       576: spr476 (spr476), unsigned 32 bits
+       577: spr477 (spr477), unsigned 32 bits
+       578: spr478 (spr478), unsigned 32 bits
+       579: spr479 (spr479), unsigned 32 bits
+       580: spr480 (spr480), unsigned 32 bits
+       581: spr481 (spr481), unsigned 32 bits
+       582: spr482 (spr482), unsigned 32 bits
+       583: spr483 (spr483), unsigned 32 bits
+       584: spr484 (spr484), unsigned 32 bits
+       585: spr485 (spr485), unsigned 32 bits
+       586: spr486 (spr486), unsigned 32 bits
+       587: spr487 (spr487), unsigned 32 bits
+       588: spr488 (spr488), unsigned 32 bits
+       589: spr489 (spr489), unsigned 32 bits
+       590: spr490 (spr490), unsigned 32 bits
+       591: spr491 (spr491), unsigned 32 bits
+       592: spr492 (spr492), unsigned 32 bits
+       593: spr493 (spr493), unsigned 32 bits
+       594: spr494 (spr494), unsigned 32 bits
+       595: spr495 (spr495), unsigned 32 bits
+       596: spr496 (spr496), unsigned 32 bits
+       597: spr497 (spr497), unsigned 32 bits
+       598: spr498 (spr498), unsigned 32 bits
+       599: spr499 (spr499), unsigned 32 bits
+       600: spr500 (spr500), unsigned 32 bits
+       601: spr501 (spr501), unsigned 32 bits
+       602: spr502 (spr502), unsigned 32 bits
+       603: spr503 (spr503), unsigned 32 bits
+       604: spr504 (spr504), unsigned 32 bits
+       605: spr505 (spr505), unsigned 32 bits
+       606: spr506 (spr506), unsigned 32 bits
+       607: spr507 (spr507), unsigned 32 bits
+       608: spr508 (spr508), unsigned 32 bits
+       609: spr509 (spr509), unsigned 32 bits
+       610: spr510 (spr510), unsigned 32 bits
+       611: spr511 (spr511), unsigned 32 bits
+       612: spr512 (spr512), unsigned 32 bits
+       613: spr513 (spr513), unsigned 32 bits
+       614: spr514 (spr514), unsigned 32 bits
+       615: spr515 (spr515), unsigned 32 bits
+       616: spr516 (spr516), unsigned 32 bits
+       617: spr517 (spr517), unsigned 32 bits
+       618: spr518 (spr518), unsigned 32 bits
+       619: spr519 (spr519), unsigned 32 bits
+       620: spr520 (spr520), unsigned 32 bits
+       621: spr521 (spr521), unsigned 32 bits
+       622: spr522 (spr522), unsigned 32 bits
+       623: spr523 (spr523), unsigned 32 bits
+       624: spr524 (spr524), unsigned 32 bits
+       625: spr525 (spr525), unsigned 32 bits
+       626: spr526 (spr526), unsigned 32 bits
+       627: spr527 (spr527), unsigned 32 bits
+       628: spr528 (spr528), unsigned 32 bits
+       629: spr529 (spr529), unsigned 32 bits
+       630: spr530 (spr530), unsigned 32 bits
+       631: spr531 (spr531), unsigned 32 bits
+       632: spr532 (spr532), unsigned 32 bits
+       633: spr533 (spr533), unsigned 32 bits
+       634: spr534 (spr534), unsigned 32 bits
+       635: spr535 (spr535), unsigned 32 bits
+       636: spr536 (spr536), unsigned 32 bits
+       637: spr537 (spr537), unsigned 32 bits
+       638: spr538 (spr538), unsigned 32 bits
+       639: spr539 (spr539), unsigned 32 bits
+       640: spr540 (spr540), unsigned 32 bits
+       641: spr541 (spr541), unsigned 32 bits
+       642: spr542 (spr542), unsigned 32 bits
+       643: spr543 (spr543), unsigned 32 bits
+       644: spr544 (spr544), unsigned 32 bits
+       645: spr545 (spr545), unsigned 32 bits
+       646: spr546 (spr546), unsigned 32 bits
+       647: spr547 (spr547), unsigned 32 bits
+       648: spr548 (spr548), unsigned 32 bits
+       649: spr549 (spr549), unsigned 32 bits
+       650: spr550 (spr550), unsigned 32 bits
+       651: spr551 (spr551), unsigned 32 bits
+       652: spr552 (spr552), unsigned 32 bits
+       653: spr553 (spr553), unsigned 32 bits
+       654: spr554 (spr554), unsigned 32 bits
+       655: spr555 (spr555), unsigned 32 bits
+       656: spr556 (spr556), unsigned 32 bits
+       657: spr557 (spr557), unsigned 32 bits
+       658: spr558 (spr558), unsigned 32 bits
+       659: spr559 (spr559), unsigned 32 bits
+       660: spr560 (spr560), unsigned 32 bits
+       661: spr561 (spr561), unsigned 32 bits
+       662: spr562 (spr562), unsigned 32 bits
+       663: spr563 (spr563), unsigned 32 bits
+       664: spr564 (spr564), unsigned 32 bits
+       665: spr565 (spr565), unsigned 32 bits
+       666: spr566 (spr566), unsigned 32 bits
+       667: spr567 (spr567), unsigned 32 bits
+       668: spr568 (spr568), unsigned 32 bits
+       669: spr569 (spr569), unsigned 32 bits
+       670: spr570 (spr570), unsigned 32 bits
+       671: spr571 (spr571), unsigned 32 bits
+       672: spr572 (spr572), unsigned 32 bits
+       673: spr573 (spr573), unsigned 32 bits
+       674: spr574 (spr574), unsigned 32 bits
+       675: spr575 (spr575), unsigned 32 bits
+       676: spr576 (spr576), unsigned 32 bits
+       677: spr577 (spr577), unsigned 32 bits
+       678: spr578 (spr578), unsigned 32 bits
+       679: spr579 (spr579), unsigned 32 bits
+       680: spr580 (spr580), unsigned 32 bits
+       681: spr581 (spr581), unsigned 32 bits
+       682: spr582 (spr582), unsigned 32 bits
+       683: spr583 (spr583), unsigned 32 bits
+       684: spr584 (spr584), unsigned 32 bits
+       685: spr585 (spr585), unsigned 32 bits
+       686: spr586 (spr586), unsigned 32 bits
+       687: spr587 (spr587), unsigned 32 bits
+       688: spr588 (spr588), unsigned 32 bits
+       689: spr589 (spr589), unsigned 32 bits
+       690: spr590 (spr590), unsigned 32 bits
+       691: spr591 (spr591), unsigned 32 bits
+       692: spr592 (spr592), unsigned 32 bits
+       693: spr593 (spr593), unsigned 32 bits
+       694: spr594 (spr594), unsigned 32 bits
+       695: spr595 (spr595), unsigned 32 bits
+       696: spr596 (spr596), unsigned 32 bits
+       697: spr597 (spr597), unsigned 32 bits
+       698: spr598 (spr598), unsigned 32 bits
+       699: spr599 (spr599), unsigned 32 bits
+       700: spr600 (spr600), unsigned 32 bits
+       701: spr601 (spr601), unsigned 32 bits
+       702: spr602 (spr602), unsigned 32 bits
+       703: spr603 (spr603), unsigned 32 bits
+       704: spr604 (spr604), unsigned 32 bits
+       705: spr605 (spr605), unsigned 32 bits
+       706: spr606 (spr606), unsigned 32 bits
+       707: spr607 (spr607), unsigned 32 bits
+       708: spr608 (spr608), unsigned 32 bits
+       709: spr609 (spr609), unsigned 32 bits
+       710: spr610 (spr610), unsigned 32 bits
+       711: spr611 (spr611), unsigned 32 bits
+       712: spr612 (spr612), unsigned 32 bits
+       713: spr613 (spr613), unsigned 32 bits
+       714: spr614 (spr614), unsigned 32 bits
+       715: spr615 (spr615), unsigned 32 bits
+       716: spr616 (spr616), unsigned 32 bits
+       717: spr617 (spr617), unsigned 32 bits
+       718: spr618 (spr618), unsigned 32 bits
+       719: spr619 (spr619), unsigned 32 bits
+       720: spr620 (spr620), unsigned 32 bits
+       721: spr621 (spr621), unsigned 32 bits
+       722: spr622 (spr622), unsigned 32 bits
+       723: spr623 (spr623), unsigned 32 bits
+       724: spr624 (spr624), unsigned 32 bits
+       725: spr625 (spr625), unsigned 32 bits
+       726: spr626 (spr626), unsigned 32 bits
+       727: spr627 (spr627), unsigned 32 bits
+       728: spr628 (spr628), unsigned 32 bits
+       729: spr629 (spr629), unsigned 32 bits
+       730: spr630 (spr630), unsigned 32 bits
+       731: spr631 (spr631), unsigned 32 bits
+       732: spr632 (spr632), unsigned 32 bits
+       733: spr633 (spr633), unsigned 32 bits
+       734: spr634 (spr634), unsigned 32 bits
+       735: spr635 (spr635), unsigned 32 bits
+       736: spr636 (spr636), unsigned 32 bits
+       737: spr637 (spr637), unsigned 32 bits
+       738: spr638 (spr638), unsigned 32 bits
+       739: spr639 (spr639), unsigned 32 bits
+       740: spr640 (spr640), unsigned 32 bits
+       741: spr641 (spr641), unsigned 32 bits
+       742: spr642 (spr642), unsigned 32 bits
+       743: spr643 (spr643), unsigned 32 bits
+       744: spr644 (spr644), unsigned 32 bits
+       745: spr645 (spr645), unsigned 32 bits
+       746: spr646 (spr646), unsigned 32 bits
+       747: spr647 (spr647), unsigned 32 bits
+       748: spr648 (spr648), unsigned 32 bits
+       749: spr649 (spr649), unsigned 32 bits
+       750: spr650 (spr650), unsigned 32 bits
+       751: spr651 (spr651), unsigned 32 bits
+       752: spr652 (spr652), unsigned 32 bits
+       753: spr653 (spr653), unsigned 32 bits
+       754: spr654 (spr654), unsigned 32 bits
+       755: spr655 (spr655), unsigned 32 bits
+       756: spr656 (spr656), unsigned 32 bits
+       757: spr657 (spr657), unsigned 32 bits
+       758: spr658 (spr658), unsigned 32 bits
+       759: spr659 (spr659), unsigned 32 bits
+       760: spr660 (spr660), unsigned 32 bits
+       761: spr661 (spr661), unsigned 32 bits
+       762: spr662 (spr662), unsigned 32 bits
+       763: spr663 (spr663), unsigned 32 bits
+       764: spr664 (spr664), unsigned 32 bits
+       765: spr665 (spr665), unsigned 32 bits
+       766: spr666 (spr666), unsigned 32 bits
+       767: spr667 (spr667), unsigned 32 bits
+       768: spr668 (spr668), unsigned 32 bits
+       769: spr669 (spr669), unsigned 32 bits
+       770: spr670 (spr670), unsigned 32 bits
+       771: spr671 (spr671), unsigned 32 bits
+       772: spr672 (spr672), unsigned 32 bits
+       773: spr673 (spr673), unsigned 32 bits
+       774: spr674 (spr674), unsigned 32 bits
+       775: spr675 (spr675), unsigned 32 bits
+       776: spr676 (spr676), unsigned 32 bits
+       777: spr677 (spr677), unsigned 32 bits
+       778: spr678 (spr678), unsigned 32 bits
+       779: spr679 (spr679), unsigned 32 bits
+       780: spr680 (spr680), unsigned 32 bits
+       781: spr681 (spr681), unsigned 32 bits
+       782: spr682 (spr682), unsigned 32 bits
+       783: spr683 (spr683), unsigned 32 bits
+       784: spr684 (spr684), unsigned 32 bits
+       785: spr685 (spr685), unsigned 32 bits
+       786: spr686 (spr686), unsigned 32 bits
+       787: spr687 (spr687), unsigned 32 bits
+       788: spr688 (spr688), unsigned 32 bits
+       789: spr689 (spr689), unsigned 32 bits
+       790: spr690 (spr690), unsigned 32 bits
+       791: spr691 (spr691), unsigned 32 bits
+       792: spr692 (spr692), unsigned 32 bits
+       793: spr693 (spr693), unsigned 32 bits
+       794: spr694 (spr694), unsigned 32 bits
+       795: spr695 (spr695), unsigned 32 bits
+       796: spr696 (spr696), unsigned 32 bits
+       797: spr697 (spr697), unsigned 32 bits
+       798: spr698 (spr698), unsigned 32 bits
+       799: spr699 (spr699), unsigned 32 bits
+       800: spr700 (spr700), unsigned 32 bits
+       801: spr701 (spr701), unsigned 32 bits
+       802: spr702 (spr702), unsigned 32 bits
+       803: spr703 (spr703), unsigned 32 bits
+       804: spr704 (spr704), unsigned 32 bits
+       805: spr705 (spr705), unsigned 32 bits
+       806: spr706 (spr706), unsigned 32 bits
+       807: spr707 (spr707), unsigned 32 bits
+       808: spr708 (spr708), unsigned 32 bits
+       809: spr709 (spr709), unsigned 32 bits
+       810: spr710 (spr710), unsigned 32 bits
+       811: spr711 (spr711), unsigned 32 bits
+       812: spr712 (spr712), unsigned 32 bits
+       813: spr713 (spr713), unsigned 32 bits
+       814: spr714 (spr714), unsigned 32 bits
+       815: spr715 (spr715), unsigned 32 bits
+       816: spr716 (spr716), unsigned 32 bits
+       817: spr717 (spr717), unsigned 32 bits
+       818: spr718 (spr718), unsigned 32 bits
+       819: spr719 (spr719), unsigned 32 bits
+       820: spr720 (spr720), unsigned 32 bits
+       821: spr721 (spr721), unsigned 32 bits
+       822: spr722 (spr722), unsigned 32 bits
+       823: spr723 (spr723), unsigned 32 bits
+       824: spr724 (spr724), unsigned 32 bits
+       825: spr725 (spr725), unsigned 32 bits
+       826: spr726 (spr726), unsigned 32 bits
+       827: spr727 (spr727), unsigned 32 bits
+       828: spr728 (spr728), unsigned 32 bits
+       829: spr729 (spr729), unsigned 32 bits
+       830: spr730 (spr730), unsigned 32 bits
+       831: spr731 (spr731), unsigned 32 bits
+       832: spr732 (spr732), unsigned 32 bits
+       833: spr733 (spr733), unsigned 32 bits
+       834: spr734 (spr734), unsigned 32 bits
+       835: spr735 (spr735), unsigned 32 bits
+       836: spr736 (spr736), unsigned 32 bits
+       837: spr737 (spr737), unsigned 32 bits
+       838: spr738 (spr738), unsigned 32 bits
+       839: spr739 (spr739), unsigned 32 bits
+       840: spr740 (spr740), unsigned 32 bits
+       841: spr741 (spr741), unsigned 32 bits
+       842: spr742 (spr742), unsigned 32 bits
+       843: spr743 (spr743), unsigned 32 bits
+       844: spr744 (spr744), unsigned 32 bits
+       845: spr745 (spr745), unsigned 32 bits
+       846: spr746 (spr746), unsigned 32 bits
+       847: spr747 (spr747), unsigned 32 bits
+       848: spr748 (spr748), unsigned 32 bits
+       849: spr749 (spr749), unsigned 32 bits
+       850: spr750 (spr750), unsigned 32 bits
+       851: spr751 (spr751), unsigned 32 bits
+       852: spr752 (spr752), unsigned 32 bits
+       853: spr753 (spr753), unsigned 32 bits
+       854: spr754 (spr754), unsigned 32 bits
+       855: spr755 (spr755), unsigned 32 bits
+       856: spr756 (spr756), unsigned 32 bits
+       857: spr757 (spr757), unsigned 32 bits
+       858: spr758 (spr758), unsigned 32 bits
+       859: spr759 (spr759), unsigned 32 bits
+       860: spr760 (spr760), unsigned 32 bits
+       861: spr761 (spr761), unsigned 32 bits
+       862: spr762 (spr762), unsigned 32 bits
+       863: spr763 (spr763), unsigned 32 bits
+       864: spr764 (spr764), unsigned 32 bits
+       865: spr765 (spr765), unsigned 32 bits
+       866: spr766 (spr766), unsigned 32 bits
+       867: spr767 (spr767), unsigned 32 bits
+       868: spr768 (spr768), unsigned 32 bits
+       869: spr769 (spr769), unsigned 32 bits
+       870: spr770 (spr770), unsigned 32 bits
+       871: spr771 (spr771), unsigned 32 bits
+       872: spr772 (spr772), unsigned 32 bits
+       873: spr773 (spr773), unsigned 32 bits
+       874: spr774 (spr774), unsigned 32 bits
+       875: spr775 (spr775), unsigned 32 bits
+       876: spr776 (spr776), unsigned 32 bits
+       877: spr777 (spr777), unsigned 32 bits
+       878: spr778 (spr778), unsigned 32 bits
+       879: spr779 (spr779), unsigned 32 bits
+       880: spr780 (spr780), unsigned 32 bits
+       881: spr781 (spr781), unsigned 32 bits
+       882: spr782 (spr782), unsigned 32 bits
+       883: spr783 (spr783), unsigned 32 bits
+       884: spr784 (spr784), unsigned 32 bits
+       885: spr785 (spr785), unsigned 32 bits
+       886: spr786 (spr786), unsigned 32 bits
+       887: spr787 (spr787), unsigned 32 bits
+       888: spr788 (spr788), unsigned 32 bits
+       889: spr789 (spr789), unsigned 32 bits
+       890: spr790 (spr790), unsigned 32 bits
+       891: spr791 (spr791), unsigned 32 bits
+       892: spr792 (spr792), unsigned 32 bits
+       893: spr793 (spr793), unsigned 32 bits
+       894: spr794 (spr794), unsigned 32 bits
+       895: spr795 (spr795), unsigned 32 bits
+       896: spr796 (spr796), unsigned 32 bits
+       897: spr797 (spr797), unsigned 32 bits
+       898: spr798 (spr798), unsigned 32 bits
+       899: spr799 (spr799), unsigned 32 bits
+       900: spr800 (spr800), unsigned 32 bits
+       901: spr801 (spr801), unsigned 32 bits
+       902: spr802 (spr802), unsigned 32 bits
+       903: spr803 (spr803), unsigned 32 bits
+       904: spr804 (spr804), unsigned 32 bits
+       905: spr805 (spr805), unsigned 32 bits
+       906: spr806 (spr806), unsigned 32 bits
+       907: spr807 (spr807), unsigned 32 bits
+       908: spr808 (spr808), unsigned 32 bits
+       909: spr809 (spr809), unsigned 32 bits
+       910: spr810 (spr810), unsigned 32 bits
+       911: spr811 (spr811), unsigned 32 bits
+       912: spr812 (spr812), unsigned 32 bits
+       913: spr813 (spr813), unsigned 32 bits
+       914: spr814 (spr814), unsigned 32 bits
+       915: spr815 (spr815), unsigned 32 bits
+       916: spr816 (spr816), unsigned 32 bits
+       917: spr817 (spr817), unsigned 32 bits
+       918: spr818 (spr818), unsigned 32 bits
+       919: spr819 (spr819), unsigned 32 bits
+       920: spr820 (spr820), unsigned 32 bits
+       921: spr821 (spr821), unsigned 32 bits
+       922: spr822 (spr822), unsigned 32 bits
+       923: spr823 (spr823), unsigned 32 bits
+       924: spr824 (spr824), unsigned 32 bits
+       925: spr825 (spr825), unsigned 32 bits
+       926: spr826 (spr826), unsigned 32 bits
+       927: spr827 (spr827), unsigned 32 bits
+       928: spr828 (spr828), unsigned 32 bits
+       929: spr829 (spr829), unsigned 32 bits
+       930: spr830 (spr830), unsigned 32 bits
+       931: spr831 (spr831), unsigned 32 bits
+       932: spr832 (spr832), unsigned 32 bits
+       933: spr833 (spr833), unsigned 32 bits
+       934: spr834 (spr834), unsigned 32 bits
+       935: spr835 (spr835), unsigned 32 bits
+       936: spr836 (spr836), unsigned 32 bits
+       937: spr837 (spr837), unsigned 32 bits
+       938: spr838 (spr838), unsigned 32 bits
+       939: spr839 (spr839), unsigned 32 bits
+       940: spr840 (spr840), unsigned 32 bits
+       941: spr841 (spr841), unsigned 32 bits
+       942: spr842 (spr842), unsigned 32 bits
+       943: spr843 (spr843), unsigned 32 bits
+       944: spr844 (spr844), unsigned 32 bits
+       945: spr845 (spr845), unsigned 32 bits
+       946: spr846 (spr846), unsigned 32 bits
+       947: spr847 (spr847), unsigned 32 bits
+       948: spr848 (spr848), unsigned 32 bits
+       949: spr849 (spr849), unsigned 32 bits
+       950: spr850 (spr850), unsigned 32 bits
+       951: spr851 (spr851), unsigned 32 bits
+       952: spr852 (spr852), unsigned 32 bits
+       953: spr853 (spr853), unsigned 32 bits
+       954: spr854 (spr854), unsigned 32 bits
+       955: spr855 (spr855), unsigned 32 bits
+       956: spr856 (spr856), unsigned 32 bits
+       957: spr857 (spr857), unsigned 32 bits
+       958: spr858 (spr858), unsigned 32 bits
+       959: spr859 (spr859), unsigned 32 bits
+       960: spr860 (spr860), unsigned 32 bits
+       961: spr861 (spr861), unsigned 32 bits
+       962: spr862 (spr862), unsigned 32 bits
+       963: spr863 (spr863), unsigned 32 bits
+       964: spr864 (spr864), unsigned 32 bits
+       965: spr865 (spr865), unsigned 32 bits
+       966: spr866 (spr866), unsigned 32 bits
+       967: spr867 (spr867), unsigned 32 bits
+       968: spr868 (spr868), unsigned 32 bits
+       969: spr869 (spr869), unsigned 32 bits
+       970: spr870 (spr870), unsigned 32 bits
+       971: spr871 (spr871), unsigned 32 bits
+       972: spr872 (spr872), unsigned 32 bits
+       973: spr873 (spr873), unsigned 32 bits
+       974: spr874 (spr874), unsigned 32 bits
+       975: spr875 (spr875), unsigned 32 bits
+       976: spr876 (spr876), unsigned 32 bits
+       977: spr877 (spr877), unsigned 32 bits
+       978: spr878 (spr878), unsigned 32 bits
+       979: spr879 (spr879), unsigned 32 bits
+       980: spr880 (spr880), unsigned 32 bits
+       981: spr881 (spr881), unsigned 32 bits
+       982: spr882 (spr882), unsigned 32 bits
+       983: spr883 (spr883), unsigned 32 bits
+       984: spr884 (spr884), unsigned 32 bits
+       985: spr885 (spr885), unsigned 32 bits
+       986: spr886 (spr886), unsigned 32 bits
+       987: spr887 (spr887), unsigned 32 bits
+       988: spr888 (spr888), unsigned 32 bits
+       989: spr889 (spr889), unsigned 32 bits
+       990: spr890 (spr890), unsigned 32 bits
+       991: spr891 (spr891), unsigned 32 bits
+       992: spr892 (spr892), unsigned 32 bits
+       993: spr893 (spr893), unsigned 32 bits
+       994: spr894 (spr894), unsigned 32 bits
+       995: spr895 (spr895), unsigned 32 bits
+       996: spr896 (spr896), unsigned 32 bits
+       997: spr897 (spr897), unsigned 32 bits
+       998: spr898 (spr898), unsigned 32 bits
+       999: spr899 (spr899), unsigned 32 bits
 vector registers:
-       1124: vr0 (vr0)
-       1125: vr1 (vr1)
-       1126: vr2 (vr2)
-       1127: vr3 (vr3)
-       1128: vr4 (vr4)
-       1129: vr5 (vr5)
-       1130: vr6 (vr6)
-       1131: vr7 (vr7)
-       1132: vr8 (vr8)
-       1133: vr9 (vr9)
-       1134: vr10 (vr10)
-       1135: vr11 (vr11)
-       1136: vr12 (vr12)
-       1137: vr13 (vr13)
-       1138: vr14 (vr14)
-       1139: vr15 (vr15)
-       1140: vr16 (vr16)
-       1141: vr17 (vr17)
-       1142: vr18 (vr18)
-       1143: vr19 (vr19)
-       1144: vr20 (vr20)
-       1145: vr21 (vr21)
-       1146: vr22 (vr22)
-       1147: vr23 (vr23)
-       1148: vr24 (vr24)
-       1149: vr25 (vr25)
-       1150: vr26 (vr26)
-       1151: vr27 (vr27)
-       1152: vr28 (vr28)
-       1153: vr29 (vr29)
-       1154: vr30 (vr30)
-       1155: vr31 (vr31)
+       1124: vr0 (vr0), unsigned 128 bits
+       1125: vr1 (vr1), unsigned 128 bits
+       1126: vr2 (vr2), unsigned 128 bits
+       1127: vr3 (vr3), unsigned 128 bits
+       1128: vr4 (vr4), unsigned 128 bits
+       1129: vr5 (vr5), unsigned 128 bits
+       1130: vr6 (vr6), unsigned 128 bits
+       1131: vr7 (vr7), unsigned 128 bits
+       1132: vr8 (vr8), unsigned 128 bits
+       1133: vr9 (vr9), unsigned 128 bits
+       1134: vr10 (vr10), unsigned 128 bits
+       1135: vr11 (vr11), unsigned 128 bits
+       1136: vr12 (vr12), unsigned 128 bits
+       1137: vr13 (vr13), unsigned 128 bits
+       1138: vr14 (vr14), unsigned 128 bits
+       1139: vr15 (vr15), unsigned 128 bits
+       1140: vr16 (vr16), unsigned 128 bits
+       1141: vr17 (vr17), unsigned 128 bits
+       1142: vr18 (vr18), unsigned 128 bits
+       1143: vr19 (vr19), unsigned 128 bits
+       1144: vr20 (vr20), unsigned 128 bits
+       1145: vr21 (vr21), unsigned 128 bits
+       1146: vr22 (vr22), unsigned 128 bits
+       1147: vr23 (vr23), unsigned 128 bits
+       1148: vr24 (vr24), unsigned 128 bits
+       1149: vr25 (vr25), unsigned 128 bits
+       1150: vr26 (vr26), unsigned 128 bits
+       1151: vr27 (vr27), unsigned 128 bits
+       1152: vr28 (vr28), unsigned 128 bits
+       1153: vr29 (vr29), unsigned 128 bits
+       1154: vr30 (vr30), unsigned 128 bits
+       1155: vr31 (vr31), unsigned 128 bits
 EOF
 
-regs_test testfile26 testfile27 <<\EOF
+regs_test testfile23 <<\EOF
 integer registers:
-         0: %r0 (r0)
-         1: %r1 (r1)
-         2: %r2 (r2)
-         3: %r3 (r3)
-         4: %r4 (r4)
-         5: %r5 (r5)
-         6: %r6 (r6)
-         7: %r7 (r7)
-         8: %r8 (r8)
-         9: %r9 (r9)
-        10: %r10 (r10)
-        11: %r11 (r11)
-        12: %r12 (r12)
-        13: %r13 (r13)
-        14: %r14 (r14)
-        15: %r15 (r15)
+         0: r0 (r0), signed 64 bits
+         1: r1 (r1), signed 64 bits
+         2: r2 (r2), signed 64 bits
+         3: r3 (r3), signed 64 bits
+         4: r4 (r4), signed 64 bits
+         5: r5 (r5), signed 64 bits
+         6: r6 (r6), signed 64 bits
+         7: r7 (r7), signed 64 bits
+         8: r8 (r8), signed 64 bits
+         9: r9 (r9), signed 64 bits
+        10: r10 (r10), signed 64 bits
+        11: r11 (r11), signed 64 bits
+        12: r12 (r12), signed 64 bits
+        13: r13 (r13), signed 64 bits
+        14: r14 (r14), signed 64 bits
+        15: r15 (r15), signed 64 bits
+        16: r16 (r16), signed 64 bits
+        17: r17 (r17), signed 64 bits
+        18: r18 (r18), signed 64 bits
+        19: r19 (r19), signed 64 bits
+        20: r20 (r20), signed 64 bits
+        21: r21 (r21), signed 64 bits
+        22: r22 (r22), signed 64 bits
+        23: r23 (r23), signed 64 bits
+        24: r24 (r24), signed 64 bits
+        25: r25 (r25), signed 64 bits
+        26: r26 (r26), signed 64 bits
+        27: r27 (r27), signed 64 bits
+        28: r28 (r28), signed 64 bits
+        29: r29 (r29), signed 64 bits
+        30: r30 (r30), signed 64 bits
+        31: r31 (r31), signed 64 bits
+        64: cr (cr), unsigned 64 bits
+        66: msr (msr), unsigned 64 bits
 FPU registers:
-        16: %f0 (f0)
-        17: %f2 (f2)
-        18: %f4 (f4)
-        19: %f6 (f6)
-        20: %f1 (f1)
-        21: %f3 (f3)
-        22: %f5 (f5)
-        23: %f7 (f7)
-        24: %f8 (f8)
-        25: %f10 (f10)
-        26: %f12 (f12)
-        27: %f14 (f14)
-        28: %f9 (f9)
-        29: %f11 (f11)
-        30: %f13 (f13)
-        31: %f15 (f15)
+        32: f0 (f0), float 64 bits
+        33: f1 (f1), float 64 bits
+        34: f2 (f2), float 64 bits
+        35: f3 (f3), float 64 bits
+        36: f4 (f4), float 64 bits
+        37: f5 (f5), float 64 bits
+        38: f6 (f6), float 64 bits
+        39: f7 (f7), float 64 bits
+        40: f8 (f8), float 64 bits
+        41: f9 (f9), float 64 bits
+        42: f10 (f10), float 64 bits
+        43: f11 (f11), float 64 bits
+        44: f12 (f12), float 64 bits
+        45: f13 (f13), float 64 bits
+        46: f14 (f14), float 64 bits
+        47: f15 (f15), float 64 bits
+        48: f16 (f16), float 64 bits
+        49: f17 (f17), float 64 bits
+        50: f18 (f18), float 64 bits
+        51: f19 (f19), float 64 bits
+        52: f20 (f20), float 64 bits
+        53: f21 (f21), float 64 bits
+        54: f22 (f22), float 64 bits
+        55: f23 (f23), float 64 bits
+        56: f24 (f24), float 64 bits
+        57: f25 (f25), float 64 bits
+        58: f26 (f26), float 64 bits
+        59: f27 (f27), float 64 bits
+        60: f28 (f28), float 64 bits
+        61: f29 (f29), float 64 bits
+        62: f30 (f30), float 64 bits
+        63: f31 (f31), float 64 bits
+        65: fpscr (fpscr), unsigned 64 bits
+privileged registers:
+        70: sr0 (sr0), unsigned 64 bits
+        71: sr1 (sr1), unsigned 64 bits
+        72: sr2 (sr2), unsigned 64 bits
+        73: sr3 (sr3), unsigned 64 bits
+        74: sr4 (sr4), unsigned 64 bits
+        75: sr5 (sr5), unsigned 64 bits
+        76: sr6 (sr6), unsigned 64 bits
+        77: sr7 (sr7), unsigned 64 bits
+        78: sr8 (sr8), unsigned 64 bits
+        79: sr9 (sr9), unsigned 64 bits
+        80: sr10 (sr10), unsigned 64 bits
+        81: sr11 (sr11), unsigned 64 bits
+        82: sr12 (sr12), unsigned 64 bits
+        83: sr13 (sr13), unsigned 64 bits
+        84: sr14 (sr14), unsigned 64 bits
+        85: sr15 (sr15), unsigned 64 bits
+       100: spr0 (spr0), unsigned 64 bits
+       101: spr1 (spr1), unsigned 64 bits
+       102: spr2 (spr2), unsigned 64 bits
+       103: spr3 (spr3), unsigned 64 bits
+       104: spr4 (spr4), unsigned 64 bits
+       105: spr5 (spr5), unsigned 64 bits
+       106: spr6 (spr6), unsigned 64 bits
+       107: spr7 (spr7), unsigned 64 bits
+       108: spr8 (spr8), unsigned 64 bits
+       109: spr9 (spr9), unsigned 64 bits
+       110: spr10 (spr10), unsigned 64 bits
+       111: spr11 (spr11), unsigned 64 bits
+       112: spr12 (spr12), unsigned 64 bits
+       113: spr13 (spr13), unsigned 64 bits
+       114: spr14 (spr14), unsigned 64 bits
+       115: spr15 (spr15), unsigned 64 bits
+       116: spr16 (spr16), unsigned 64 bits
+       117: spr17 (spr17), unsigned 64 bits
+       118: spr18 (spr18), unsigned 64 bits
+       119: spr19 (spr19), unsigned 64 bits
+       120: spr20 (spr20), unsigned 64 bits
+       121: spr21 (spr21), unsigned 64 bits
+       122: spr22 (spr22), unsigned 64 bits
+       123: spr23 (spr23), unsigned 64 bits
+       124: spr24 (spr24), unsigned 64 bits
+       125: spr25 (spr25), unsigned 64 bits
+       126: spr26 (spr26), unsigned 64 bits
+       127: spr27 (spr27), unsigned 64 bits
+       128: spr28 (spr28), unsigned 64 bits
+       129: spr29 (spr29), unsigned 64 bits
+       130: spr30 (spr30), unsigned 64 bits
+       131: spr31 (spr31), unsigned 64 bits
+       132: spr32 (spr32), unsigned 64 bits
+       133: spr33 (spr33), unsigned 64 bits
+       134: spr34 (spr34), unsigned 64 bits
+       135: spr35 (spr35), unsigned 64 bits
+       136: spr36 (spr36), unsigned 64 bits
+       137: spr37 (spr37), unsigned 64 bits
+       138: spr38 (spr38), unsigned 64 bits
+       139: spr39 (spr39), unsigned 64 bits
+       140: spr40 (spr40), unsigned 64 bits
+       141: spr41 (spr41), unsigned 64 bits
+       142: spr42 (spr42), unsigned 64 bits
+       143: spr43 (spr43), unsigned 64 bits
+       144: spr44 (spr44), unsigned 64 bits
+       145: spr45 (spr45), unsigned 64 bits
+       146: spr46 (spr46), unsigned 64 bits
+       147: spr47 (spr47), unsigned 64 bits
+       148: spr48 (spr48), unsigned 64 bits
+       149: spr49 (spr49), unsigned 64 bits
+       150: spr50 (spr50), unsigned 64 bits
+       151: spr51 (spr51), unsigned 64 bits
+       152: spr52 (spr52), unsigned 64 bits
+       153: spr53 (spr53), unsigned 64 bits
+       154: spr54 (spr54), unsigned 64 bits
+       155: spr55 (spr55), unsigned 64 bits
+       156: spr56 (spr56), unsigned 64 bits
+       157: spr57 (spr57), unsigned 64 bits
+       158: spr58 (spr58), unsigned 64 bits
+       159: spr59 (spr59), unsigned 64 bits
+       160: spr60 (spr60), unsigned 64 bits
+       161: spr61 (spr61), unsigned 64 bits
+       162: spr62 (spr62), unsigned 64 bits
+       163: spr63 (spr63), unsigned 64 bits
+       164: spr64 (spr64), unsigned 64 bits
+       165: spr65 (spr65), unsigned 64 bits
+       166: spr66 (spr66), unsigned 64 bits
+       167: spr67 (spr67), unsigned 64 bits
+       168: spr68 (spr68), unsigned 64 bits
+       169: spr69 (spr69), unsigned 64 bits
+       170: spr70 (spr70), unsigned 64 bits
+       171: spr71 (spr71), unsigned 64 bits
+       172: spr72 (spr72), unsigned 64 bits
+       173: spr73 (spr73), unsigned 64 bits
+       174: spr74 (spr74), unsigned 64 bits
+       175: spr75 (spr75), unsigned 64 bits
+       176: spr76 (spr76), unsigned 64 bits
+       177: spr77 (spr77), unsigned 64 bits
+       178: spr78 (spr78), unsigned 64 bits
+       179: spr79 (spr79), unsigned 64 bits
+       180: spr80 (spr80), unsigned 64 bits
+       181: spr81 (spr81), unsigned 64 bits
+       182: spr82 (spr82), unsigned 64 bits
+       183: spr83 (spr83), unsigned 64 bits
+       184: spr84 (spr84), unsigned 64 bits
+       185: spr85 (spr85), unsigned 64 bits
+       186: spr86 (spr86), unsigned 64 bits
+       187: spr87 (spr87), unsigned 64 bits
+       188: spr88 (spr88), unsigned 64 bits
+       189: spr89 (spr89), unsigned 64 bits
+       190: spr90 (spr90), unsigned 64 bits
+       191: spr91 (spr91), unsigned 64 bits
+       192: spr92 (spr92), unsigned 64 bits
+       193: spr93 (spr93), unsigned 64 bits
+       194: spr94 (spr94), unsigned 64 bits
+       195: spr95 (spr95), unsigned 64 bits
+       196: spr96 (spr96), unsigned 64 bits
+       197: spr97 (spr97), unsigned 64 bits
+       198: spr98 (spr98), unsigned 64 bits
+       199: spr99 (spr99), unsigned 64 bits
+       200: spr100 (spr100), unsigned 64 bits
+       201: spr101 (spr101), unsigned 64 bits
+       202: spr102 (spr102), unsigned 64 bits
+       203: spr103 (spr103), unsigned 64 bits
+       204: spr104 (spr104), unsigned 64 bits
+       205: spr105 (spr105), unsigned 64 bits
+       206: spr106 (spr106), unsigned 64 bits
+       207: spr107 (spr107), unsigned 64 bits
+       208: spr108 (spr108), unsigned 64 bits
+       209: spr109 (spr109), unsigned 64 bits
+       210: spr110 (spr110), unsigned 64 bits
+       211: spr111 (spr111), unsigned 64 bits
+       212: spr112 (spr112), unsigned 64 bits
+       213: spr113 (spr113), unsigned 64 bits
+       214: spr114 (spr114), unsigned 64 bits
+       215: spr115 (spr115), unsigned 64 bits
+       216: spr116 (spr116), unsigned 64 bits
+       217: spr117 (spr117), unsigned 64 bits
+       218: spr118 (spr118), unsigned 64 bits
+       219: spr119 (spr119), unsigned 64 bits
+       220: spr120 (spr120), unsigned 64 bits
+       221: spr121 (spr121), unsigned 64 bits
+       222: spr122 (spr122), unsigned 64 bits
+       223: spr123 (spr123), unsigned 64 bits
+       224: spr124 (spr124), unsigned 64 bits
+       225: spr125 (spr125), unsigned 64 bits
+       226: spr126 (spr126), unsigned 64 bits
+       227: spr127 (spr127), unsigned 64 bits
+       228: spr128 (spr128), unsigned 64 bits
+       229: spr129 (spr129), unsigned 64 bits
+       230: spr130 (spr130), unsigned 64 bits
+       231: spr131 (spr131), unsigned 64 bits
+       232: spr132 (spr132), unsigned 64 bits
+       233: spr133 (spr133), unsigned 64 bits
+       234: spr134 (spr134), unsigned 64 bits
+       235: spr135 (spr135), unsigned 64 bits
+       236: spr136 (spr136), unsigned 64 bits
+       237: spr137 (spr137), unsigned 64 bits
+       238: spr138 (spr138), unsigned 64 bits
+       239: spr139 (spr139), unsigned 64 bits
+       240: spr140 (spr140), unsigned 64 bits
+       241: spr141 (spr141), unsigned 64 bits
+       242: spr142 (spr142), unsigned 64 bits
+       243: spr143 (spr143), unsigned 64 bits
+       244: spr144 (spr144), unsigned 64 bits
+       245: spr145 (spr145), unsigned 64 bits
+       246: spr146 (spr146), unsigned 64 bits
+       247: spr147 (spr147), unsigned 64 bits
+       248: spr148 (spr148), unsigned 64 bits
+       249: spr149 (spr149), unsigned 64 bits
+       250: spr150 (spr150), unsigned 64 bits
+       251: spr151 (spr151), unsigned 64 bits
+       252: spr152 (spr152), unsigned 64 bits
+       253: spr153 (spr153), unsigned 64 bits
+       254: spr154 (spr154), unsigned 64 bits
+       255: spr155 (spr155), unsigned 64 bits
+       256: spr156 (spr156), unsigned 64 bits
+       257: spr157 (spr157), unsigned 64 bits
+       258: spr158 (spr158), unsigned 64 bits
+       259: spr159 (spr159), unsigned 64 bits
+       260: spr160 (spr160), unsigned 64 bits
+       261: spr161 (spr161), unsigned 64 bits
+       262: spr162 (spr162), unsigned 64 bits
+       263: spr163 (spr163), unsigned 64 bits
+       264: spr164 (spr164), unsigned 64 bits
+       265: spr165 (spr165), unsigned 64 bits
+       266: spr166 (spr166), unsigned 64 bits
+       267: spr167 (spr167), unsigned 64 bits
+       268: spr168 (spr168), unsigned 64 bits
+       269: spr169 (spr169), unsigned 64 bits
+       270: spr170 (spr170), unsigned 64 bits
+       271: spr171 (spr171), unsigned 64 bits
+       272: spr172 (spr172), unsigned 64 bits
+       273: spr173 (spr173), unsigned 64 bits
+       274: spr174 (spr174), unsigned 64 bits
+       275: spr175 (spr175), unsigned 64 bits
+       276: spr176 (spr176), unsigned 64 bits
+       277: spr177 (spr177), unsigned 64 bits
+       278: spr178 (spr178), unsigned 64 bits
+       279: spr179 (spr179), unsigned 64 bits
+       280: spr180 (spr180), unsigned 64 bits
+       281: spr181 (spr181), unsigned 64 bits
+       282: spr182 (spr182), unsigned 64 bits
+       283: spr183 (spr183), unsigned 64 bits
+       284: spr184 (spr184), unsigned 64 bits
+       285: spr185 (spr185), unsigned 64 bits
+       286: spr186 (spr186), unsigned 64 bits
+       287: spr187 (spr187), unsigned 64 bits
+       288: spr188 (spr188), unsigned 64 bits
+       289: spr189 (spr189), unsigned 64 bits
+       290: spr190 (spr190), unsigned 64 bits
+       291: spr191 (spr191), unsigned 64 bits
+       292: spr192 (spr192), unsigned 64 bits
+       293: spr193 (spr193), unsigned 64 bits
+       294: spr194 (spr194), unsigned 64 bits
+       295: spr195 (spr195), unsigned 64 bits
+       296: spr196 (spr196), unsigned 64 bits
+       297: spr197 (spr197), unsigned 64 bits
+       298: spr198 (spr198), unsigned 64 bits
+       299: spr199 (spr199), unsigned 64 bits
+       300: spr200 (spr200), unsigned 64 bits
+       301: spr201 (spr201), unsigned 64 bits
+       302: spr202 (spr202), unsigned 64 bits
+       303: spr203 (spr203), unsigned 64 bits
+       304: spr204 (spr204), unsigned 64 bits
+       305: spr205 (spr205), unsigned 64 bits
+       306: spr206 (spr206), unsigned 64 bits
+       307: spr207 (spr207), unsigned 64 bits
+       308: spr208 (spr208), unsigned 64 bits
+       309: spr209 (spr209), unsigned 64 bits
+       310: spr210 (spr210), unsigned 64 bits
+       311: spr211 (spr211), unsigned 64 bits
+       312: spr212 (spr212), unsigned 64 bits
+       313: spr213 (spr213), unsigned 64 bits
+       314: spr214 (spr214), unsigned 64 bits
+       315: spr215 (spr215), unsigned 64 bits
+       316: spr216 (spr216), unsigned 64 bits
+       317: spr217 (spr217), unsigned 64 bits
+       318: spr218 (spr218), unsigned 64 bits
+       319: spr219 (spr219), unsigned 64 bits
+       320: spr220 (spr220), unsigned 64 bits
+       321: spr221 (spr221), unsigned 64 bits
+       322: spr222 (spr222), unsigned 64 bits
+       323: spr223 (spr223), unsigned 64 bits
+       324: spr224 (spr224), unsigned 64 bits
+       325: spr225 (spr225), unsigned 64 bits
+       326: spr226 (spr226), unsigned 64 bits
+       327: spr227 (spr227), unsigned 64 bits
+       328: spr228 (spr228), unsigned 64 bits
+       329: spr229 (spr229), unsigned 64 bits
+       330: spr230 (spr230), unsigned 64 bits
+       331: spr231 (spr231), unsigned 64 bits
+       332: spr232 (spr232), unsigned 64 bits
+       333: spr233 (spr233), unsigned 64 bits
+       334: spr234 (spr234), unsigned 64 bits
+       335: spr235 (spr235), unsigned 64 bits
+       336: spr236 (spr236), unsigned 64 bits
+       337: spr237 (spr237), unsigned 64 bits
+       338: spr238 (spr238), unsigned 64 bits
+       339: spr239 (spr239), unsigned 64 bits
+       340: spr240 (spr240), unsigned 64 bits
+       341: spr241 (spr241), unsigned 64 bits
+       342: spr242 (spr242), unsigned 64 bits
+       343: spr243 (spr243), unsigned 64 bits
+       344: spr244 (spr244), unsigned 64 bits
+       345: spr245 (spr245), unsigned 64 bits
+       346: spr246 (spr246), unsigned 64 bits
+       347: spr247 (spr247), unsigned 64 bits
+       348: spr248 (spr248), unsigned 64 bits
+       349: spr249 (spr249), unsigned 64 bits
+       350: spr250 (spr250), unsigned 64 bits
+       351: spr251 (spr251), unsigned 64 bits
+       352: spr252 (spr252), unsigned 64 bits
+       353: spr253 (spr253), unsigned 64 bits
+       354: spr254 (spr254), unsigned 64 bits
+       355: spr255 (spr255), unsigned 64 bits
+       356: spr256 (spr256), unsigned 64 bits
+       357: spr257 (spr257), unsigned 64 bits
+       358: spr258 (spr258), unsigned 64 bits
+       359: spr259 (spr259), unsigned 64 bits
+       360: spr260 (spr260), unsigned 64 bits
+       361: spr261 (spr261), unsigned 64 bits
+       362: spr262 (spr262), unsigned 64 bits
+       363: spr263 (spr263), unsigned 64 bits
+       364: spr264 (spr264), unsigned 64 bits
+       365: spr265 (spr265), unsigned 64 bits
+       366: spr266 (spr266), unsigned 64 bits
+       367: spr267 (spr267), unsigned 64 bits
+       368: spr268 (spr268), unsigned 64 bits
+       369: spr269 (spr269), unsigned 64 bits
+       370: spr270 (spr270), unsigned 64 bits
+       371: spr271 (spr271), unsigned 64 bits
+       372: spr272 (spr272), unsigned 64 bits
+       373: spr273 (spr273), unsigned 64 bits
+       374: spr274 (spr274), unsigned 64 bits
+       375: spr275 (spr275), unsigned 64 bits
+       376: spr276 (spr276), unsigned 64 bits
+       377: spr277 (spr277), unsigned 64 bits
+       378: spr278 (spr278), unsigned 64 bits
+       379: spr279 (spr279), unsigned 64 bits
+       380: spr280 (spr280), unsigned 64 bits
+       381: spr281 (spr281), unsigned 64 bits
+       382: spr282 (spr282), unsigned 64 bits
+       383: spr283 (spr283), unsigned 64 bits
+       384: spr284 (spr284), unsigned 64 bits
+       385: spr285 (spr285), unsigned 64 bits
+       386: spr286 (spr286), unsigned 64 bits
+       387: spr287 (spr287), unsigned 64 bits
+       388: spr288 (spr288), unsigned 64 bits
+       389: spr289 (spr289), unsigned 64 bits
+       390: spr290 (spr290), unsigned 64 bits
+       391: spr291 (spr291), unsigned 64 bits
+       392: spr292 (spr292), unsigned 64 bits
+       393: spr293 (spr293), unsigned 64 bits
+       394: spr294 (spr294), unsigned 64 bits
+       395: spr295 (spr295), unsigned 64 bits
+       396: spr296 (spr296), unsigned 64 bits
+       397: spr297 (spr297), unsigned 64 bits
+       398: spr298 (spr298), unsigned 64 bits
+       399: spr299 (spr299), unsigned 64 bits
+       400: spr300 (spr300), unsigned 64 bits
+       401: spr301 (spr301), unsigned 64 bits
+       402: spr302 (spr302), unsigned 64 bits
+       403: spr303 (spr303), unsigned 64 bits
+       404: spr304 (spr304), unsigned 64 bits
+       405: spr305 (spr305), unsigned 64 bits
+       406: spr306 (spr306), unsigned 64 bits
+       407: spr307 (spr307), unsigned 64 bits
+       408: spr308 (spr308), unsigned 64 bits
+       409: spr309 (spr309), unsigned 64 bits
+       410: spr310 (spr310), unsigned 64 bits
+       411: spr311 (spr311), unsigned 64 bits
+       412: spr312 (spr312), unsigned 64 bits
+       413: spr313 (spr313), unsigned 64 bits
+       414: spr314 (spr314), unsigned 64 bits
+       415: spr315 (spr315), unsigned 64 bits
+       416: spr316 (spr316), unsigned 64 bits
+       417: spr317 (spr317), unsigned 64 bits
+       418: spr318 (spr318), unsigned 64 bits
+       419: spr319 (spr319), unsigned 64 bits
+       420: spr320 (spr320), unsigned 64 bits
+       421: spr321 (spr321), unsigned 64 bits
+       422: spr322 (spr322), unsigned 64 bits
+       423: spr323 (spr323), unsigned 64 bits
+       424: spr324 (spr324), unsigned 64 bits
+       425: spr325 (spr325), unsigned 64 bits
+       426: spr326 (spr326), unsigned 64 bits
+       427: spr327 (spr327), unsigned 64 bits
+       428: spr328 (spr328), unsigned 64 bits
+       429: spr329 (spr329), unsigned 64 bits
+       430: spr330 (spr330), unsigned 64 bits
+       431: spr331 (spr331), unsigned 64 bits
+       432: spr332 (spr332), unsigned 64 bits
+       433: spr333 (spr333), unsigned 64 bits
+       434: spr334 (spr334), unsigned 64 bits
+       435: spr335 (spr335), unsigned 64 bits
+       436: spr336 (spr336), unsigned 64 bits
+       437: spr337 (spr337), unsigned 64 bits
+       438: spr338 (spr338), unsigned 64 bits
+       439: spr339 (spr339), unsigned 64 bits
+       440: spr340 (spr340), unsigned 64 bits
+       441: spr341 (spr341), unsigned 64 bits
+       442: spr342 (spr342), unsigned 64 bits
+       443: spr343 (spr343), unsigned 64 bits
+       444: spr344 (spr344), unsigned 64 bits
+       445: spr345 (spr345), unsigned 64 bits
+       446: spr346 (spr346), unsigned 64 bits
+       447: spr347 (spr347), unsigned 64 bits
+       448: spr348 (spr348), unsigned 64 bits
+       449: spr349 (spr349), unsigned 64 bits
+       450: spr350 (spr350), unsigned 64 bits
+       451: spr351 (spr351), unsigned 64 bits
+       452: spr352 (spr352), unsigned 64 bits
+       453: spr353 (spr353), unsigned 64 bits
+       454: spr354 (spr354), unsigned 64 bits
+       455: spr355 (spr355), unsigned 64 bits
+       456: spr356 (spr356), unsigned 64 bits
+       457: spr357 (spr357), unsigned 64 bits
+       458: spr358 (spr358), unsigned 64 bits
+       459: spr359 (spr359), unsigned 64 bits
+       460: spr360 (spr360), unsigned 64 bits
+       461: spr361 (spr361), unsigned 64 bits
+       462: spr362 (spr362), unsigned 64 bits
+       463: spr363 (spr363), unsigned 64 bits
+       464: spr364 (spr364), unsigned 64 bits
+       465: spr365 (spr365), unsigned 64 bits
+       466: spr366 (spr366), unsigned 64 bits
+       467: spr367 (spr367), unsigned 64 bits
+       468: spr368 (spr368), unsigned 64 bits
+       469: spr369 (spr369), unsigned 64 bits
+       470: spr370 (spr370), unsigned 64 bits
+       471: spr371 (spr371), unsigned 64 bits
+       472: spr372 (spr372), unsigned 64 bits
+       473: spr373 (spr373), unsigned 64 bits
+       474: spr374 (spr374), unsigned 64 bits
+       475: spr375 (spr375), unsigned 64 bits
+       476: spr376 (spr376), unsigned 64 bits
+       477: spr377 (spr377), unsigned 64 bits
+       478: spr378 (spr378), unsigned 64 bits
+       479: spr379 (spr379), unsigned 64 bits
+       480: spr380 (spr380), unsigned 64 bits
+       481: spr381 (spr381), unsigned 64 bits
+       482: spr382 (spr382), unsigned 64 bits
+       483: spr383 (spr383), unsigned 64 bits
+       484: spr384 (spr384), unsigned 64 bits
+       485: spr385 (spr385), unsigned 64 bits
+       486: spr386 (spr386), unsigned 64 bits
+       487: spr387 (spr387), unsigned 64 bits
+       488: spr388 (spr388), unsigned 64 bits
+       489: spr389 (spr389), unsigned 64 bits
+       490: spr390 (spr390), unsigned 64 bits
+       491: spr391 (spr391), unsigned 64 bits
+       492: spr392 (spr392), unsigned 64 bits
+       493: spr393 (spr393), unsigned 64 bits
+       494: spr394 (spr394), unsigned 64 bits
+       495: spr395 (spr395), unsigned 64 bits
+       496: spr396 (spr396), unsigned 64 bits
+       497: spr397 (spr397), unsigned 64 bits
+       498: spr398 (spr398), unsigned 64 bits
+       499: spr399 (spr399), unsigned 64 bits
+       500: spr400 (spr400), unsigned 64 bits
+       501: spr401 (spr401), unsigned 64 bits
+       502: spr402 (spr402), unsigned 64 bits
+       503: spr403 (spr403), unsigned 64 bits
+       504: spr404 (spr404), unsigned 64 bits
+       505: spr405 (spr405), unsigned 64 bits
+       506: spr406 (spr406), unsigned 64 bits
+       507: spr407 (spr407), unsigned 64 bits
+       508: spr408 (spr408), unsigned 64 bits
+       509: spr409 (spr409), unsigned 64 bits
+       510: spr410 (spr410), unsigned 64 bits
+       511: spr411 (spr411), unsigned 64 bits
+       512: spr412 (spr412), unsigned 64 bits
+       513: spr413 (spr413), unsigned 64 bits
+       514: spr414 (spr414), unsigned 64 bits
+       515: spr415 (spr415), unsigned 64 bits
+       516: spr416 (spr416), unsigned 64 bits
+       517: spr417 (spr417), unsigned 64 bits
+       518: spr418 (spr418), unsigned 64 bits
+       519: spr419 (spr419), unsigned 64 bits
+       520: spr420 (spr420), unsigned 64 bits
+       521: spr421 (spr421), unsigned 64 bits
+       522: spr422 (spr422), unsigned 64 bits
+       523: spr423 (spr423), unsigned 64 bits
+       524: spr424 (spr424), unsigned 64 bits
+       525: spr425 (spr425), unsigned 64 bits
+       526: spr426 (spr426), unsigned 64 bits
+       527: spr427 (spr427), unsigned 64 bits
+       528: spr428 (spr428), unsigned 64 bits
+       529: spr429 (spr429), unsigned 64 bits
+       530: spr430 (spr430), unsigned 64 bits
+       531: spr431 (spr431), unsigned 64 bits
+       532: spr432 (spr432), unsigned 64 bits
+       533: spr433 (spr433), unsigned 64 bits
+       534: spr434 (spr434), unsigned 64 bits
+       535: spr435 (spr435), unsigned 64 bits
+       536: spr436 (spr436), unsigned 64 bits
+       537: spr437 (spr437), unsigned 64 bits
+       538: spr438 (spr438), unsigned 64 bits
+       539: spr439 (spr439), unsigned 64 bits
+       540: spr440 (spr440), unsigned 64 bits
+       541: spr441 (spr441), unsigned 64 bits
+       542: spr442 (spr442), unsigned 64 bits
+       543: spr443 (spr443), unsigned 64 bits
+       544: spr444 (spr444), unsigned 64 bits
+       545: spr445 (spr445), unsigned 64 bits
+       546: spr446 (spr446), unsigned 64 bits
+       547: spr447 (spr447), unsigned 64 bits
+       548: spr448 (spr448), unsigned 64 bits
+       549: spr449 (spr449), unsigned 64 bits
+       550: spr450 (spr450), unsigned 64 bits
+       551: spr451 (spr451), unsigned 64 bits
+       552: spr452 (spr452), unsigned 64 bits
+       553: spr453 (spr453), unsigned 64 bits
+       554: spr454 (spr454), unsigned 64 bits
+       555: spr455 (spr455), unsigned 64 bits
+       556: spr456 (spr456), unsigned 64 bits
+       557: spr457 (spr457), unsigned 64 bits
+       558: spr458 (spr458), unsigned 64 bits
+       559: spr459 (spr459), unsigned 64 bits
+       560: spr460 (spr460), unsigned 64 bits
+       561: spr461 (spr461), unsigned 64 bits
+       562: spr462 (spr462), unsigned 64 bits
+       563: spr463 (spr463), unsigned 64 bits
+       564: spr464 (spr464), unsigned 64 bits
+       565: spr465 (spr465), unsigned 64 bits
+       566: spr466 (spr466), unsigned 64 bits
+       567: spr467 (spr467), unsigned 64 bits
+       568: spr468 (spr468), unsigned 64 bits
+       569: spr469 (spr469), unsigned 64 bits
+       570: spr470 (spr470), unsigned 64 bits
+       571: spr471 (spr471), unsigned 64 bits
+       572: spr472 (spr472), unsigned 64 bits
+       573: spr473 (spr473), unsigned 64 bits
+       574: spr474 (spr474), unsigned 64 bits
+       575: spr475 (spr475), unsigned 64 bits
+       576: spr476 (spr476), unsigned 64 bits
+       577: spr477 (spr477), unsigned 64 bits
+       578: spr478 (spr478), unsigned 64 bits
+       579: spr479 (spr479), unsigned 64 bits
+       580: spr480 (spr480), unsigned 64 bits
+       581: spr481 (spr481), unsigned 64 bits
+       582: spr482 (spr482), unsigned 64 bits
+       583: spr483 (spr483), unsigned 64 bits
+       584: spr484 (spr484), unsigned 64 bits
+       585: spr485 (spr485), unsigned 64 bits
+       586: spr486 (spr486), unsigned 64 bits
+       587: spr487 (spr487), unsigned 64 bits
+       588: spr488 (spr488), unsigned 64 bits
+       589: spr489 (spr489), unsigned 64 bits
+       590: spr490 (spr490), unsigned 64 bits
+       591: spr491 (spr491), unsigned 64 bits
+       592: spr492 (spr492), unsigned 64 bits
+       593: spr493 (spr493), unsigned 64 bits
+       594: spr494 (spr494), unsigned 64 bits
+       595: spr495 (spr495), unsigned 64 bits
+       596: spr496 (spr496), unsigned 64 bits
+       597: spr497 (spr497), unsigned 64 bits
+       598: spr498 (spr498), unsigned 64 bits
+       599: spr499 (spr499), unsigned 64 bits
+       600: spr500 (spr500), unsigned 64 bits
+       601: spr501 (spr501), unsigned 64 bits
+       602: spr502 (spr502), unsigned 64 bits
+       603: spr503 (spr503), unsigned 64 bits
+       604: spr504 (spr504), unsigned 64 bits
+       605: spr505 (spr505), unsigned 64 bits
+       606: spr506 (spr506), unsigned 64 bits
+       607: spr507 (spr507), unsigned 64 bits
+       608: spr508 (spr508), unsigned 64 bits
+       609: spr509 (spr509), unsigned 64 bits
+       610: spr510 (spr510), unsigned 64 bits
+       611: spr511 (spr511), unsigned 64 bits
+       612: spr512 (spr512), unsigned 64 bits
+       613: spr513 (spr513), unsigned 64 bits
+       614: spr514 (spr514), unsigned 64 bits
+       615: spr515 (spr515), unsigned 64 bits
+       616: spr516 (spr516), unsigned 64 bits
+       617: spr517 (spr517), unsigned 64 bits
+       618: spr518 (spr518), unsigned 64 bits
+       619: spr519 (spr519), unsigned 64 bits
+       620: spr520 (spr520), unsigned 64 bits
+       621: spr521 (spr521), unsigned 64 bits
+       622: spr522 (spr522), unsigned 64 bits
+       623: spr523 (spr523), unsigned 64 bits
+       624: spr524 (spr524), unsigned 64 bits
+       625: spr525 (spr525), unsigned 64 bits
+       626: spr526 (spr526), unsigned 64 bits
+       627: spr527 (spr527), unsigned 64 bits
+       628: spr528 (spr528), unsigned 64 bits
+       629: spr529 (spr529), unsigned 64 bits
+       630: spr530 (spr530), unsigned 64 bits
+       631: spr531 (spr531), unsigned 64 bits
+       632: spr532 (spr532), unsigned 64 bits
+       633: spr533 (spr533), unsigned 64 bits
+       634: spr534 (spr534), unsigned 64 bits
+       635: spr535 (spr535), unsigned 64 bits
+       636: spr536 (spr536), unsigned 64 bits
+       637: spr537 (spr537), unsigned 64 bits
+       638: spr538 (spr538), unsigned 64 bits
+       639: spr539 (spr539), unsigned 64 bits
+       640: spr540 (spr540), unsigned 64 bits
+       641: spr541 (spr541), unsigned 64 bits
+       642: spr542 (spr542), unsigned 64 bits
+       643: spr543 (spr543), unsigned 64 bits
+       644: spr544 (spr544), unsigned 64 bits
+       645: spr545 (spr545), unsigned 64 bits
+       646: spr546 (spr546), unsigned 64 bits
+       647: spr547 (spr547), unsigned 64 bits
+       648: spr548 (spr548), unsigned 64 bits
+       649: spr549 (spr549), unsigned 64 bits
+       650: spr550 (spr550), unsigned 64 bits
+       651: spr551 (spr551), unsigned 64 bits
+       652: spr552 (spr552), unsigned 64 bits
+       653: spr553 (spr553), unsigned 64 bits
+       654: spr554 (spr554), unsigned 64 bits
+       655: spr555 (spr555), unsigned 64 bits
+       656: spr556 (spr556), unsigned 64 bits
+       657: spr557 (spr557), unsigned 64 bits
+       658: spr558 (spr558), unsigned 64 bits
+       659: spr559 (spr559), unsigned 64 bits
+       660: spr560 (spr560), unsigned 64 bits
+       661: spr561 (spr561), unsigned 64 bits
+       662: spr562 (spr562), unsigned 64 bits
+       663: spr563 (spr563), unsigned 64 bits
+       664: spr564 (spr564), unsigned 64 bits
+       665: spr565 (spr565), unsigned 64 bits
+       666: spr566 (spr566), unsigned 64 bits
+       667: spr567 (spr567), unsigned 64 bits
+       668: spr568 (spr568), unsigned 64 bits
+       669: spr569 (spr569), unsigned 64 bits
+       670: spr570 (spr570), unsigned 64 bits
+       671: spr571 (spr571), unsigned 64 bits
+       672: spr572 (spr572), unsigned 64 bits
+       673: spr573 (spr573), unsigned 64 bits
+       674: spr574 (spr574), unsigned 64 bits
+       675: spr575 (spr575), unsigned 64 bits
+       676: spr576 (spr576), unsigned 64 bits
+       677: spr577 (spr577), unsigned 64 bits
+       678: spr578 (spr578), unsigned 64 bits
+       679: spr579 (spr579), unsigned 64 bits
+       680: spr580 (spr580), unsigned 64 bits
+       681: spr581 (spr581), unsigned 64 bits
+       682: spr582 (spr582), unsigned 64 bits
+       683: spr583 (spr583), unsigned 64 bits
+       684: spr584 (spr584), unsigned 64 bits
+       685: spr585 (spr585), unsigned 64 bits
+       686: spr586 (spr586), unsigned 64 bits
+       687: spr587 (spr587), unsigned 64 bits
+       688: spr588 (spr588), unsigned 64 bits
+       689: spr589 (spr589), unsigned 64 bits
+       690: spr590 (spr590), unsigned 64 bits
+       691: spr591 (spr591), unsigned 64 bits
+       692: spr592 (spr592), unsigned 64 bits
+       693: spr593 (spr593), unsigned 64 bits
+       694: spr594 (spr594), unsigned 64 bits
+       695: spr595 (spr595), unsigned 64 bits
+       696: spr596 (spr596), unsigned 64 bits
+       697: spr597 (spr597), unsigned 64 bits
+       698: spr598 (spr598), unsigned 64 bits
+       699: spr599 (spr599), unsigned 64 bits
+       700: spr600 (spr600), unsigned 64 bits
+       701: spr601 (spr601), unsigned 64 bits
+       702: spr602 (spr602), unsigned 64 bits
+       703: spr603 (spr603), unsigned 64 bits
+       704: spr604 (spr604), unsigned 64 bits
+       705: spr605 (spr605), unsigned 64 bits
+       706: spr606 (spr606), unsigned 64 bits
+       707: spr607 (spr607), unsigned 64 bits
+       708: spr608 (spr608), unsigned 64 bits
+       709: spr609 (spr609), unsigned 64 bits
+       710: spr610 (spr610), unsigned 64 bits
+       711: spr611 (spr611), unsigned 64 bits
+       712: spr612 (spr612), unsigned 64 bits
+       713: spr613 (spr613), unsigned 64 bits
+       714: spr614 (spr614), unsigned 64 bits
+       715: spr615 (spr615), unsigned 64 bits
+       716: spr616 (spr616), unsigned 64 bits
+       717: spr617 (spr617), unsigned 64 bits
+       718: spr618 (spr618), unsigned 64 bits
+       719: spr619 (spr619), unsigned 64 bits
+       720: spr620 (spr620), unsigned 64 bits
+       721: spr621 (spr621), unsigned 64 bits
+       722: spr622 (spr622), unsigned 64 bits
+       723: spr623 (spr623), unsigned 64 bits
+       724: spr624 (spr624), unsigned 64 bits
+       725: spr625 (spr625), unsigned 64 bits
+       726: spr626 (spr626), unsigned 64 bits
+       727: spr627 (spr627), unsigned 64 bits
+       728: spr628 (spr628), unsigned 64 bits
+       729: spr629 (spr629), unsigned 64 bits
+       730: spr630 (spr630), unsigned 64 bits
+       731: spr631 (spr631), unsigned 64 bits
+       732: spr632 (spr632), unsigned 64 bits
+       733: spr633 (spr633), unsigned 64 bits
+       734: spr634 (spr634), unsigned 64 bits
+       735: spr635 (spr635), unsigned 64 bits
+       736: spr636 (spr636), unsigned 64 bits
+       737: spr637 (spr637), unsigned 64 bits
+       738: spr638 (spr638), unsigned 64 bits
+       739: spr639 (spr639), unsigned 64 bits
+       740: spr640 (spr640), unsigned 64 bits
+       741: spr641 (spr641), unsigned 64 bits
+       742: spr642 (spr642), unsigned 64 bits
+       743: spr643 (spr643), unsigned 64 bits
+       744: spr644 (spr644), unsigned 64 bits
+       745: spr645 (spr645), unsigned 64 bits
+       746: spr646 (spr646), unsigned 64 bits
+       747: spr647 (spr647), unsigned 64 bits
+       748: spr648 (spr648), unsigned 64 bits
+       749: spr649 (spr649), unsigned 64 bits
+       750: spr650 (spr650), unsigned 64 bits
+       751: spr651 (spr651), unsigned 64 bits
+       752: spr652 (spr652), unsigned 64 bits
+       753: spr653 (spr653), unsigned 64 bits
+       754: spr654 (spr654), unsigned 64 bits
+       755: spr655 (spr655), unsigned 64 bits
+       756: spr656 (spr656), unsigned 64 bits
+       757: spr657 (spr657), unsigned 64 bits
+       758: spr658 (spr658), unsigned 64 bits
+       759: spr659 (spr659), unsigned 64 bits
+       760: spr660 (spr660), unsigned 64 bits
+       761: spr661 (spr661), unsigned 64 bits
+       762: spr662 (spr662), unsigned 64 bits
+       763: spr663 (spr663), unsigned 64 bits
+       764: spr664 (spr664), unsigned 64 bits
+       765: spr665 (spr665), unsigned 64 bits
+       766: spr666 (spr666), unsigned 64 bits
+       767: spr667 (spr667), unsigned 64 bits
+       768: spr668 (spr668), unsigned 64 bits
+       769: spr669 (spr669), unsigned 64 bits
+       770: spr670 (spr670), unsigned 64 bits
+       771: spr671 (spr671), unsigned 64 bits
+       772: spr672 (spr672), unsigned 64 bits
+       773: spr673 (spr673), unsigned 64 bits
+       774: spr674 (spr674), unsigned 64 bits
+       775: spr675 (spr675), unsigned 64 bits
+       776: spr676 (spr676), unsigned 64 bits
+       777: spr677 (spr677), unsigned 64 bits
+       778: spr678 (spr678), unsigned 64 bits
+       779: spr679 (spr679), unsigned 64 bits
+       780: spr680 (spr680), unsigned 64 bits
+       781: spr681 (spr681), unsigned 64 bits
+       782: spr682 (spr682), unsigned 64 bits
+       783: spr683 (spr683), unsigned 64 bits
+       784: spr684 (spr684), unsigned 64 bits
+       785: spr685 (spr685), unsigned 64 bits
+       786: spr686 (spr686), unsigned 64 bits
+       787: spr687 (spr687), unsigned 64 bits
+       788: spr688 (spr688), unsigned 64 bits
+       789: spr689 (spr689), unsigned 64 bits
+       790: spr690 (spr690), unsigned 64 bits
+       791: spr691 (spr691), unsigned 64 bits
+       792: spr692 (spr692), unsigned 64 bits
+       793: spr693 (spr693), unsigned 64 bits
+       794: spr694 (spr694), unsigned 64 bits
+       795: spr695 (spr695), unsigned 64 bits
+       796: spr696 (spr696), unsigned 64 bits
+       797: spr697 (spr697), unsigned 64 bits
+       798: spr698 (spr698), unsigned 64 bits
+       799: spr699 (spr699), unsigned 64 bits
+       800: spr700 (spr700), unsigned 64 bits
+       801: spr701 (spr701), unsigned 64 bits
+       802: spr702 (spr702), unsigned 64 bits
+       803: spr703 (spr703), unsigned 64 bits
+       804: spr704 (spr704), unsigned 64 bits
+       805: spr705 (spr705), unsigned 64 bits
+       806: spr706 (spr706), unsigned 64 bits
+       807: spr707 (spr707), unsigned 64 bits
+       808: spr708 (spr708), unsigned 64 bits
+       809: spr709 (spr709), unsigned 64 bits
+       810: spr710 (spr710), unsigned 64 bits
+       811: spr711 (spr711), unsigned 64 bits
+       812: spr712 (spr712), unsigned 64 bits
+       813: spr713 (spr713), unsigned 64 bits
+       814: spr714 (spr714), unsigned 64 bits
+       815: spr715 (spr715), unsigned 64 bits
+       816: spr716 (spr716), unsigned 64 bits
+       817: spr717 (spr717), unsigned 64 bits
+       818: spr718 (spr718), unsigned 64 bits
+       819: spr719 (spr719), unsigned 64 bits
+       820: spr720 (spr720), unsigned 64 bits
+       821: spr721 (spr721), unsigned 64 bits
+       822: spr722 (spr722), unsigned 64 bits
+       823: spr723 (spr723), unsigned 64 bits
+       824: spr724 (spr724), unsigned 64 bits
+       825: spr725 (spr725), unsigned 64 bits
+       826: spr726 (spr726), unsigned 64 bits
+       827: spr727 (spr727), unsigned 64 bits
+       828: spr728 (spr728), unsigned 64 bits
+       829: spr729 (spr729), unsigned 64 bits
+       830: spr730 (spr730), unsigned 64 bits
+       831: spr731 (spr731), unsigned 64 bits
+       832: spr732 (spr732), unsigned 64 bits
+       833: spr733 (spr733), unsigned 64 bits
+       834: spr734 (spr734), unsigned 64 bits
+       835: spr735 (spr735), unsigned 64 bits
+       836: spr736 (spr736), unsigned 64 bits
+       837: spr737 (spr737), unsigned 64 bits
+       838: spr738 (spr738), unsigned 64 bits
+       839: spr739 (spr739), unsigned 64 bits
+       840: spr740 (spr740), unsigned 64 bits
+       841: spr741 (spr741), unsigned 64 bits
+       842: spr742 (spr742), unsigned 64 bits
+       843: spr743 (spr743), unsigned 64 bits
+       844: spr744 (spr744), unsigned 64 bits
+       845: spr745 (spr745), unsigned 64 bits
+       846: spr746 (spr746), unsigned 64 bits
+       847: spr747 (spr747), unsigned 64 bits
+       848: spr748 (spr748), unsigned 64 bits
+       849: spr749 (spr749), unsigned 64 bits
+       850: spr750 (spr750), unsigned 64 bits
+       851: spr751 (spr751), unsigned 64 bits
+       852: spr752 (spr752), unsigned 64 bits
+       853: spr753 (spr753), unsigned 64 bits
+       854: spr754 (spr754), unsigned 64 bits
+       855: spr755 (spr755), unsigned 64 bits
+       856: spr756 (spr756), unsigned 64 bits
+       857: spr757 (spr757), unsigned 64 bits
+       858: spr758 (spr758), unsigned 64 bits
+       859: spr759 (spr759), unsigned 64 bits
+       860: spr760 (spr760), unsigned 64 bits
+       861: spr761 (spr761), unsigned 64 bits
+       862: spr762 (spr762), unsigned 64 bits
+       863: spr763 (spr763), unsigned 64 bits
+       864: spr764 (spr764), unsigned 64 bits
+       865: spr765 (spr765), unsigned 64 bits
+       866: spr766 (spr766), unsigned 64 bits
+       867: spr767 (spr767), unsigned 64 bits
+       868: spr768 (spr768), unsigned 64 bits
+       869: spr769 (spr769), unsigned 64 bits
+       870: spr770 (spr770), unsigned 64 bits
+       871: spr771 (spr771), unsigned 64 bits
+       872: spr772 (spr772), unsigned 64 bits
+       873: spr773 (spr773), unsigned 64 bits
+       874: spr774 (spr774), unsigned 64 bits
+       875: spr775 (spr775), unsigned 64 bits
+       876: spr776 (spr776), unsigned 64 bits
+       877: spr777 (spr777), unsigned 64 bits
+       878: spr778 (spr778), unsigned 64 bits
+       879: spr779 (spr779), unsigned 64 bits
+       880: spr780 (spr780), unsigned 64 bits
+       881: spr781 (spr781), unsigned 64 bits
+       882: spr782 (spr782), unsigned 64 bits
+       883: spr783 (spr783), unsigned 64 bits
+       884: spr784 (spr784), unsigned 64 bits
+       885: spr785 (spr785), unsigned 64 bits
+       886: spr786 (spr786), unsigned 64 bits
+       887: spr787 (spr787), unsigned 64 bits
+       888: spr788 (spr788), unsigned 64 bits
+       889: spr789 (spr789), unsigned 64 bits
+       890: spr790 (spr790), unsigned 64 bits
+       891: spr791 (spr791), unsigned 64 bits
+       892: spr792 (spr792), unsigned 64 bits
+       893: spr793 (spr793), unsigned 64 bits
+       894: spr794 (spr794), unsigned 64 bits
+       895: spr795 (spr795), unsigned 64 bits
+       896: spr796 (spr796), unsigned 64 bits
+       897: spr797 (spr797), unsigned 64 bits
+       898: spr798 (spr798), unsigned 64 bits
+       899: spr799 (spr799), unsigned 64 bits
+       900: spr800 (spr800), unsigned 64 bits
+       901: spr801 (spr801), unsigned 64 bits
+       902: spr802 (spr802), unsigned 64 bits
+       903: spr803 (spr803), unsigned 64 bits
+       904: spr804 (spr804), unsigned 64 bits
+       905: spr805 (spr805), unsigned 64 bits
+       906: spr806 (spr806), unsigned 64 bits
+       907: spr807 (spr807), unsigned 64 bits
+       908: spr808 (spr808), unsigned 64 bits
+       909: spr809 (spr809), unsigned 64 bits
+       910: spr810 (spr810), unsigned 64 bits
+       911: spr811 (spr811), unsigned 64 bits
+       912: spr812 (spr812), unsigned 64 bits
+       913: spr813 (spr813), unsigned 64 bits
+       914: spr814 (spr814), unsigned 64 bits
+       915: spr815 (spr815), unsigned 64 bits
+       916: spr816 (spr816), unsigned 64 bits
+       917: spr817 (spr817), unsigned 64 bits
+       918: spr818 (spr818), unsigned 64 bits
+       919: spr819 (spr819), unsigned 64 bits
+       920: spr820 (spr820), unsigned 64 bits
+       921: spr821 (spr821), unsigned 64 bits
+       922: spr822 (spr822), unsigned 64 bits
+       923: spr823 (spr823), unsigned 64 bits
+       924: spr824 (spr824), unsigned 64 bits
+       925: spr825 (spr825), unsigned 64 bits
+       926: spr826 (spr826), unsigned 64 bits
+       927: spr827 (spr827), unsigned 64 bits
+       928: spr828 (spr828), unsigned 64 bits
+       929: spr829 (spr829), unsigned 64 bits
+       930: spr830 (spr830), unsigned 64 bits
+       931: spr831 (spr831), unsigned 64 bits
+       932: spr832 (spr832), unsigned 64 bits
+       933: spr833 (spr833), unsigned 64 bits
+       934: spr834 (spr834), unsigned 64 bits
+       935: spr835 (spr835), unsigned 64 bits
+       936: spr836 (spr836), unsigned 64 bits
+       937: spr837 (spr837), unsigned 64 bits
+       938: spr838 (spr838), unsigned 64 bits
+       939: spr839 (spr839), unsigned 64 bits
+       940: spr840 (spr840), unsigned 64 bits
+       941: spr841 (spr841), unsigned 64 bits
+       942: spr842 (spr842), unsigned 64 bits
+       943: spr843 (spr843), unsigned 64 bits
+       944: spr844 (spr844), unsigned 64 bits
+       945: spr845 (spr845), unsigned 64 bits
+       946: spr846 (spr846), unsigned 64 bits
+       947: spr847 (spr847), unsigned 64 bits
+       948: spr848 (spr848), unsigned 64 bits
+       949: spr849 (spr849), unsigned 64 bits
+       950: spr850 (spr850), unsigned 64 bits
+       951: spr851 (spr851), unsigned 64 bits
+       952: spr852 (spr852), unsigned 64 bits
+       953: spr853 (spr853), unsigned 64 bits
+       954: spr854 (spr854), unsigned 64 bits
+       955: spr855 (spr855), unsigned 64 bits
+       956: spr856 (spr856), unsigned 64 bits
+       957: spr857 (spr857), unsigned 64 bits
+       958: spr858 (spr858), unsigned 64 bits
+       959: spr859 (spr859), unsigned 64 bits
+       960: spr860 (spr860), unsigned 64 bits
+       961: spr861 (spr861), unsigned 64 bits
+       962: spr862 (spr862), unsigned 64 bits
+       963: spr863 (spr863), unsigned 64 bits
+       964: spr864 (spr864), unsigned 64 bits
+       965: spr865 (spr865), unsigned 64 bits
+       966: spr866 (spr866), unsigned 64 bits
+       967: spr867 (spr867), unsigned 64 bits
+       968: spr868 (spr868), unsigned 64 bits
+       969: spr869 (spr869), unsigned 64 bits
+       970: spr870 (spr870), unsigned 64 bits
+       971: spr871 (spr871), unsigned 64 bits
+       972: spr872 (spr872), unsigned 64 bits
+       973: spr873 (spr873), unsigned 64 bits
+       974: spr874 (spr874), unsigned 64 bits
+       975: spr875 (spr875), unsigned 64 bits
+       976: spr876 (spr876), unsigned 64 bits
+       977: spr877 (spr877), unsigned 64 bits
+       978: spr878 (spr878), unsigned 64 bits
+       979: spr879 (spr879), unsigned 64 bits
+       980: spr880 (spr880), unsigned 64 bits
+       981: spr881 (spr881), unsigned 64 bits
+       982: spr882 (spr882), unsigned 64 bits
+       983: spr883 (spr883), unsigned 64 bits
+       984: spr884 (spr884), unsigned 64 bits
+       985: spr885 (spr885), unsigned 64 bits
+       986: spr886 (spr886), unsigned 64 bits
+       987: spr887 (spr887), unsigned 64 bits
+       988: spr888 (spr888), unsigned 64 bits
+       989: spr889 (spr889), unsigned 64 bits
+       990: spr890 (spr890), unsigned 64 bits
+       991: spr891 (spr891), unsigned 64 bits
+       992: spr892 (spr892), unsigned 64 bits
+       993: spr893 (spr893), unsigned 64 bits
+       994: spr894 (spr894), unsigned 64 bits
+       995: spr895 (spr895), unsigned 64 bits
+       996: spr896 (spr896), unsigned 64 bits
+       997: spr897 (spr897), unsigned 64 bits
+       998: spr898 (spr898), unsigned 64 bits
+       999: spr899 (spr899), unsigned 64 bits
+vector registers:
+       1124: vr0 (vr0), unsigned 128 bits
+       1125: vr1 (vr1), unsigned 128 bits
+       1126: vr2 (vr2), unsigned 128 bits
+       1127: vr3 (vr3), unsigned 128 bits
+       1128: vr4 (vr4), unsigned 128 bits
+       1129: vr5 (vr5), unsigned 128 bits
+       1130: vr6 (vr6), unsigned 128 bits
+       1131: vr7 (vr7), unsigned 128 bits
+       1132: vr8 (vr8), unsigned 128 bits
+       1133: vr9 (vr9), unsigned 128 bits
+       1134: vr10 (vr10), unsigned 128 bits
+       1135: vr11 (vr11), unsigned 128 bits
+       1136: vr12 (vr12), unsigned 128 bits
+       1137: vr13 (vr13), unsigned 128 bits
+       1138: vr14 (vr14), unsigned 128 bits
+       1139: vr15 (vr15), unsigned 128 bits
+       1140: vr16 (vr16), unsigned 128 bits
+       1141: vr17 (vr17), unsigned 128 bits
+       1142: vr18 (vr18), unsigned 128 bits
+       1143: vr19 (vr19), unsigned 128 bits
+       1144: vr20 (vr20), unsigned 128 bits
+       1145: vr21 (vr21), unsigned 128 bits
+       1146: vr22 (vr22), unsigned 128 bits
+       1147: vr23 (vr23), unsigned 128 bits
+       1148: vr24 (vr24), unsigned 128 bits
+       1149: vr25 (vr25), unsigned 128 bits
+       1150: vr26 (vr26), unsigned 128 bits
+       1151: vr27 (vr27), unsigned 128 bits
+       1152: vr28 (vr28), unsigned 128 bits
+       1153: vr29 (vr29), unsigned 128 bits
+       1154: vr30 (vr30), unsigned 128 bits
+       1155: vr31 (vr31), unsigned 128 bits
+EOF
+
+regs_test testfile26 <<\EOF
+integer registers:
+         0: %r0 (r0), signed 32 bits
+         1: %r1 (r1), signed 32 bits
+         2: %r2 (r2), signed 32 bits
+         3: %r3 (r3), signed 32 bits
+         4: %r4 (r4), signed 32 bits
+         5: %r5 (r5), signed 32 bits
+         6: %r6 (r6), signed 32 bits
+         7: %r7 (r7), signed 32 bits
+         8: %r8 (r8), signed 32 bits
+         9: %r9 (r9), signed 32 bits
+        10: %r10 (r10), signed 32 bits
+        11: %r11 (r11), signed 32 bits
+        12: %r12 (r12), signed 32 bits
+        13: %r13 (r13), signed 32 bits
+        14: %r14 (r14), signed 32 bits
+        15: %r15 (r15), signed 32 bits
+FPU registers:
+        16: %f0 (f0), float 64 bits
+        17: %f2 (f2), float 64 bits
+        18: %f4 (f4), float 64 bits
+        19: %f6 (f6), float 64 bits
+        20: %f1 (f1), float 64 bits
+        21: %f3 (f3), float 64 bits
+        22: %f5 (f5), float 64 bits
+        23: %f7 (f7), float 64 bits
+        24: %f8 (f8), float 64 bits
+        25: %f10 (f10), float 64 bits
+        26: %f12 (f12), float 64 bits
+        27: %f14 (f14), float 64 bits
+        28: %f9 (f9), float 64 bits
+        29: %f11 (f11), float 64 bits
+        30: %f13 (f13), float 64 bits
+        31: %f15 (f15), float 64 bits
+access registers:
+        48: %a0 (a0), unsigned 32 bits
+        49: %a1 (a1), unsigned 32 bits
+        50: %a2 (a2), unsigned 32 bits
+        51: %a3 (a3), unsigned 32 bits
+        52: %a4 (a4), unsigned 32 bits
+        53: %a5 (a5), unsigned 32 bits
+        54: %a6 (a6), unsigned 32 bits
+        55: %a7 (a7), unsigned 32 bits
+        56: %a8 (a8), unsigned 32 bits
+        57: %a9 (a9), unsigned 32 bits
+        58: %a10 (a10), unsigned 32 bits
+        59: %a11 (a11), unsigned 32 bits
+        60: %a12 (a12), unsigned 32 bits
+        61: %a13 (a13), unsigned 32 bits
+        62: %a14 (a14), unsigned 32 bits
+        63: %a15 (a15), unsigned 32 bits
+control registers:
+        32: %c0 (c0), unsigned 32 bits
+        33: %c1 (c1), unsigned 32 bits
+        34: %c2 (c2), unsigned 32 bits
+        35: %c3 (c3), unsigned 32 bits
+        36: %c4 (c4), unsigned 32 bits
+        37: %c5 (c5), unsigned 32 bits
+        38: %c6 (c6), unsigned 32 bits
+        39: %c7 (c7), unsigned 32 bits
+        40: %c8 (c8), unsigned 32 bits
+        41: %c9 (c9), unsigned 32 bits
+        42: %c10 (c10), unsigned 32 bits
+        43: %c11 (c11), unsigned 32 bits
+        44: %c12 (c12), unsigned 32 bits
+        45: %c13 (c13), unsigned 32 bits
+        46: %c14 (c14), unsigned 32 bits
+        47: %c15 (c15), unsigned 32 bits
+        64: %pswm (pswm), unsigned 32 bits
+        65: %pswa (pswa), address 32 bits
+EOF
+
+regs_test testfile27 <<\EOF
+integer registers:
+         0: %r0 (r0), signed 64 bits
+         1: %r1 (r1), signed 64 bits
+         2: %r2 (r2), signed 64 bits
+         3: %r3 (r3), signed 64 bits
+         4: %r4 (r4), signed 64 bits
+         5: %r5 (r5), signed 64 bits
+         6: %r6 (r6), signed 64 bits
+         7: %r7 (r7), signed 64 bits
+         8: %r8 (r8), signed 64 bits
+         9: %r9 (r9), signed 64 bits
+        10: %r10 (r10), signed 64 bits
+        11: %r11 (r11), signed 64 bits
+        12: %r12 (r12), signed 64 bits
+        13: %r13 (r13), signed 64 bits
+        14: %r14 (r14), signed 64 bits
+        15: %r15 (r15), signed 64 bits
+FPU registers:
+        16: %f0 (f0), float 64 bits
+        17: %f2 (f2), float 64 bits
+        18: %f4 (f4), float 64 bits
+        19: %f6 (f6), float 64 bits
+        20: %f1 (f1), float 64 bits
+        21: %f3 (f3), float 64 bits
+        22: %f5 (f5), float 64 bits
+        23: %f7 (f7), float 64 bits
+        24: %f8 (f8), float 64 bits
+        25: %f10 (f10), float 64 bits
+        26: %f12 (f12), float 64 bits
+        27: %f14 (f14), float 64 bits
+        28: %f9 (f9), float 64 bits
+        29: %f11 (f11), float 64 bits
+        30: %f13 (f13), float 64 bits
+        31: %f15 (f15), float 64 bits
 access registers:
-        48: %a0 (a0)
-        49: %a1 (a1)
-        50: %a2 (a2)
-        51: %a3 (a3)
-        52: %a4 (a4)
-        53: %a5 (a5)
-        54: %a6 (a6)
-        55: %a7 (a7)
-        56: %a8 (a8)
-        57: %a9 (a9)
-        58: %a10 (a10)
-        59: %a11 (a11)
-        60: %a12 (a12)
-        61: %a13 (a13)
-        62: %a14 (a14)
-        63: %a15 (a15)
+        48: %a0 (a0), unsigned 32 bits
+        49: %a1 (a1), unsigned 32 bits
+        50: %a2 (a2), unsigned 32 bits
+        51: %a3 (a3), unsigned 32 bits
+        52: %a4 (a4), unsigned 32 bits
+        53: %a5 (a5), unsigned 32 bits
+        54: %a6 (a6), unsigned 32 bits
+        55: %a7 (a7), unsigned 32 bits
+        56: %a8 (a8), unsigned 32 bits
+        57: %a9 (a9), unsigned 32 bits
+        58: %a10 (a10), unsigned 32 bits
+        59: %a11 (a11), unsigned 32 bits
+        60: %a12 (a12), unsigned 32 bits
+        61: %a13 (a13), unsigned 32 bits
+        62: %a14 (a14), unsigned 32 bits
+        63: %a15 (a15), unsigned 32 bits
 control registers:
-        32: %c0 (c0)
-        33: %c1 (c1)
-        34: %c2 (c2)
-        35: %c3 (c3)
-        36: %c4 (c4)
-        37: %c5 (c5)
-        38: %c6 (c6)
-        39: %c7 (c7)
-        40: %c8 (c8)
-        41: %c9 (c9)
-        42: %c10 (c10)
-        43: %c11 (c11)
-        44: %c12 (c12)
-        45: %c13 (c13)
-        46: %c14 (c14)
-        47: %c15 (c15)
-        64: %pswm (pswm)
-        65: %pswa (pswa)
+        32: %c0 (c0), unsigned 64 bits
+        33: %c1 (c1), unsigned 64 bits
+        34: %c2 (c2), unsigned 64 bits
+        35: %c3 (c3), unsigned 64 bits
+        36: %c4 (c4), unsigned 64 bits
+        37: %c5 (c5), unsigned 64 bits
+        38: %c6 (c6), unsigned 64 bits
+        39: %c7 (c7), unsigned 64 bits
+        40: %c8 (c8), unsigned 64 bits
+        41: %c9 (c9), unsigned 64 bits
+        42: %c10 (c10), unsigned 64 bits
+        43: %c11 (c11), unsigned 64 bits
+        44: %c12 (c12), unsigned 64 bits
+        45: %c13 (c13), unsigned 64 bits
+        46: %c14 (c14), unsigned 64 bits
+        47: %c15 (c15), unsigned 64 bits
+        64: %pswm (pswm), unsigned 64 bits
+        65: %pswa (pswa), address 64 bits
 EOF
 
 regs_test testfile30 <<\EOF
 integer registers:
-         0: %g0 (g0)
-         1: %g1 (g1)
-         2: %g2 (g2)
-         3: %g3 (g3)
-         4: %g4 (g4)
-         5: %g5 (g5)
-         6: %g6 (g6)
-         7: %g7 (g7)
-         8: %o0 (o0)
-         9: %o1 (o1)
-        10: %o2 (o2)
-        11: %o3 (o3)
-        12: %o4 (o4)
-        13: %o5 (o5)
-        14: %o6 (o6)
-        15: %o7 (o7)
-        16: %l0 (l0)
-        17: %l1 (l1)
-        18: %l2 (l2)
-        19: %l3 (l3)
-        20: %l4 (l4)
-        21: %l5 (l5)
-        22: %l6 (l6)
-        23: %l7 (l7)
-        24: %i0 (i0)
-        25: %i1 (i1)
-        26: %i2 (i2)
-        27: %i3 (i3)
-        28: %i4 (i4)
-        29: %i5 (i5)
-        30: %i6 (i6)
-        31: %i7 (i7)
+         0: %g0 (g0), signed 32 bits
+         1: %g1 (g1), signed 32 bits
+         2: %g2 (g2), signed 32 bits
+         3: %g3 (g3), signed 32 bits
+         4: %g4 (g4), signed 32 bits
+         5: %g5 (g5), signed 32 bits
+         6: %g6 (g6), signed 32 bits
+         7: %g7 (g7), signed 32 bits
+         8: %o0 (o0), signed 32 bits
+         9: %o1 (o1), signed 32 bits
+        10: %o2 (o2), signed 32 bits
+        11: %o3 (o3), signed 32 bits
+        12: %o4 (o4), signed 32 bits
+        13: %o5 (o5), signed 32 bits
+        14: %o6 (o6), address 32 bits
+        15: %o7 (o7), signed 32 bits
+        16: %l0 (l0), signed 32 bits
+        17: %l1 (l1), signed 32 bits
+        18: %l2 (l2), signed 32 bits
+        19: %l3 (l3), signed 32 bits
+        20: %l4 (l4), signed 32 bits
+        21: %l5 (l5), signed 32 bits
+        22: %l6 (l6), signed 32 bits
+        23: %l7 (l7), signed 32 bits
+        24: %i0 (i0), signed 32 bits
+        25: %i1 (i1), signed 32 bits
+        26: %i2 (i2), signed 32 bits
+        27: %i3 (i3), signed 32 bits
+        28: %i4 (i4), signed 32 bits
+        29: %i5 (i5), signed 32 bits
+        30: %i6 (i6), address 32 bits
+        31: %i7 (i7), signed 32 bits
 FPU registers:
-        32: %f0 (f0)
-        33: %f1 (f1)
-        34: %f2 (f2)
-        35: %f3 (f3)
-        36: %f4 (f4)
-        37: %f5 (f5)
-        38: %f6 (f6)
-        39: %f7 (f7)
-        40: %f8 (f8)
-        41: %f9 (f9)
-        42: %f10 (f10)
-        43: %f11 (f11)
-        44: %f12 (f12)
-        45: %f13 (f13)
-        46: %f14 (f14)
-        47: %f15 (f15)
-        48: %f16 (f16)
-        49: %f17 (f17)
-        50: %f18 (f18)
-        51: %f19 (f19)
-        52: %f20 (f20)
-        53: %f21 (f21)
-        54: %f22 (f22)
-        55: %f23 (f23)
-        56: %f24 (f24)
-        57: %f25 (f25)
-        58: %f26 (f26)
-        59: %f27 (f27)
-        60: %f28 (f28)
-        61: %f29 (f29)
-        62: %f30 (f30)
-        63: %f31 (f31)
+        32: %f0 (f0), float 32 bits
+        33: %f1 (f1), float 32 bits
+        34: %f2 (f2), float 32 bits
+        35: %f3 (f3), float 32 bits
+        36: %f4 (f4), float 32 bits
+        37: %f5 (f5), float 32 bits
+        38: %f6 (f6), float 32 bits
+        39: %f7 (f7), float 32 bits
+        40: %f8 (f8), float 32 bits
+        41: %f9 (f9), float 32 bits
+        42: %f10 (f10), float 32 bits
+        43: %f11 (f11), float 32 bits
+        44: %f12 (f12), float 32 bits
+        45: %f13 (f13), float 32 bits
+        46: %f14 (f14), float 32 bits
+        47: %f15 (f15), float 32 bits
+        48: %f16 (f16), float 32 bits
+        49: %f17 (f17), float 32 bits
+        50: %f18 (f18), float 32 bits
+        51: %f19 (f19), float 32 bits
+        52: %f20 (f20), float 32 bits
+        53: %f21 (f21), float 32 bits
+        54: %f22 (f22), float 32 bits
+        55: %f23 (f23), float 32 bits
+        56: %f24 (f24), float 32 bits
+        57: %f25 (f25), float 32 bits
+        58: %f26 (f26), float 32 bits
+        59: %f27 (f27), float 32 bits
+        60: %f28 (f28), float 32 bits
+        61: %f29 (f29), float 32 bits
+        62: %f30 (f30), float 32 bits
+        63: %f31 (f31), float 32 bits
+control registers:
+        64: %y (y), unsigned 32 bits
+        65: %psr (psr), unsigned 32 bits
+        66: %wim (wim), unsigned 32 bits
+        67: %tbr (tbr), unsigned 32 bits
+        68: %pc (pc), address 32 bits
+        69: %npc (npc), address 32 bits
+        70: %fsr (fsr), unsigned 32 bits
+        71: %csr (csr), unsigned 32 bits
 EOF
 
 regs_test testfile31 <<\EOF
 integer registers:
-         0: %g0 (g0)
-         1: %g1 (g1)
-         2: %g2 (g2)
-         3: %g3 (g3)
-         4: %g4 (g4)
-         5: %g5 (g5)
-         6: %g6 (g6)
-         7: %g7 (g7)
-         8: %o0 (o0)
-         9: %o1 (o1)
-        10: %o2 (o2)
-        11: %o3 (o3)
-        12: %o4 (o4)
-        13: %o5 (o5)
-        14: %o6 (o6)
-        15: %o7 (o7)
-        16: %l0 (l0)
-        17: %l1 (l1)
-        18: %l2 (l2)
-        19: %l3 (l3)
-        20: %l4 (l4)
-        21: %l5 (l5)
-        22: %l6 (l6)
-        23: %l7 (l7)
-        24: %i0 (i0)
-        25: %i1 (i1)
-        26: %i2 (i2)
-        27: %i3 (i3)
-        28: %i4 (i4)
-        29: %i5 (i5)
-        30: %i6 (i6)
-        31: %i7 (i7)
+         0: %g0 (g0), signed 64 bits
+         1: %g1 (g1), signed 64 bits
+         2: %g2 (g2), signed 64 bits
+         3: %g3 (g3), signed 64 bits
+         4: %g4 (g4), signed 64 bits
+         5: %g5 (g5), signed 64 bits
+         6: %g6 (g6), signed 64 bits
+         7: %g7 (g7), signed 64 bits
+         8: %o0 (o0), signed 64 bits
+         9: %o1 (o1), signed 64 bits
+        10: %o2 (o2), signed 64 bits
+        11: %o3 (o3), signed 64 bits
+        12: %o4 (o4), signed 64 bits
+        13: %o5 (o5), signed 64 bits
+        14: %o6 (o6), address 64 bits
+        15: %o7 (o7), signed 64 bits
+        16: %l0 (l0), signed 64 bits
+        17: %l1 (l1), signed 64 bits
+        18: %l2 (l2), signed 64 bits
+        19: %l3 (l3), signed 64 bits
+        20: %l4 (l4), signed 64 bits
+        21: %l5 (l5), signed 64 bits
+        22: %l6 (l6), signed 64 bits
+        23: %l7 (l7), signed 64 bits
+        24: %i0 (i0), signed 64 bits
+        25: %i1 (i1), signed 64 bits
+        26: %i2 (i2), signed 64 bits
+        27: %i3 (i3), signed 64 bits
+        28: %i4 (i4), signed 64 bits
+        29: %i5 (i5), signed 64 bits
+        30: %i6 (i6), address 64 bits
+        31: %i7 (i7), signed 64 bits
 FPU registers:
-        32: %f0 (f0)
-        33: %f1 (f1)
-        34: %f2 (f2)
-        35: %f3 (f3)
-        36: %f4 (f4)
-        37: %f5 (f5)
-        38: %f6 (f6)
-        39: %f7 (f7)
-        40: %f8 (f8)
-        41: %f9 (f9)
-        42: %f10 (f10)
-        43: %f11 (f11)
-        44: %f12 (f12)
-        45: %f13 (f13)
-        46: %f14 (f14)
-        47: %f15 (f15)
-        48: %f16 (f16)
-        49: %f17 (f17)
-        50: %f18 (f18)
-        51: %f19 (f19)
-        52: %f20 (f20)
-        53: %f21 (f21)
-        54: %f22 (f22)
-        55: %f23 (f23)
-        56: %f24 (f24)
-        57: %f25 (f25)
-        58: %f26 (f26)
-        59: %f27 (f27)
-        60: %f28 (f28)
-        61: %f29 (f29)
-        62: %f30 (f30)
-        63: %f31 (f31)
-        64: %f32 (f32)
-        65: %f33 (f33)
-        66: %f34 (f34)
-        67: %f35 (f35)
-        68: %f36 (f36)
-        69: %f37 (f37)
-        70: %f38 (f38)
-        71: %f39 (f39)
-        72: %f40 (f40)
-        73: %f41 (f41)
-        74: %f42 (f42)
-        75: %f43 (f43)
-        76: %f44 (f44)
-        77: %f45 (f45)
-        78: %f46 (f46)
-        79: %f47 (f47)
-        80: %f48 (f48)
-        81: %f49 (f49)
-        82: %f50 (f50)
-        83: %f51 (f51)
-        84: %f52 (f52)
-        85: %f53 (f53)
-        86: %f54 (f54)
-        87: %f55 (f55)
-        88: %f56 (f56)
-        89: %f57 (f57)
-        90: %f58 (f58)
-        91: %f59 (f59)
-        92: %f60 (f60)
-        93: %f61 (f61)
-        94: %f62 (f62)
-        95: %f63 (f63)
+        32: %f0 (f0), float 32 bits
+        33: %f1 (f1), float 32 bits
+        34: %f2 (f2), float 32 bits
+        35: %f3 (f3), float 32 bits
+        36: %f4 (f4), float 32 bits
+        37: %f5 (f5), float 32 bits
+        38: %f6 (f6), float 32 bits
+        39: %f7 (f7), float 32 bits
+        40: %f8 (f8), float 32 bits
+        41: %f9 (f9), float 32 bits
+        42: %f10 (f10), float 32 bits
+        43: %f11 (f11), float 32 bits
+        44: %f12 (f12), float 32 bits
+        45: %f13 (f13), float 32 bits
+        46: %f14 (f14), float 32 bits
+        47: %f15 (f15), float 32 bits
+        48: %f16 (f16), float 32 bits
+        49: %f17 (f17), float 32 bits
+        50: %f18 (f18), float 32 bits
+        51: %f19 (f19), float 32 bits
+        52: %f20 (f20), float 32 bits
+        53: %f21 (f21), float 32 bits
+        54: %f22 (f22), float 32 bits
+        55: %f23 (f23), float 32 bits
+        56: %f24 (f24), float 32 bits
+        57: %f25 (f25), float 32 bits
+        58: %f26 (f26), float 32 bits
+        59: %f27 (f27), float 32 bits
+        60: %f28 (f28), float 32 bits
+        61: %f29 (f29), float 32 bits
+        62: %f30 (f30), float 32 bits
+        63: %f31 (f31), float 32 bits
+        64: %f32 (f32), float 64 bits
+        65: %f34 (f34), float 64 bits
+        66: %f36 (f36), float 64 bits
+        67: %f38 (f38), float 64 bits
+        68: %f40 (f40), float 64 bits
+        69: %f42 (f42), float 64 bits
+        70: %f44 (f44), float 64 bits
+        71: %f46 (f46), float 64 bits
+        72: %f48 (f48), float 64 bits
+        73: %f50 (f50), float 64 bits
+        74: %f52 (f52), float 64 bits
+        75: %f54 (f54), float 64 bits
+        76: %f56 (f56), float 64 bits
+        77: %f58 (f58), float 64 bits
+        78: %f60 (f60), float 64 bits
+        79: %f62 (f62), float 64 bits
+control registers:
+        80: %pc (pc), address 64 bits
+        81: %npc (npc), address 64 bits
+        82: %state (state), unsigned 64 bits
+        83: %fsr (fsr), unsigned 64 bits
+        84: %fprs (fprs), unsigned 64 bits
+        85: %y (y), unsigned 64 bits
 EOF
 
 exit 0
index 51482771c2f7fe952d2620b25c9b4015902360af..29119a134efed98f072bea328a6f332852ab11f9 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 1999, 2000, 2002, 2005 Red Hat, Inc.
+# Copyright (C) 1999, 2000, 2002, 2005, 2006 Red Hat, Inc.
 # This file is part of Red Hat elfutils.
 # Written by Ulrich Drepper <drepper@redhat.com>, 1999.
 #
@@ -24,6 +24,9 @@
 # Network licensing program, please visit www.openinventionnetwork.com
 # <http://www.openinventionnetwork.com>.
 
+. $srcdir/test-subr.sh
+
+tempfiles arextract.test
 
 archive=../libelf/libelf.a
 if test -f $archive; then
@@ -32,12 +35,11 @@ if test -f $archive; then
 
     # The files we are looking at.
     for f in ../libelf/*.o; do
-       ./arextract $archive `basename $f` arextract.test || exit 1
+       testrun ./arextract $archive `basename $f` arextract.test || exit 1
        cmp $f arextract.test || {
            echo "Extraction of $1 failed"
            exit 1
        }
-       rm -f ${objpfx}arextract.test
     done
 
     echo "done"
index 6e58af6953667a962f560de20333d131622b3fac..d47df7a70d67f4b3d2115c4650a52062714b3af1 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 1999, 2000, 2002 Red Hat, Inc.
+# Copyright (C) 1999, 2000, 2002, 2006 Red Hat, Inc.
 # This file is part of Red Hat elfutils.
 # Written by Ulrich Drepper <drepper@redhat.com>, 1999.
 #
 # Network licensing program, please visit www.openinventionnetwork.com
 # <http://www.openinventionnetwork.com>.
 
+. $srcdir/test-subr.sh
+
 lib=../libelf/libelf.a
 okfile=arsymtest.ok
 tmpfile=arsymtest.tmp
 testfile=arsymtest.test
 
-result=0
+tempfiles $okfile $tmpfile $testfile
+
+result=77
 if test -f $lib; then
     # Generate list using `nm' we check against.
     nm -s $lib |
@@ -37,14 +41,12 @@ if test -f $lib; then
     sort > $okfile
 
     # Now run our program using libelf.
-    ./arsymtest $lib $tmpfile || exit 1
+    testrun ./arsymtest $lib $tmpfile || exit 1
     sort $tmpfile > $testfile
-    rm $tmpfile
 
     # Compare the outputs.
     if cmp $okfile $testfile; then
        result=0
-       rm $testfile $okfile
     else
        result=1
     fi
index e64b252fb11ed74924c1e360f01bdc9b7ff82693..99926b039595f3c56e452e6b068564a8a1a43354 100755 (executable)
@@ -58,7 +58,8 @@ trap native_cleanup 0 1 2 15
 for cc in "$HOSTCC" "$HOST_CC" cc gcc "$CC"; do
   test "x$cc" != x || continue
   $cc -o native -g native.c > /dev/null 2>&1 &&
-  ./native > /dev/null 2>&1 & native=$! &&
+  # Some shell versions don't do this right without the braces.
+  { ./native > /dev/null 2>&1 & native=$! ; } &&
   sleep 1 && kill -0 $native 2> /dev/null &&
   break ||
   native=0
index 139c2669ef5830d28f2241d4ea6980a661959ac0..cfd9d236586bfecc75d8549c57302ede27d064b9 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2005 Red Hat, Inc.
+# Copyright (C) 2005, 2006 Red Hat, Inc.
 # This file is part of Red Hat elfutils.
 # Written by Ulrich Drepper <drepper@redhat.com>, 2005.
 #
@@ -29,6 +29,9 @@
 files="testfile `seq 2 9 | while read n; do echo testfile$n; done`"
 testfiles $files
 
+LC_ALL=C
+export LC_ALL
+
 testrun_compare ../src/strings -tx -f $files <<\EOF
 testfile:      f4 /lib/ld-linux.so.2
 testfile:     1c9 __gmon_start__