Hello, The PPC, for some processor variants, has an empty register R0: #define R0 { 0, 0, 0, 0, 0 } /* UISA-level SPRs for PowerPC without floating point support. */ #define PPC_UISA_NOFP_SPRS \ /* 66 */ R4(cr), R(lr), R(ctr), R4(xer), R0 /* Motorola e500. */ static const struct reg registers_e500[] = { R(pc), R(ps), /* cr, lr, ctr, xer, "" */ PPC_UISA_NOFP_SPRS, ... } The problem is that register_virtual_type for those registers returns int32 and, when things are added up, that doesn't agree with register_raw_size (aka regsize), et.al. This makes regcache.[hc] grumpy (try 'set architecture powerpc:e500 :-). The attached adds an empty integer type (for want of a better choice) and then modifies register_virtual_type so that it is returned when the register is zero. With this in place it becomes possible (well in theory) to delete all the deprecated register * methods. Ok? GDB 6 branch? Andrew