[PATCH] D125419: [Arm64EC 7/?] clang side of Arm64EC varargs ABI.
John McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 5 19:49:35 PDT 2022
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
More information about the cfe-commits
mailing list