This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [rfa:i386] Add mmx registers
Date: Tue, 13 Aug 2002 17:55:33 -0400
From: Andrew Cagney <ac131313@ges.redhat.com>
> + set_gdbarch_pseudo_register_read (gdbarch, i386_pseudo_register_read);
> + set_gdbarch_pseudo_register_write (gdbarch, i386_pseudo_register_write);
>
> changes the i386 target's register cache from "legacy" to "new". This
> means that there isn't room for the pseudo registers in
> register_valid_p, yet registers_changed() tries to frob the entries
> for the pseudo registers.
>
> I don't see an obvious way to fix this. Any bright ideas Andrew?
Hmm, yes. It should be clearing:
[0 .. current_regcache->descr->nr_raw_registers)
Clearing the pseudo registers isn't necessary on targets that still
use the legacy stuff?
Shh! nr_raw_registers == number of raw registers in the register cache
== NUM_REGS + NUM_PSEUDO_REGS on legacy targets. Just don't tell anyone
M'kay ;-)
/* FIXME: cagney/2002-05-11: Shouldn't be including pseudo-registers
in the register buffer. Unfortunatly some architectures do. */
descr->nr_cooked_registers = NUM_REGS + NUM_PSEUDO_REGS;
descr->nr_raw_registers = descr->nr_cooked_registers;
descr->sizeof_raw_register_valid_p = descr->nr_cooked_registers;
Andrew