History log of /external/clang/test/CodeGen/ppc64-varargs-struct.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/test/CodeGen/ppc64-varargs-struct.c
3b334036d3ee581352cfe62ccac0e4c6592bcf35 26-Oct-2012 Bill Schmidt <wschmidt@linux.vnet.ibm.com> This patch is a follow-up to r166805. As suggested on-list, a check was
added to ensure no extra alignment code is added in the future.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGen/ppc64-varargs-struct.c
485717e8e43034d653ccd7f35f4546773e016e27 26-Oct-2012 Bill Schmidt <wschmidt@linux.vnet.ibm.com> This patch addresses a 64-bit PowerPC ELF ABI compatibility issue with
varargs parameter passing.

A strict reading of the ABI indicates that any argument with alignment greater
than 8 may require skipping doublewords in the parameter save area to align
the argument, and hence require skipping GPRs. In practice, this is not done
by GCC. The alignment restriction is used for internal alignment of a
structure, but a structure with 16-byte alignment, for example, is not
itself 16-byte aligned in the parameter save area. Although this is messy,
it has become the de facto standard used in building existing libraries.

My initial varargs support followed the ABI language, but not the de facto
standard. Running the GCC compatibility test suite exposed this issue, and
indeed showed that LLVM didn't pass parameters self-consistently with my
original logic. Removing the additional alignment logic allows the affected
tests to now pass.

I modified the ppc64-varargs-struct.c test case to remove the existing test
for generation of alignment code, which is no longer appropriate.

Built and tested on powerpc64-unknown-linux-gnu with no new regressions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGen/ppc64-varargs-struct.c
3645056edb2f7dedc2e6153428f8f1adecc29687 04-Oct-2012 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Fix the CodeGen/ppc64-varargs-struct.c test case to tolerate release builds.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGen/ppc64-varargs-struct.c
61e404e36c914476938db67d873a0df32c6c3a9c 04-Oct-2012 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Add a test case for r156143, which enabled general varargs support for the
64-bit PPC SVR4 ABI.

The test verifies passing of structures, items with 16-byte alignment, and
small items that are passed right-justified in the parameter save area slot.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGen/ppc64-varargs-struct.c