2001-08-10 Michael Snyder <msnyder@redhat.com>
authorMichael Snyder <msnyder@vmware.com>
Fri, 10 Aug 2001 21:52:17 +0000 (21:52 +0000)
committerMichael Snyder <msnyder@vmware.com>
Fri, 10 Aug 2001 21:52:17 +0000 (21:52 +0000)
* regcache.c (legacy_write_register_gen): Don't 'optimize out'
        a write_register to a pseudo-reg.  Target_store_pseudo_register
        needs to get called, because these regs may be computed and may
        have side-effects.

gdb/ChangeLog
gdb/regcache.c

index 74cad45128394391a049ec48201efe9624774fbe..25d32330c966f8e4f62e2099fbea521a7cd20425 100644 (file)
@@ -1,3 +1,10 @@
+2001-08-10  Michael Snyder  <msnyder@redhat.com>
+
+       * regcache.c (legacy_write_register_gen): Don't 'optimize out'
+       a write_register to a pseudo-reg.  Target_store_pseudo_register
+       needs to get called, because these regs may be computed and may
+       have side-effects.
+
 2001-08-10  Keith Seitz  <keiths@redhat.com>
 
        * gdb-events.sh: Deal with event notifications with no
index b939d9a8fb10caea2aed97ff357d3e6fa62ad874..ffd13bf8a4ba510365bdf2b961bfcb85943af229 100644 (file)
@@ -334,15 +334,16 @@ legacy_write_register_gen (int regnum, char *myaddr)
 
   size = REGISTER_RAW_SIZE (regnum);
 
-  /* If we have a valid copy of the register, and new value == old value,
-     then don't bother doing the actual store. */
-
-  if (register_cached (regnum)
-      && memcmp (register_buffer (regnum), myaddr, size) == 0)
-    return;
-
   if (real_register (regnum))
-    target_prepare_to_store ();
+    {
+      /* If we have a valid copy of the register, and new value == old
+        value, then don't bother doing the actual store. */
+      if (register_cached (regnum)
+         && memcmp (register_buffer (regnum), myaddr, size) == 0)
+       return;
+      else
+       target_prepare_to_store ();
+    }
 
   memcpy (register_buffer (regnum), myaddr, size);