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.)