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

Reply via email to