2004-04-17 Randolph Chung <tausq@debian.org>
authorRandolph Chung <tausq@debian.org>
Sat, 17 Apr 2004 17:31:40 +0000 (17:31 +0000)
committerRandolph Chung <tausq@debian.org>
Sat, 17 Apr 2004 17:31:40 +0000 (17:31 +0000)
* 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.

gdb/ChangeLog
gdb/config/pa/tm-hppa.h
gdb/hppa-tdep.c
gdb/regcache.c

index b0d299ec57b4e65a49752601b3e2b8fbf01ff490..8b5a2f20c6396f28d383012d9ae980f50cb1a40f 100644 (file)
@@ -1,3 +1,11 @@
+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)
index cf9f31cc9ca833c224a7866495293ba7d262b057..a8037194dae058344315a9c52e67b8799f7cc5e0 100644 (file)
@@ -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);
index b3e9f5fecc1e76c8d630a5df19c66d386ea9cb42..40cb5b1b610bc0b252a4b968d08de718d9f08154 100644 (file)
@@ -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);
 
index c455e46690ecfba6f27f0000b3c8e5ed1e455353..f8d885a40271f5092e551ad5134b6e2b82d65b88 100644 (file)
@@ -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