[AIX] Extend int arguments to register width when passed in stack memory.
authorChris Bowler <cebowleratibm@gmail.com>
Thu, 5 Mar 2020 16:34:11 +0000 (11:34 -0500)
committerSean Fertile <sd.fertile@gmail.com>
Thu, 5 Mar 2020 16:49:16 +0000 (11:49 -0500)
commitc7b6fa8f4b860b251e6fc5956955583b8b2a9c33
treeffb2e48b5f913fc4ebe25e3ec15c523fcf54e935
parent99a8cc2b7d89ff73a20aa3e0317fee8b5cb5cecb
[AIX] Extend int arguments to register width when passed in stack memory.

This is a follow up to the previous patch: [AIX] Implement caller
arguments passed in stack memory.

This corrects a defect in AIX 64-bit where an i32 is written to the
stack with stw (4 bytes) rather than the expected std (8 bytes.) Integer
arguments pass on the stack as images of their register representation.

I also took the opportunity to tidy up some of the calling convention
AIX tests I added in my last commit. This patch adds the missed assembly
expected output for the stack arg int case, which would have caught this
problem.

Differential Revision: https://reviews.llvm.org/D75126
llvm/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/test/CodeGen/PowerPC/aix-cc-abi.ll