This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] pseudo-register un-optimization
- To: gdb-patches at sources dot redhat dot com
- Subject: [PATCH] pseudo-register un-optimization
- From: Michael Snyder <msnyder at cygnus dot com>
- Date: Fri, 10 Aug 2001 14:49:42 -0700
- Organization: Red Hat
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.
Index: regcache.c
===================================================================
RCS file: /cvs/src/src/gdb/regcache.c,v
retrieving revision 1.24
diff -c -3 -p -r1.24 regcache.c
*** regcache.c 2001/06/15 23:50:46 1.24
--- regcache.c 2001/08/10 21:49:23
*************** legacy_write_register_gen (int regnum, c
*** 334,348 ****
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 ();
memcpy (register_buffer (regnum), myaddr, size);
--- 334,349 ----
size = REGISTER_RAW_SIZE (regnum);
if (real_register (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;
! else
! target_prepare_to_store ();
! }
memcpy (register_buffer (regnum), myaddr, size);