[cagney_convert-20030606-branch] Add value to REGISTER_TO_VALUE et.al.

Mark Kettenis kettenis@chello.nl
Mon Jun 9 09:38:00 GMT 2003


   Date: Sun, 08 Jun 2003 18:10:29 -0400
   From: Andrew Cagney <ac131313@redhat.com>

   Ok,  I've changed the branch to:

   > The ``obvious'' interfaces were:
   > 
   > register_to_value (frame, regnum, type, buffer)
   > value_to_register (frame, regnum, type, buffer)
   > 
   > but that tripped up on something (now what ...?).  Dig dig.
   > Notice how, to preserve existing behavior,
   > legacy_register_to_value saves the location based on what
   > frame_register returns.  We'd have to switch to
   > lval_reg_frame_relative.

   And this time it appears to be going better.  I'll try to attribute it 
   to VALUE_FRAME_ID and the use of put_frame_register (neither of which I 
   did last time).

Andrew, the attached fixes writing values into registers.  OK to check
this in on the branch?

Mark


Index: ChangeLog
from  Mark Kettenis  <kettenis@gnu.org>

	* valops.c (value_assign): Assign contents of FROMVAL instead of
	TOVAL.

Index: valops.c
===================================================================
RCS file: /cvs/src/src/gdb/valops.c,v
retrieving revision 1.110.2.2
diff -u -p -r1.110.2.2 valops.c
--- valops.c 8 Jun 2003 22:14:42 -0000 1.110.2.2
+++ valops.c 9 Jun 2003 09:02:27 -0000
@@ -588,13 +588,12 @@ value_assign (struct value *toval, struc
 	  error ("Value being assigned to is no longer active.");
 	
 	if (VALUE_LVAL (toval) == lval_reg_frame_relative
-	    && CONVERT_REGISTER_P (VALUE_FRAME_REGNUM (toval),
-				   VALUE_TYPE (toval)))
+	    && CONVERT_REGISTER_P (VALUE_FRAME_REGNUM (toval), type))
 	  {
 	    /* If TOVAL is a special machine register requiring
 	       conversion of program values to a special raw format.  */
 	    VALUE_TO_REGISTER (frame, VALUE_FRAME_REGNUM (toval),
-			       VALUE_TYPE (toval), VALUE_CONTENTS (toval));
+			       type, VALUE_CONTENTS (fromval));
 	  }
 	else
 	  {



More information about the Gdb-patches mailing list