The Windows x64 calling convention preserves XMM6:XMM15.
Unfortunately, that means that if I call a https://clang.llvm.org/docs/AttributeReference.html#preserve-most function from an x64 C-ABI function, the caller has to save 10 xmm registers, which makes the
attempts to make the code in the caller as unintrusive as possible
goal of that convention not met at all
Would it be reasonable for preserve_most
to also preserve those registers on Windows x64?
Or is the expectation that people just donβt use preserve_most
on Windows x64? Or that they use the SysV ABI for most code, rather than the native C convention? (fastcc
also seems to preserve these registers on 64-bit Windows.)