efriedma added a comment.

The reason struct returns require register shuffling is that AArch64 passes the 
sret pointer in x8 (i.e. RAX), but the x64 calling convention expects in in RCX 
(i.e. x0).

Have you tried to see if the Microsoft-generated thunk actually works?  I found 
at least one bug in MSVC thunk generation and reported it to Microsoft.  
(Microsoft didn't acknowledge the report, but that's a different story...)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D125418/new/

https://reviews.llvm.org/D125418

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to