From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20932 invoked by alias); 26 Nov 2001 10:10:08 -0000 Mailing-List: contact gdb-patches-help@sourceware.cygnus.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 20773 invoked from network); 26 Nov 2001 10:10:02 -0000 Received: from unknown (HELO cerbere.u-strasbg.fr) (130.79.112.7) by sourceware.cygnus.com with SMTP; 26 Nov 2001 10:10:02 -0000 Received: from laocoon (laocoon.u-strasbg.fr [130.79.112.72]) by cerbere.u-strasbg.fr (8.9.3/8.8.7) with ESMTP id LAA26016; Mon, 26 Nov 2001 11:09:59 +0100 Message-ID: <4.2.0.58.20011126110847.01cb6c20@ics.u-strasbg.fr> X-Sender: muller@ics.u-strasbg.fr X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58 Date: Sun, 11 Nov 2001 11:08:00 -0000 To: gdb-patches@sources.redhat.com From: Pierre Muller Subject: Re: [RFA] SSE registers for cygxin target. Cc: Christopher Faylor In-Reply-To: <4.2.0.58.20011126104808.00acab48@ics.u-strasbg.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====================_235561259==_" X-SW-Source: 2001-11/txt/msg00223.txt.bz2 Message-ID: <20011111110800.mXgODsPDadUtK9IpoLQWpgNc-iIdz7kT-bmVMyr8T5o@z> --=====================_235561259==_ Content-Type: text/plain; charset="us-ascii" Content-length: 4481 Apparently, my Eudora change is not enough to get the patch to be correct, so I add it attached. > The patch below adds SSE registers for cygwin target. > >The only missing code is an addendum to configure.in >in order to check if CONTEXT_EXTENDED_REGISTERS >is known in winnt.h header file. >I asked about this in >http://sources.redhat.com/ml/gdb/2001-11/msg00219.html >but got no answers... > > But I never wrote any of these rules, and I even don't know how to regenerate >configure from configure.in file ... > > For now, to test the patch, you will need to do >a 'make clean' followed by a 'make "CFLAGS=-dHAVE_CONTEXT_EXTENDED_REGISTERS -gstabs+ -O1"' >for instance. > >PS: I disabled flowed mode from my Eudora settings and hope that this will >fix the problems existing in the latest patches I sent. Please ask me to send it again attached if >this patch does not aply cleanly. > >PS2: Once this patch is in, I will send the next, i.e. >the support of debug registers... DJ Delorie's idea was >correct, this works like a charm (at least for me >on a Win2000 box). > > >ChangeLog entry: >2001-11-26 Pierre Muller > > * config/i386/tm-cygwin.h: Define HAVE_SSE_REGS > if HAVE_CONTEXT_EXTENDED_REGISTERS is defined. > * win32-nat.c: Define CONTEXT_DEBUGGER_DR that will also > include extended registers if HAVE_SSE_REGS is defined. > (mappings array): Add offset of extended registers. > (thread_rec): Use new CONTEXT_DEBUGGER_DR macro. > > >Index: config/i386/tm-cygwin.h >=================================================================== >RCS file: /cvs/src/src/gdb/config/i386/tm-cygwin.h,v >retrieving revision 1.10 >diff -u -r1.10 tm-cygwin.h >--- tm-cygwin.h 2001/11/01 16:17:08 1.10 >+++ tm-cygwin.h 2001/11/26 09:47:09 >@@ -19,8 +19,12 @@ > Foundation, Inc., 59 Temple Place - Suite 330, > Boston, MA 02111-1307, USA. */ > >- >-#undef HAVE_SSE_REGS /* FIXME! win32-nat.c needs to support XMMi registers */ >+/* Use SSE registers if winnt.h contains information about them. */ >+#ifdef HAVE_CONTEXT_EXTENDED_REGISTERS >+#define HAVE_SSE_REGS >+#else >+#undef HAVE_SSE_REGS >+#endif /* CONTEXT_EXTENDED_REGISTERS */ > #define HAVE_I387_REGS > > #include "i386/tm-i386.h" >Index: win32-nat.c >=================================================================== >RCS file: /cvs/src/src/gdb/win32-nat.c,v >retrieving revision 1.38 >diff -u -r1.38 win32-nat.c >--- win32-nat.c 2001/11/24 19:00:03 1.38 >+++ win32-nat.c 2001/11/26 09:47:09 >@@ -25,6 +25,7 @@ > /* We assume we're being built with and will be used for cygwin. */ > > #include "defs.h" >+#include "tm.h" /* required for SSE registers */ > #include "frame.h" /* required by inferior.h */ > #include "inferior.h" > #include "target.h" >@@ -66,6 +67,13 @@ > #include > #include > >+#ifdef HAVE_SSE_REGS >+#define CONTEXT_DEBUGGER_DR CONTEXT_DEBUGGER | CONTEXT_EXTENDED_REGISTERS >+#else >+#define CONTEXT_DEBUGGER_DR CONTEXT_DEBUGGER >+#endif >+ >+ > /* The string sent by cygwin when it processes a signal. > FIXME: This should be in a cygwin include file. */ > #define CYGWIN_SIGNAL_STRING "cygwin: signal" >@@ -169,6 +177,19 @@ > context_offset (FloatSave.DataSelector), > context_offset (FloatSave.DataOffset), > context_offset (FloatSave.ErrorSelector) >+#ifdef HAVE_SSE_REGS >+ /* XMM0-7 */ , >+ context_offset (ExtendedRegisters[0*16]), >+ context_offset (ExtendedRegisters[1*16]), >+ context_offset (ExtendedRegisters[2*16]), >+ context_offset (ExtendedRegisters[3*16]), >+ context_offset (ExtendedRegisters[4*16]), >+ context_offset (ExtendedRegisters[5*16]), >+ context_offset (ExtendedRegisters[6*16]), >+ context_offset (ExtendedRegisters[7*16]), >+ /* MXCSR untested */ >+ context_offset (ExtendedRegisters[8*16]) >+#endif > }; > > #undef context_offset >@@ -210,7 +231,7 @@ > else if (get_context < 0) > th->suspend_count = -1; > >- th->context.ContextFlags = CONTEXT_DEBUGGER; >+ th->context.ContextFlags = CONTEXT_DEBUGGER_DR; > GetThreadContext (th->h, &th->context); > } > return th; > > > >Pierre Muller >Institut Charles Sadron >6,rue Boussingault >F 67083 STRASBOURG CEDEX (France) >mailto:muller@ics.u-strasbg.fr >Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99 --=====================_235561259==_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="win32.diffs" Content-length: 2543 Index: win32-nat.c===================================================================RCS file: /cvs/src/src/gdb/win32-nat.c,vretrieving revision 1.38diff -u -r1.38 win32-nat.c--- win32-nat.c 2001/11/24 19:00:03 1.38+++ win32-nat.c 2001/11/26 09:47:09@@ -25,6 +25,7 @@ /* We assume we're being built with and will be used for cygwin. */ #include "defs.h"+#include "tm.h" /* required for SSE registers */ #include "frame.h" /* required by inferior.h */ #include "inferior.h" #include "target.h"@@ -66,6 +67,13 @@ #include #include +#ifdef HAVE_SSE_REGS+#define CONTEXT_DEBUGGER_DR CONTEXT_DEBUGGER | CONTEXT_EXTENDED_REGISTERS +#else+#define CONTEXT_DEBUGGER_DR CONTEXT_DEBUGGER+#endif++ /* The string sent by cygwin when it processes a signal. FIXME: This should be in a cygwin include file. */ #define CYGWIN_SIGNAL_STRING "cygwin: signal"@@ -169,6 +177,19 @@ context_offset (FloatSave.DataSelector), context_offset (FloatS! ave.DataOffset), context_offset (FloatSave.ErrorSelector)+#ifdef HAVE_SSE_REGS+ /* XMM0-7 */ ,+ context_offset (ExtendedRegisters[0*16]),+ context_offset (ExtendedRegisters[1*16]),+ context_offset (ExtendedRegisters[2*16]),+ context_offset (ExtendedRegisters[3*16]),+ context_offset (ExtendedRegisters[4*16]),+ context_offset (ExtendedRegisters[5*16]),+ context_offset (ExtendedRegisters[6*16]),+ context_offset (ExtendedRegisters[7*16]),+ /* MXCSR untested */+ context_offset (ExtendedRegisters[8*16])+#endif }; #undef context_offset@@ -210,7 +231,7 @@ else if (get_context < 0) th->suspend_count = -1; - th->context.ContextFlags = CONTEXT_DEBUGGER;+ th->context.ContextFlags = CONTEXT_DEBUGGER_DR; GetThreadContext (th->h, &th->context); } return th;Index: config/i386/tm-cygwin.h===================================================================RCS file: /cvs/src/src/gdb/config/i386/tm-cygwin.h,vretrieving revisi! on 1.10diff -u -r1.10 tm-cygwin.h--- tm-cygwin.h 2001/11/01 16:17:08 1.10+++ tm-cygwin.h 2001/11/26 09:47:09@@ -19,8 +19,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ --#undef HAVE_SSE_REGS /* FIXME! win32-nat.c needs to support XMMi registers */+/* Use SSE registers if winnt.h contains information about them. */+#ifdef HAVE_CONTEXT_EXTENDED_REGISTERS+#define HAVE_SSE_REGS+#else+#undef HAVE_SSE_REGS+#endif /* CONTEXT_EXTENDED_REGISTERS */ #define HAVE_I387_REGS #include "i386/tm-i386.h" --=====================_235561259==_ Content-Type: text/plain; charset="us-ascii" Content-length: 176 Pierre Muller Institut Charles Sadron 6,rue Boussingault F 67083 STRASBOURG CEDEX (France) mailto:muller@ics.u-strasbg.fr Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99 --=====================_235561259==_--