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]

[PATCH] pseudo-register un-optimization


 
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);
  

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