2004-08-02 Andrew Cagney * 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);