2011-01-28 Pedro Alves <pedro@codesourcery.com>
authorPedro Alves <palves@redhat.com>
Fri, 28 Jan 2011 12:58:00 +0000 (12:58 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 28 Jan 2011 12:58:00 +0000 (12:58 +0000)
* i387-fp.c (i387_xsave_to_cache): Make passing NULL as register
buffer explicit.

gdb/gdbserver/ChangeLog
gdb/gdbserver/i387-fp.c

index 9ebf150687f6de1510bef3364053381a09307901..39eb4e76afade8a7ec9e5db5cb03b456a2b30cdb 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-28  Pedro Alves  <pedro@codesourcery.com>
+
+       * i387-fp.c (i387_xsave_to_cache): Make passing NULL as register
+       buffer explicit.
+
 2011-01-25  Pedro Alves  <pedro@codesourcery.com>
 
        * server.h (decode_xfer_write): Change prototype.
index 75531d07427d1a360002c8fffa984f9f7f41aded..3dfe06be3b5baa61129d24a2dfd88cc7c256634b 100644 (file)
@@ -468,61 +468,61 @@ i387_xsave_to_cache (struct regcache *regcache, const void *buf)
   int i, top;
   unsigned long val;
   unsigned int clear_bv;
-  char *p;
+  gdb_byte *p;
 
   /* The supported bits in `xstat_bv' are 1 byte.  Clear part in
      vector registers if its bit in xstat_bv is zero.  */
   clear_bv = (~fp->xstate_bv) & x86_xcr0;
 
   /* Check if any x87 registers are changed.  */
-  if ((x86_xcr0 & I386_XSTATE_X87))
+  if ((x86_xcr0 & I386_XSTATE_X87) != 0)
     {
       int st0_regnum = find_regno ("st0");
 
-      if ((clear_bv & I386_XSTATE_X87))
-       p = NULL;
+      if ((clear_bv & I386_XSTATE_X87) != 0)
+       {
+         for (i = 0; i < 8; i++)
+           supply_register (regcache, i + st0_regnum, NULL);
+       }
       else
-       p = (char *) buf;
-
-      for (i = 0; i < 8; i++)
        {
-         if (p)
-           p = ((char *) &fp->st_space[0]) + i * 16;
-         supply_register (regcache, i + st0_regnum, p);
+         p = (gdb_byte *) &fp->st_space[0];
+         for (i = 0; i < 8; i++)
+           supply_register (regcache, i + st0_regnum, p + i * 16);
        }
     }
 
-  if ((x86_xcr0 & I386_XSTATE_SSE))
+  if ((x86_xcr0 & I386_XSTATE_SSE) != 0)
     {
       int xmm0_regnum = find_regno ("xmm0");
 
       if ((clear_bv & I386_XSTATE_SSE))
-       p = NULL;
+       {
+         for (i = 0; i < num_xmm_registers; i++)
+           supply_register (regcache, i + xmm0_regnum, NULL);
+       }
       else
-       p = (char *) buf;
-
-      for (i = 0; i < num_xmm_registers; i++)
        {
-         if (p)
-           p = ((char *) &fp->xmm_space[0]) + i * 16;
-         supply_register (regcache, i + xmm0_regnum, p);
+         p = (gdb_byte *) &fp->xmm_space[0];
+         for (i = 0; i < num_xmm_registers; i++)
+           supply_register (regcache, i + xmm0_regnum, p + i * 16);
        }
     }
 
-  if ((x86_xcr0 & I386_XSTATE_AVX))
+  if ((x86_xcr0 & I386_XSTATE_AVX) != 0)
     {
       int ymm0h_regnum = find_regno ("ymm0h");
 
-      if ((clear_bv & I386_XSTATE_AVX))
-       p = NULL;
+      if ((clear_bv & I386_XSTATE_AVX) != 0)
+       {
+         for (i = 0; i < num_xmm_registers; i++)
+           supply_register (regcache, i + ymm0h_regnum, NULL);
+       }
       else
-       p = (char *) buf;
-
-      for (i = 0; i < num_xmm_registers; i++)
        {
-         if (p)
-           p = ((char *) &fp->ymmh_space[0]) + i * 16;
-         supply_register (regcache, i + ymm0h_regnum, p);
+         p = (gdb_byte *) &fp->ymmh_space[0];
+         for (i = 0; i < num_xmm_registers; i++)
+           supply_register (regcache, i + ymm0h_regnum, p + i * 16);
        }
     }
 
This page took 0.03012 seconds and 4 git commands to generate.