[PATCH] D71013: [AIX] Allow vararg calls when all arguments reside in registers.
Chris Bowler via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 7 07:52:11 PST 2020
cebowleratibm updated this revision to Diff 236585.
cebowleratibm added a comment.
I've decided to use custom regs for all gpr inits for float varargs. I discovered that f64 passing in 64-bit gpr was missing a required bitcast to int to handle the initialization. The new logic ensures the bitcast occurs for any custom handling. Custom handling is only expected for gpr inits of float args.
I've added assembly tests to ensure that we emit the correct instructions to initialize the GPRs from float regs. On pwr8 and newer there are instructions available to do this without going through memory, however, I couldn't validate this because of the AIX altivec limitation. Consequently, I've added the assembly test for pre-pwr8 and added an error test such that we can validate this when altivec is enabled for AIX.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71013/new/
https://reviews.llvm.org/D71013
Files:
llvm/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/test/CodeGen/PowerPC/aix-cc-abi.ll
llvm/test/CodeGen/PowerPC/aix-cc-altivec.ll
llvm/test/CodeGen/PowerPC/aix_cc_abi.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71013.236585.patch
Type: text/x-patch
Size: 22692 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200107/bfb36b6a/attachment-0001.bin>
More information about the llvm-commits
mailing list