This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[commit] Eliminate deprecated_register_virtual_* from core
- From: Andrew Cagney <cagney at gnu dot org>
- To: gdb-patches at sources dot redhat dot com
- Date: Mon, 02 Aug 2004 18:00:26 -0400
- Subject: [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);