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.
This commit is contained in:
parent
7c46b9fb41
commit
0f8d9d59e8
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue