[PATCH] D73209: [AIX] Implement caller arguments passed in stack memory
Zarko Todorovski via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 29 06:54:02 PST 2020
ZarkoCA added inline comments.
================
Comment at: llvm/lib/Target/PowerPC/PPCISelLowering.cpp:6886-6891
+ // If there are insufficient GPRs, the PSA needs to be initialized.
+ // Initialization occurs even if an FPR was initialized for
+ // compatibility with the AIX XL compiler. The full memory for the
+ // argument will be initialized even if a prior word is saved in GPR.
+ State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset, LocVT, LocInfo));
+ break;
----------------
cebowleratibm wrote:
> ZarkoCA wrote:
> > Can we add a test for this? Specifically checking if the full memory for the arg is initialized.
> call_test_stackarg_float2 covers this scenario. There are STFS and STFD for the trailing float and double args.
Yep, I missed it the first time, thanks for pointing it out.
================
Comment at: llvm/lib/Target/PowerPC/PPCISelLowering.cpp:7061
+ const unsigned NumBytes = std::max(LinkageSize + MinParameterSaveAreaSize,
+ CCInfo.getNextStackOffset());
----------------
Does the value given by `CCInfo.getNextStackOffset()` account for the linkage save area? I've found that it doesn't and only gives the size of the PSA when working on the callee side.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D73209/new/
https://reviews.llvm.org/D73209
More information about the llvm-commits
mailing list