diff options
| author | Roland McGrath <[email protected]> | 2006-10-10 00:25:21 +0000 |
|---|---|---|
| committer | Roland McGrath <[email protected]> | 2006-10-10 00:25:21 +0000 |
| commit | c373d850ec9ca342f4c71d5e287c8d8bf0723cd6 (patch) | |
| tree | c8f9ea814866cdfb30ac9506ccddbc8629ebe345 /backends/ppc_regs.c | |
| parent | 1dee360aa30fecd20f403f98fd1cb9e543afcca7 (diff) | |
2006-10-09 Roland McGrath <[email protected]>
* ia64_symbol.c (ia64_reloc_simple_type): Treat SECREL types as simple.
Diffstat (limited to 'backends/ppc_regs.c')
| -rw-r--r-- | backends/ppc_regs.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/backends/ppc_regs.c b/backends/ppc_regs.c index bea8d357..3d47d3d0 100644 --- a/backends/ppc_regs.c +++ b/backends/ppc_regs.c @@ -28,14 +28,16 @@ #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"))); |
