Hello, The attached patch replaces the architecture vector interface: void gdbarch_register_read (struct gdbarch *gdbarch, int regnum, char *buf); with the new interface: void gdbarch_cooked_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, void *buf) and then fixes the consequnces (all syntatic). One NB. The parameter set is technically redundant. The assertion: gdbarch == regcache_gdbarch (regcache) always holds so the gdbarch parameter isn't strictly needed. I figured that it is more convenient to include the gdbarch as a parameter and save everyone the hassle of including the above line in their *-tdep code. The SH stuff should be reviewed. I think its on the right track since sh-tdep.c no longer refers to current_regcache!!! comments? sh ok? Andrew