diff options
author | Richard Henderson <rth@redhat.com> | 2003-06-02 16:13:58 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 2003-06-02 16:13:58 +0000 |
commit | 7266705675d569d940cb6ce04d17c78c6a3b554e (patch) | |
tree | e5b4cc672913f11e4baf3684d25d772d56c07aaa /gdb/alpha-tdep.c | |
parent | 6dd77b815f4252948dae6b0a7e467789b09c6bbb (diff) | |
download | gdb-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.c | 13 |
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? */ |