From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11130 invoked by alias); 12 Jan 2002 23:14:47 -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 11090 invoked from network); 12 Jan 2002 23:14:45 -0000 Received: from unknown (HELO zwingli.cygnus.com) (208.245.165.35) by sources.redhat.com with SMTP; 12 Jan 2002 23:14:45 -0000 Received: by zwingli.cygnus.com (Postfix, from userid 442) id 2EECA5E9DE; Sat, 12 Jan 2002 18:16:12 -0500 (EST) To: Mark Kettenis Cc: gdb-patches@sources.redhat.com Subject: Re: RFA: i386 Linux: provide correct type for orig_eax register References: <20020111222448.A73EC5E9D8@zwingli.cygnus.com> From: Jim Blandy Date: Sat, 12 Jan 2002 15:14:00 -0000 In-Reply-To: Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-01/txt/msg00332.txt.bz2 Mark Kettenis writes: > Jim Blandy writes: > > > This fixes a failure in callfuncs.exp. > > What failure? gdb.base/callfuncs.exp: gdb function calls preserve register contents GDB was actually preserving the registers' contents correctly. The real problem is that GDB was returning the SSE registers' type for orig_eax, so that the printed value included bits off the end of the register array. > > 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. > > Hmm. You're compiling GDB on a system that doesn't have > PTRACE_GETFPXREGS in isn't it? Yep. > In that case, I think your patch is just papering over a more > fundamental flaw in the Linux/x86 port: not always including the SSE > registers in the register file. > > I think we should #define HAVE_SSE_REGS unconditionally in > config/i386/tm-linux.h. Later, when things are properly multi-arched, > we can decide whether we actually display thos registers based on the > actual processor model. Okay. I'll give that a try.