Floating-point register number is incorrect (or at least confusing) on X86_64
Currently, on X86_64 we set REG_XMM1
to be the xmm1 register, when it should be the xmm0 register.
This is because numbering of xmm/ymm/zmm registers in Cmm starts at 1 but the underlying machine register are numbered starting from 0.
This infelicity means that GHC doesn't follow the calling convention that it says it does, and causes problem e.g. when using GhcForeignImportPrim
as arguments are not in the expected registers.