* alpha-tdep.c (alpha_register_virtual_type): Use void_data_ptr
authorRichard Henderson <rth@redhat.com>
Mon, 2 Jun 2003 16:13:58 +0000 (16:13 +0000)
committerRichard Henderson <rth@redhat.com>
Mon, 2 Jun 2003 16:13:58 +0000 (16:13 +0000)
        for SP, GP; void_func_ptr for PC; non-language-specific types
        for all others.
        * alpha-tdep.h (ALPHA_GP_REGNUM): New.

gdb/ChangeLog
gdb/alpha-tdep.c
gdb/alpha-tdep.h

index 68cb29db1e3d5066593eca5abb113efd047f1d85..ff7afe633b61b05ee3cb5084c86e1a11ee7c7287 100644 (file)
@@ -1,3 +1,10 @@
+2003-06-02  Richard Henderson  <rth@redhat.com>
+
+        * 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.
+
 2003-06-02  Richard Henderson  <rth@redhat.com>
 
        * top.h (lim_at_start): Declare.
index 53c9f63d192fd50857a68c169c2e53cad7c01738..44b8401cff477fe25f673f47124ce2ba922769ec 100644 (file)
@@ -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?  */
index f69eeac1a2c6ddc5604d3b4a1fafe689de6875ec..7f1ec5139ef107efdae8b9c169e8dbc54992aa3e 100644 (file)
 #define ALPHA_GCC_FP_REGNUM 15  /* Used by gcc as frame register */
 #define ALPHA_A0_REGNUM     16  /* Loc of first arg during a subr call */
 #define ALPHA_T9_REGNUM     23  /* Return address register for OSF/1 __div* */
+#define ALPHA_RA_REGNUM     26  /* Contains return address value */
 #define ALPHA_T12_REGNUM    27  /* Contains start addr of current proc */
+#define ALPHA_GP_REGNUM     29  /* Contains the global pointer */
 #define ALPHA_SP_REGNUM     30  /* Contains address of top of stack */
-#define ALPHA_RA_REGNUM     26  /* Contains return address value */
 #define ALPHA_ZERO_REGNUM   31  /* Read-only register, always 0 */
 #define ALPHA_FP0_REGNUM    32  /* Floating point register 0 */
 #define ALPHA_FPA0_REGNUM   48  /* First float arg during a subr call */