This is similar to D126069, but for floats.
It appears that float support is complete, or at least, the stackmap records emitted are not inconceivable (I must admit that I don't know about many of the architectures under test here).
One curiosity, the SystemZ tests highlight an undocumented (or maybe incorrect) quirk of the stackmap format: in the case of a Register record, the Offset or SmallConstant field can encode a sub-register index! I've only ever seen this field zero for Register entries up until now.
I found the code for this here
This surprised me, since the stackmap docs say:
Each entry in the liveout register list contains a DWARF register number and size in bytes. The stackmap format deliberately omits specific subregister information. Instead the runtime must interpret this information conservatively.
It's not clear to me if this is talking only about liveouts, or the stackmap format as a whole. But given:
For example, if the stackmap reports one byte at %rax, then the value may be in either %al or %ah.
without the sub-register info, how would you know where to look?
Anyway, that is one for another day. I'll raise an issue.