diff options
author | Randolph Chung <tausq@debian.org> | 2004-04-17 17:31:40 +0000 |
---|---|---|
committer | Randolph Chung <tausq@debian.org> | 2004-04-17 17:31:40 +0000 |
commit | 0f8d9d59e8dd52999d4ef9f4c9089df4180c2d4f (patch) | |
tree | 01b71d8eebcd62aaca7a9dff80f209cc45e98583 | |
parent | 7c46b9fb41fd107882032ecc34897a8e86e8264a (diff) | |
download | gdb-0f8d9d59e8dd52999d4ef9f4c9089df4180c2d4f.zip gdb-0f8d9d59e8dd52999d4ef9f4c9089df4180c2d4f.tar.gz gdb-0f8d9d59e8dd52999d4ef9f4c9089df4180c2d4f.tar.bz2 |
2004-04-17 Randolph Chung <tausq@debian.org>
* hppa-tdep.c (hppa_pseudo_register_read): Define.
(hppa_gdbarch_init): Set pseudo_register_read.
* config/pa/tm-hppa.h (DEPRECATED_CLEAN_UP_REGISTER_VALUE): Remove.
* regcache.c (supply_register): Remove check for
DEPRECATED_CLEAN_UP_REGISTER_VALUE since we've removed the last user.
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/config/pa/tm-hppa.h | 10 | ||||
-rw-r--r-- | gdb/hppa-tdep.c | 14 | ||||
-rw-r--r-- | gdb/regcache.c | 14 |
4 files changed, 22 insertions, 24 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b0d299e..8b5a2f2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,13 @@ 2004-04-17 Randolph Chung <tausq@debian.org> + * hppa-tdep.c (hppa_pseudo_register_read): Define. + (hppa_gdbarch_init): Set pseudo_register_read. + * config/pa/tm-hppa.h (DEPRECATED_CLEAN_UP_REGISTER_VALUE): Remove. + * regcache.c (supply_register): Remove check for + DEPRECATED_CLEAN_UP_REGISTER_VALUE since we've removed the last user. + +2004-04-17 Randolph Chung <tausq@debian.org> + * Makefile.in (hpread.o, pa64solib.o, somsolib.o): Add $(hppa_tdep_h) * hppa-tdep.h (INSTRUCTION_SIZE): Move from tm-hppa.h. (hpread_adjust_stack_address): Move to hpread.c. diff --git a/gdb/config/pa/tm-hppa.h b/gdb/config/pa/tm-hppa.h index cf9f31c..a803719 100644 --- a/gdb/config/pa/tm-hppa.h +++ b/gdb/config/pa/tm-hppa.h @@ -66,16 +66,6 @@ extern int hppa_pc_requires_run_before_use (CORE_ADDR pc); #define ARG2_REGNUM 24 /* The third argument of a callee. */ #define ARG3_REGNUM 23 /* The fourth argument of a callee. */ -/* When fetching register values from an inferior or a core file, - clean them up using this macro. BUF is a char pointer to - the raw value of the register in the registers[] array. */ - -#define DEPRECATED_CLEAN_UP_REGISTER_VALUE(regno, buf) \ - do { \ - if ((regno) == PCOQ_HEAD_REGNUM || (regno) == PCOQ_TAIL_REGNUM) \ - (buf)[sizeof(CORE_ADDR) -1] &= ~0x3; \ - } while (0) - /* PA specific macro to see if the current instruction is nullified. */ #ifndef INSTRUCTION_NULLIFIED extern int hppa_instruction_nullified (void); diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index b3e9f5f..40cb5b1 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -2540,6 +2540,18 @@ hppa_fetch_pointer_argument (struct frame_info *frame, int argi, return addr; } +static void +hppa_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, + int regnum, void *buf) +{ + ULONGEST tmp; + + regcache_raw_read_unsigned (regcache, regnum, &tmp); + if (regnum == PCOQ_HEAD_REGNUM || regnum == PCOQ_TAIL_REGNUM) + tmp &= ~0x3; + store_unsigned_integer (buf, sizeof(tmp), tmp); +} + /* Here is a table of C type sizes on hppa with various compiles and options. I measured this on PA 9000/800 with HP-UX 11.11 and these compilers: @@ -2699,6 +2711,8 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) frame_unwind_append_sniffer (gdbarch, hppa_frame_unwind_sniffer); frame_base_append_sniffer (gdbarch, hppa_frame_base_sniffer); + set_gdbarch_pseudo_register_read (gdbarch, hppa_pseudo_register_read); + /* Hook in ABI-specific overrides, if they have been registered. */ gdbarch_init_osabi (info, gdbarch); diff --git a/gdb/regcache.c b/gdb/regcache.c index c455e46..f8d885a 100644 --- a/gdb/regcache.c +++ b/gdb/regcache.c @@ -1230,20 +1230,6 @@ void supply_register (int regnum, const void *val) { regcache_raw_supply (current_regcache, regnum, val); - - /* On some architectures, e.g. HPPA, there are a few stray bits in - some registers, that the rest of the code would like to ignore. */ - - /* NOTE: cagney/2001-03-16: The macro CLEAN_UP_REGISTER_VALUE is - going to be deprecated. Instead architectures will leave the raw - register value as is and instead clean things up as they pass - through the method gdbarch_pseudo_register_read() clean up the - values. */ - -#ifdef DEPRECATED_CLEAN_UP_REGISTER_VALUE - DEPRECATED_CLEAN_UP_REGISTER_VALUE \ - (regnum, register_buffer (current_regcache, regnum)); -#endif } void |