diff options
author | Roland McGrath <roland@redhat.com> | 2009-04-16 20:32:42 -0700 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 2009-04-16 20:32:42 -0700 |
commit | c6f20e44e767f43219accd53f3211fd980dd2660 (patch) | |
tree | aa20458f8ebdbdb9b8354babe42daf674e34b0ef | |
parent | 8ec82157be1d8ea52f8cc43a22b8cedbade41986 (diff) | |
download | elfutils-c6f20e44e767f43219accd53f3211fd980dd2660.tar.gz |
Handle ARM VFP register names.
-rw-r--r-- | backends/ChangeLog | 2 | ||||
-rw-r--r-- | backends/arm_regs.c | 23 |
2 files changed, 23 insertions, 2 deletions
diff --git a/backends/ChangeLog b/backends/ChangeLog index 21b8c739..c764f9ef 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -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> diff --git a/backends/arm_regs.c b/backends/arm_regs.c index b7351ce2..0a9536d4 100644 --- a/backends/arm_regs.c +++ b/backends/arm_regs.c @@ -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; |