Hello, The attached patch replaces the function register_buffer(regnum) with regcache_collect(regnum, buffer). regcache_collect() is the counter-part to supply_register(). It extracts a single raw register from the register cache as part of processing a target_store_registers() request. Unlike register_buffer() this interface doesn't make assumptions about the underlying register cache. Targets that are directly manipulating the registers[] and register_valid[] arrays should consider themselves as being ``on notice''. Potential follow-ons to this patch are: add a ``struct regcache'' parameter; and add ``struct regcache'' to ``struct thread_info''; and parameterise target_{fetch,store}_registers() with ``struct regcache'' or ``struct thread_info''. Testing continues... Eli, note the tweek to go32-nat.c. thoughts? Andrew