* i386-linux-nat.c (dummy_sse_values): Only try to fill in the SSE
authorMark Kettenis <kettenis@gnu.org>
Sun, 1 Sep 2002 22:05:42 +0000 (22:05 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sun, 1 Sep 2002 22:05:42 +0000 (22:05 +0000)
registers if the target really has them.

* defs.h: Move inclusion of "ansidecl.h" before "gdb_locale.h".
Fix some whitespace problems.

gdb/ChangeLog
gdb/i386-linux-nat.c

index 9c7250c..7b8a0e4 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-02  Mark Kettenis  <kettenis@gnu.org>
+
+       * i386-linux-nat.c (dummy_sse_values): Only try to fill in the SSE
+       registers if the target really has them.
+
 2002-08-31  Jason Thorpe  <thorpej@wasabisystems.com>
 
        * Makefile.in (mipsnbsd-tdep.o): Use $(nbsd_tdep_h) rather
 
 2002-08-26  Mark Kettenis  <kettenis@gnu.org>
 
+       * defs.h: Move inclusion of "ansidecl.h" before "gdb_locale.h".
+       Fix some whitespace problems.
+
        * i386-tdep.c (i386_store_return_value): Undeprecate.  Convert to
        use regcache_* functions.
        (i386_gdbarch_init): Set store_return_value instead of
index 74c70db..8458879 100644 (file)
@@ -541,15 +541,17 @@ store_fpxregs (int tid, int regno)
 static void
 dummy_sse_values (void)
 {
+  struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
   /* C doesn't have a syntax for NaN's, so write it out as an array of
      longs.  */
   static long dummy[4] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff };
   static long mxcsr = 0x1f80;
   int reg;
 
-  for (reg = 0; reg < 8; reg++)
+  for (reg = 0; reg < tdep->num_xmm_regs; reg++)
     supply_register (XMM0_REGNUM + reg, (char *) dummy);
-  supply_register (MXCSR_REGNUM, (char *) &mxcsr);
+  if (tdep->num_xmm_regs > 0)
+    supply_register (MXCSR_REGNUM, (char *) &mxcsr);
 }
 
 #else