Hello, The architecture vector contains the methods: REGISTER_CONVERT_TO_VIRTUAL REGISTER_CONVERT_TO_RAW REGISTER_CONVERTIBLE REGISTER_VIRTUAL_TYPE REGISTER_RAW_SIZE REGISTER_VIRTUAL_SIZE GDB's core uses them in two different ways: - to convert between a registers raw and virtual representations For instance, the MIPS uses this in an attempt to handle an ABI with 32 bit registers on a 64 bit ISA. (I'm not saying it works mind). - to convert between a data values memory (normal) and register representation For instance, the Alpha might store a 32 bit int in a floating point register. The attached patch adds, documents, and uses, a new set of architecture methods: CONVERT_REGISTER_P REGISTER_TO_VALUE VALUE_TO_REGISTER that handle just the second case. To keep existing architectures working they default to corresponding *CONVERT* macros (which means the patch really doesn't change anything). Reviewing the various architectures: A number could define just the new methods vis: alpha A number [possibly] don't need to define either (but do): ia64-tdep.c (should use floatformat) rs6000-tdep.c x86-64-tdep.c (?) i386-tdep.c (?) and one (*&*!^$(*&^(!@$) still needs the old and new methods. MIPS Thoughts? I'll look to commit it in a week. Andrew