Hello, I was trying to figure out why I was seeing: $ gdb (gdb) maint print register-groups Name Nr Rel Offset Size Type Groups eax 0 0 0 4 int general,all,save,restore ... mm0 32 0 176 8 _vec64i sse,mmx,general,all,vector mm1 33 1 184 8 _vec64i mmx,general,all,vector ... when adding i386 specific register groups. Notice how mm0 ended up in the SSE register group :-( The problem was that tests like IS_SSE_REGNUM_P() and more specifically regnum==MXCSR_REGNUM weren't sufficient - they can trigger a false positive when the ISA doesn't have one set of registersSSE registers (the num can match an mmx register - regnum == MXCSR_REGNUM == MM0_REGNUM :-(). The attached: - converts all the macro's into functions - makes the function checks more robust - return true when both the regnum matches and the ISA has the register - adds a method to test for the orig_eax register (the I386_LINUX_ORIG_EAX_REGNUM is moved from i386-linux-tdep.h to i386-tdep.h). Ok to commit? Andrew