In these cases, the register number should be calculated from fpu_d0, not fpu_s0.
This is definitely right. I remember running into this in the past, but I don't remember whether I ended up not committing the fix, or is this another instance of that bug.
In either case, it's sad that there are no tests breaking due to this. Ideally we'd have a small arm64 macho core file with well known register values that we could just assert are read correctly. You probably don't have the means to create such a core file, so it's not fair to ask you to do that, but it would be great if one of the apple folks added a test like that.
I have a little program in macosx/lc-note that can create a corefile with a register context. I'll base something on that to create an arm64 mach-o corefile (or any architecture) and write a simple test to see if we can get an expected register value out.