From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5123 invoked by alias); 11 Jan 2002 22:23:22 -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 5083 invoked from network); 11 Jan 2002 22:23:21 -0000 Received: from unknown (HELO zwingli.cygnus.com) (208.245.165.35) by sources.redhat.com with SMTP; 11 Jan 2002 22:23:21 -0000 Received: by zwingli.cygnus.com (Postfix, from userid 442) id A73EC5E9D8; Fri, 11 Jan 2002 17:24:48 -0500 (EST) From: Jim Blandy To: gdb-patches@sources.redhat.com Subject: RFA: i386 Linux: provide correct type for orig_eax register Message-Id: <20020111222448.A73EC5E9D8@zwingli.cygnus.com> Date: Fri, 11 Jan 2002 14:23:00 -0000 X-SW-Source: 2002-01/txt/msg00306.txt.bz2 This fixes a failure in callfuncs.exp. 2002-01-11 Jim Blandy Return the correct virtual type for orig_eax. * i386-linux-tdep.c (i386_linux_register_virtual_type): New function. * config/i386/tm-linux.h (i386_linux_register_virtual_type): New declaration. (REGISTER_VIRTUAL_TYPE): Override definition in tm-i386.h; use the Linux-specific version. Index: gdb/i386-linux-tdep.c =================================================================== RCS file: /cvs/cvsfiles/devo/gdb/i386-linux-tdep.c,v retrieving revision 2.7 diff -c -r2.7 i386-linux-tdep.c *** gdb/i386-linux-tdep.c 2001/11/10 03:02:19 2.7 --- gdb/i386-linux-tdep.c 2002/01/11 21:51:28 *************** *** 64,69 **** --- 64,79 ---- return i386_register_raw_size (reg); } + + struct type * + i386_linux_register_virtual_type (int reg) + { + /* Deal with the extra "orig_eax" pseudo register. */ + if (reg == I386_LINUX_ORIG_EAX_REGNUM) + return builtin_type_int; + + return i386_register_virtual_type (reg); + } /* Recognizing signal handler frames. */ Index: gdb/config/i386/tm-linux.h =================================================================== RCS file: /cvs/cvsfiles/devo/gdb/config/i386/tm-linux.h,v retrieving revision 1.28 diff -c -r1.28 tm-linux.h *** gdb/config/i386/tm-linux.h 2001/11/10 03:02:20 1.28 --- gdb/config/i386/tm-linux.h 2002/01/11 21:51:28 *************** *** 60,65 **** --- 60,69 ---- #define REGISTER_RAW_SIZE(reg) i386_linux_register_raw_size ((reg)) extern int i386_linux_register_raw_size (int reg); + #undef REGISTER_VIRTUAL_TYPE + #define REGISTER_VIRTUAL_TYPE(reg) i386_linux_register_virtual_type ((reg)) + extern struct type *i386_linux_register_virtual_type (int reg); + /* Linux/ELF uses stabs-in-ELF with the DWARF register numbering scheme by default, so we must redefine STAB_REG_TO_REGNUM. This messes up the floating-point registers for a.out, but there is not