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]
Other format: [Raw text]

[commit] Eliminate deprecated_register_virtual_* from core


Hello,

More cleanup.

Since the register has only one size, determined by register_type, it's possible to eliminate references to DEPRECATED_REGISTER_VIRTUAL_TYPE and DEPRECATED_REGISTER_VIRTUAL_SIZE (and a few DEPRECATED_REGISTER_RAW_SIZE while I'm there).

committed,
Andrew
2004-08-02  Andrew Cagney  <cagney@gnu.org>

	* regcache.h: Delete DEPRECATED_REGISTER_VIRTUAL_SIZE and
	DEPRECATED_REGISTER_RAW_SIZE from comments.
	* regcache.c (init_regcache_descr, regcache_dump): Do not check or
	use DEPRECATED_REGISTER_VIRTUAL_SIZE and
	DEPRECATED_REGISTER_RAW_SIZE.
	* findvar.c (value_of_register): Simplify by assuming that the
	registers raw and virtual sizes are identical.
	* regcache.h: Delete DEPRECATED_REGISTER_VIRTUAL_TYPE in
	comment.
	* arch-utils.c (generic_register_size): Simplify by assuming
	register_type.

Index: arch-utils.c
===================================================================
RCS file: /cvs/src/src/gdb/arch-utils.c,v
retrieving revision 1.120
diff -p -u -r1.120 arch-utils.c
--- arch-utils.c	20 Jun 2004 18:10:13 -0000	1.120
+++ arch-utils.c	2 Aug 2004 21:57:38 -0000
@@ -289,13 +289,7 @@ int
 generic_register_size (int regnum)
 {
   gdb_assert (regnum >= 0 && regnum < NUM_REGS + NUM_PSEUDO_REGS);
-  if (gdbarch_register_type_p (current_gdbarch))
-    return TYPE_LENGTH (gdbarch_register_type (current_gdbarch, regnum));
-  else
-    /* FIXME: cagney/2003-03-01: Once all architectures implement
-       gdbarch_register_type(), this entire function can go away.  It
-       is made obsolete by register_size().  */
-    return TYPE_LENGTH (DEPRECATED_REGISTER_VIRTUAL_TYPE (regnum)); /* OK */
+  return TYPE_LENGTH (gdbarch_register_type (current_gdbarch, regnum));
 }
 
 /* Assume all registers are adjacent.  */
Index: findvar.c
===================================================================
RCS file: /cvs/src/src/gdb/findvar.c,v
retrieving revision 1.75
diff -p -u -r1.75 findvar.c
--- findvar.c	9 Jun 2004 20:42:28 -0000	1.75
+++ findvar.c	2 Aug 2004 21:57:38 -0000
@@ -282,18 +282,8 @@ value_of_register (int regnum, struct fr
 
   reg_val = allocate_value (register_type (current_gdbarch, regnum));
 
-  /* Convert raw data to virtual format if necessary.  */
-
-  if (DEPRECATED_REGISTER_RAW_SIZE (regnum) == DEPRECATED_REGISTER_VIRTUAL_SIZE (regnum))
-    memcpy (VALUE_CONTENTS_RAW (reg_val), raw_buffer,
-	    DEPRECATED_REGISTER_RAW_SIZE (regnum));
-  else
-    internal_error (__FILE__, __LINE__,
-		    "Register \"%s\" (%d) has conflicting raw (%d) and virtual (%d) size",
-		    REGISTER_NAME (regnum),
-		    regnum,
-		    DEPRECATED_REGISTER_RAW_SIZE (regnum),
-		    DEPRECATED_REGISTER_VIRTUAL_SIZE (regnum));
+  memcpy (VALUE_CONTENTS_RAW (reg_val), raw_buffer,
+	  register_size (current_gdbarch, regnum));
   VALUE_LVAL (reg_val) = lval;
   VALUE_ADDRESS (reg_val) = addr;
   VALUE_REGNO (reg_val) = regnum;
Index: regcache.c
===================================================================
RCS file: /cvs/src/src/gdb/regcache.c,v
retrieving revision 1.120
diff -p -u -r1.120 regcache.c
--- regcache.c	2 Aug 2004 21:39:35 -0000	1.120
+++ regcache.c	2 Aug 2004 21:57:38 -0000
@@ -144,20 +144,6 @@ init_regcache_descr (struct gdbarch *gdb
      buffer.  Ulgh!  */
   descr->sizeof_raw_registers = descr->sizeof_cooked_registers;
 
-  /* Sanity check.  Confirm that there is agreement between the
-     regcache and the target's redundant DEPRECATED_REGISTER_BYTE (new
-     targets should not even be defining it).  */
-  for (i = 0; i < descr->nr_cooked_registers; i++)
-    {
-      if (DEPRECATED_REGISTER_BYTE_P ())
-	gdb_assert (descr->register_offset[i] == DEPRECATED_REGISTER_BYTE (i));
-#if 0
-      gdb_assert (descr->sizeof_register[i] == DEPRECATED_REGISTER_RAW_SIZE (i));
-      gdb_assert (descr->sizeof_register[i] == DEPRECATED_REGISTER_VIRTUAL_SIZE (i));
-#endif
-    }
-  /* gdb_assert (descr->sizeof_raw_registers == DEPRECATED_REGISTER_BYTES (i));  */
-
   return descr;
 }
 
@@ -1311,25 +1297,8 @@ regcache_dump (struct regcache *regcache
       if (regnum < 0)
 	fprintf_unfiltered (file, " %5s ", "Size");
       else
-	{
-	  fprintf_unfiltered (file, " %5ld",
-			      regcache->descr->sizeof_register[regnum]);
-	  if ((regcache->descr->sizeof_register[regnum]
-	       != DEPRECATED_REGISTER_RAW_SIZE (regnum))
-	      || (regcache->descr->sizeof_register[regnum]
-		  != DEPRECATED_REGISTER_VIRTUAL_SIZE (regnum))
-	      || (regcache->descr->sizeof_register[regnum]
-		  != TYPE_LENGTH (register_type (regcache->descr->gdbarch,
-						 regnum)))
-	      )
-	    {
-	      if (!footnote_register_size)
-		footnote_register_size = ++footnote_nr;
-	      fprintf_unfiltered (file, "*%d", footnote_register_size);
-	    }
-	  else
-	    fprintf_unfiltered (file, " ");
-	}
+	fprintf_unfiltered (file, " %5ld",
+			    regcache->descr->sizeof_register[regnum]);
 
       /* Type.  */
       {
@@ -1373,7 +1342,7 @@ regcache_dump (struct regcache *regcache
 	      regcache_raw_read (regcache, regnum, buf);
 	      fprintf_unfiltered (file, "0x");
 	      dump_endian_bytes (file, TARGET_BYTE_ORDER, buf,
-				 DEPRECATED_REGISTER_RAW_SIZE (regnum));
+				 regcache->descr->sizeof_register[regnum]);
 	    }
 	}
 
@@ -1387,7 +1356,7 @@ regcache_dump (struct regcache *regcache
 	      regcache_cooked_read (regcache, regnum, buf);
 	      fprintf_unfiltered (file, "0x");
 	      dump_endian_bytes (file, TARGET_BYTE_ORDER, buf,
-				 DEPRECATED_REGISTER_VIRTUAL_SIZE (regnum));
+				 regcache->descr->sizeof_register[regnum]);
 	    }
 	}
 
Index: regcache.h
===================================================================
RCS file: /cvs/src/src/gdb/regcache.h,v
retrieving revision 1.42
diff -p -u -r1.42 regcache.h
--- regcache.h	24 Jul 2004 01:00:20 -0000	1.42
+++ regcache.h	2 Aug 2004 21:57:38 -0000
@@ -116,45 +116,13 @@ extern int register_offset_hack (struct 
 
 /* The type of a register.  This function is slightly more efficient
    then its gdbarch vector counterpart since it returns a precomputed
-   value stored in a table.
-
-   NOTE: cagney/2002-08-17: The original macro was called
-   DEPRECATED_REGISTER_VIRTUAL_TYPE.  This was because the register
-   could have different raw and cooked (nee virtual) representations.
-   The CONVERTABLE methods being used to convert between the two
-   representations.  Current code does not do this.  Instead, the
-   first [0..NUM_REGS) registers are 1:1 raw:cooked, and the type
-   exactly describes the register's representation.  Consequently, the
-   ``virtual'' has been dropped.
-
-   FIXME: cagney/2002-08-17: A number of architectures, including the
-   MIPS, are currently broken in this regard.  */
+   value stored in a table.  */
 
 extern struct type *register_type (struct gdbarch *gdbarch, int regnum);
 
 
 /* Return the size of register REGNUM.  All registers should have only
-   one size.
-
-   FIXME: cagney/2003-02-28:
-
-   Unfortunately, thanks to some legacy architectures, this doesn't
-   hold.  A register's cooked (nee virtual) and raw size can differ
-   (see MIPS).  Such architectures should be using different register
-   numbers for the different sized views of identical registers.
-
-   Anyway, the up-shot is that, until that mess is fixed, core code
-   can end up being very confused - should the RAW or VIRTUAL size be
-   used?  As a rule of thumb, use DEPRECATED_REGISTER_VIRTUAL_SIZE in
-   cooked code, but with the comment:
-
-   OK: REGISTER_VIRTUAL_SIZE
-
-   or just
-
-   OK
-
-   appended to the end of the line.  */
+   one size.  */
    
 extern int register_size (struct gdbarch *gdbarch, int regnum);
 

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