rjmccall added inline comments.
================ Comment at: clang/lib/CodeGen/TargetInfo.cpp:2457 + /*IsVectorCall=*/false, /*IsRegCall=*/false); + } + ---------------- efriedma wrote: > rjmccall wrote: > > Hmm. Doesn't EC ABI lowering need to preserve this same state, or else > > you'll get incompatibilities when you exhaust SSE registers? > > > > Should you just be calling over to this at a higher-level point, like in > > `computeInfo`? > If both IsVectorCall and IsRegCall are false, WinX86_64ABIInfo doesn't use > FreeSSERegs, so we don't need to preserve its state. There isn't any other > relevant state to preserve. > > Return values follow the Arm64 ABI rules, not the x64 rules, so using > computeInfo() as an entry point doesn't really make sense. That's odd. I assume this whole thing is about matching the CC you would get from an instruction-by-instruction translation of x86_64 assembly so that arm64-compiled code can call / be called from translated assembly as long as it uses this special CC. Are there just no functions with interesting return types that anybody happens to care about calling across such a boundary? I would be amazed if the standard arm64 and x64 return rules just happily match for all types. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125419/new/ https://reviews.llvm.org/D125419 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits