From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6081 invoked by alias); 2 Jun 2003 05:04:01 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 6046 invoked from network); 2 Jun 2003 05:03:59 -0000 Received: from unknown (HELO are.twiddle.net) (64.81.246.98) by sources.redhat.com with SMTP; 2 Jun 2003 05:03:59 -0000 Received: from are.twiddle.net (localhost.localdomain [127.0.0.1]) by are.twiddle.net (8.12.8/8.12.8) with ESMTP id h5253xLH007457 for ; Sun, 1 Jun 2003 22:03:59 -0700 Received: (from rth@localhost) by are.twiddle.net (8.12.8/8.12.8/Submit) id h5253x1d007455 for gdb-patches@sources.redhat.com; Sun, 1 Jun 2003 22:03:59 -0700 X-Authentication-Warning: are.twiddle.net: rth set sender to rth@twiddle.net using -f Date: Mon, 02 Jun 2003 05:04:00 -0000 From: Richard Henderson To: gdb-patches@sources.redhat.com Subject: [RFA] better alpha_register_virtual_type Message-ID: <20030602050358.GA7443@twiddle.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-SW-Source: 2003-06/txt/msg00054.txt.bz2 Ok? r~ * 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. Index: alpha-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/alpha-tdep.c,v retrieving revision 1.95 diff -c -p -d -u -p -r1.95 alpha-tdep.c --- alpha-tdep.c 2 Jun 2003 04:32:19 -0000 1.95 +++ alpha-tdep.c 2 Jun 2003 04:46:18 -0000 @@ -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: alpha-tdep.h =================================================================== RCS file: /cvs/src/src/gdb/alpha-tdep.h,v retrieving revision 1.15 diff -c -p -d -u -p -r1.15 alpha-tdep.h --- alpha-tdep.h 1 Jun 2003 21:46:37 -0000 1.15 +++ alpha-tdep.h 2 Jun 2003 04:46:19 -0000 @@ -43,9 +43,10 @@ #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 */