Stupid question: since this is all very rare and non-performance critical, why isn't it done as a single register per call? Adding more registers when thy arrive in newer cpu variants, and not worrying about how they are saved (XSAVE or similar) nor what format is used in the kernel?
So a debugger would do a single PT_GETREG_$REGISTER call from userland for each register it is interested in. The current state with register groups (regs, fpregs, dbregs, xmmmregs, vecregs, ...) looks like a hack to me. The first two make some sense (across various cpu architectures), and maybe performance and debug registers could be a third reasonable group (especially given the security implications), but everything else is arbitrary and may just as well be individual registers. Martin
