]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
Handle ARM VFP register names.
authorRoland McGrath <roland@redhat.com>
Fri, 17 Apr 2009 03:32:42 +0000 (20:32 -0700)
committerRoland McGrath <roland@redhat.com>
Fri, 17 Apr 2009 03:32:42 +0000 (20:32 -0700)
backends/ChangeLog
backends/arm_regs.c

index 21b8c739e205bd951255a2c6ef3c0279f4b05893..c764f9ef5bd5ee4334b254b3fb0eadaaeac43131 100644 (file)
@@ -1,5 +1,7 @@
 2009-04-16  Roland McGrath  <roland@redhat.com>
 
+       * arm_regs.c (arm_register_info): Handle VFP registers.
+
        * i386_corenote.c (EXTRA_NOTES): NT_PRXFPREG -> NT_PRXFPREG
 
 2009-04-14  Roland McGrath  <roland@redhat.com>
index b7351ce2ed3a9fe45f52e9600e8ec40e625e5c8d..0a9536d43c611e7e5691cb88d7a2feafd2e5a5c6 100644 (file)
@@ -40,9 +40,9 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)),
                   int *bits, int *type)
 {
   if (name == NULL)
-    return 129;
+    return 320;
 
-  if (regno < 0 || regno > 128 || namelen < 5)
+  if (regno < 0 || regno > 320 || namelen < 5)
     return -1;
 
   *prefix = NULL;
@@ -88,6 +88,25 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)),
       *type = DW_ATE_unsigned;
       return stpcpy (name, "spsr") + 1 - name;
 
+    case 256 + 0 ... 256 + 9:
+      *setname = "VFP";
+      *type = DW_ATE_float;
+      *bits = 64;
+      name[0] = 'd';
+      name[1] = regno - 256 + '0';
+      namelen = 2;
+      break;
+
+    case 256 + 10 ... 256 + 31:
+      *setname = "VFP";
+      *type = DW_ATE_float;
+      *bits = 64;
+      name[0] = 'd';
+      name[1] = (regno - 256) / 10 + '0';
+      name[2] = (regno - 256) % 10 + '0';
+      namelen = 3;
+      break;
+
     default:
       *setname = NULL;
       return 0;