The attached raw patch is the current state of the regcache object. Of note: It is no longer a regbuf but a real regcache object. It cleans up two of the remaining registers[] cases - stop_registers and dummy frames. It tries to separate out the pre/post register_read_p cases and for the post case, always 1:1 maps [0..NUM_REGS). I should put more of the register cache description into the `struct regcache_desc' object (this object also avoids the need to call on gdbarch methods such as MAX_REGISTER_RAW_SIZE). I suspect RichardE will come up with something for {read,write}_register_bytes :-) enjoy, Andrew