Hello, This revises my earlier patch that replaced gdbarch_register_read() with regarch_cooked_register_read(). Reviewing the doco discussion, think it is clear that the term ``pseudo'' is pretty entrenched in GDB. Even the presence of the word triggers certain assumptions :-) The change makes use of this. The attached patch replaces the function: void gdbarch_register_read (int regnum, char *buf); with void gdbarch_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, void *buf); It is called by (well will be once I add it) regcache_cooked_read() to map a cooked register in the range [NUM_REGS .. NUM_REGS + NUM_PSEUDO_REGS) (which are often refered to as pseudo registers) onto raw registers and/or memory. (Remember, cooked registers in the range [0 .. NUM_REGS) are 1:1 mapped onto raw registers.) Ditto for the write side. I'm also revising my WIP doco. For the SH, I've made use of this tightend specification (it doesn't get called for raw registers). Ok? I'll look to commit in a few days. Andrew