aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRandolph Chung <tausq@debian.org>2004-04-17 17:31:40 +0000
committerRandolph Chung <tausq@debian.org>2004-04-17 17:31:40 +0000
commit0f8d9d59e8dd52999d4ef9f4c9089df4180c2d4f (patch)
tree01b71d8eebcd62aaca7a9dff80f209cc45e98583
parent7c46b9fb41fd107882032ecc34897a8e86e8264a (diff)
downloadgdb-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/ChangeLog8
-rw-r--r--gdb/config/pa/tm-hppa.h10
-rw-r--r--gdb/hppa-tdep.c14
-rw-r--r--gdb/regcache.c14
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