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-registers


2000-11-16  Michael Snyder  <msnyder@cleaver.cygnus.com>

        * regcache.c (read_register_bytes): Failing to set register_valid
        is not necessarily an error, if the register is a pseudo-register.
        Some pseudo-registers are never marked as valid, so that they will
        be read anew every time.  Determining if a pseudo-register is valid
        (or should be marked invalid) may be difficult, whereas just
        recomputing it may be cheap.

Index: regcache.c
===================================================================
RCS file: /cvs/src/src/gdb/regcache.c,v
retrieving revision 1.11
diff -c -3 -p -r1.11 regcache.c
*** regcache.c	2000/10/30 21:50:57	1.11
--- regcache.c	2000/11/17 01:29:58
*************** read_register_bytes (int inregbyte, char
*** 391,397 ****
  	FETCH_PSEUDO_REGISTER (regno);
  
        if (!register_valid[regno])
! 	error ("read_register_bytes:  Couldn't update register %d.", regno);
      }
  
    if (myaddr != NULL)
--- 391,404 ----
  	FETCH_PSEUDO_REGISTER (regno);
  
        if (!register_valid[regno])
! 	{
! 	  /* Sometimes pseudoregs are never marked valid, so that they 
! 	     will be fetched every time (it can be complicated to know
! 	     if a pseudoreg is valid, while "fetching" them can be cheap). 
! 	     */
! 	  if (regno < NUM_REGS)
! 	    error ("read_register_bytes:  Couldn't update register %d.", regno);
! 	}
      }
  
    if (myaddr != NULL)

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