aboutsummaryrefslogtreecommitdiff
path: root/gdb/alpha-tdep.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2003-06-02 16:13:58 +0000
committerRichard Henderson <rth@redhat.com>2003-06-02 16:13:58 +0000
commit7266705675d569d940cb6ce04d17c78c6a3b554e (patch)
treee5b4cc672913f11e4baf3684d25d772d56c07aaa /gdb/alpha-tdep.c
parent6dd77b815f4252948dae6b0a7e467789b09c6bbb (diff)
downloadgdb-7266705675d569d940cb6ce04d17c78c6a3b554e.zip
gdb-7266705675d569d940cb6ce04d17c78c6a3b554e.tar.gz
gdb-7266705675d569d940cb6ce04d17c78c6a3b554e.tar.bz2
* alpha-tdep.c (alpha_register_virtual_type): Use void_data_ptr
for SP, GP; void_func_ptr for PC; non-language-specific types for all others. * alpha-tdep.h (ALPHA_GP_REGNUM): New.
Diffstat (limited to 'gdb/alpha-tdep.c')
-rw-r--r--gdb/alpha-tdep.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index 53c9f63..44b8401 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -89,8 +89,17 @@ alpha_register_convertible (int regno)
static struct type *
alpha_register_virtual_type (int regno)
{
- return ((regno >= FP0_REGNUM && regno < (FP0_REGNUM+31))
- ? builtin_type_double : builtin_type_long);
+ if (regno == ALPHA_SP_REGNUM || regno == ALPHA_GP_REGNUM)
+ return builtin_type_void_data_ptr;
+ if (regno == ALPHA_PC_REGNUM)
+ return builtin_type_void_func_ptr;
+
+ /* Don't need to worry about little vs big endian until
+ some jerk tries to port to alpha-unicosmk. */
+ if (regno >= FP0_REGNUM && regno < FP0_REGNUM + 31)
+ return builtin_type_ieee_double_little;
+
+ return builtin_type_int64;
}
/* Is REGNUM a member of REGGROUP? */