This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] SSE registers for cygxin target.


At 12:35 26/11/2001 , Corinna Vinschen a écrit:
>On Mon, Nov 26, 2001 at 11:10:16AM +0100, Pierre Muller wrote:
> > Apparently, my Eudora change is not enough to get the patch to be correct,
> > so I add it attached.
>
>The attachment is corrupted as well, unfortunately.

Sorry, its probably because Eudora also misbehaves with text 
files that only contain LF....

Lets try once again with Dos like CR/LF in source...
hope that will help.

I also send the diff again in the text itself with yet another Eudora setting.



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 <sys/procfs.h>
  #include <psapi.h>
  
+#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;
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 <sys/procfs.h>
 #include <psapi.h>
 
+#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;
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"


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]