Go to file
Bill Schmidt 4a2dcfe5ee 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.

llvm-svn: 166805
2012-10-26 19:59:03 +00:00
clang This patch addresses a 64-bit PowerPC ELF ABI compatibility issue with 2012-10-26 19:59:03 +00:00
clang-tools-extra Remove a trailing blank line, test commit. 2012-10-10 14:06:15 +00:00
compiler-rt Fix a compiler warning in internal_memmove. 2012-10-26 13:47:36 +00:00
debuginfo-tests XTARGET was removed, update debug-info tests. 2012-10-20 01:38:50 +00:00
libclc Implement any() builtin. Patch by Tom Stellard! 2012-10-08 03:39:21 +00:00
libcxx Add an entry in CREDITS.TXT 2012-10-15 17:34:53 +00:00
libcxxabi Make the type_info for __shim_type_info visible. This should address some failing dynamic_casts that a few applications are doing on the type_info hierarchy. 2012-10-13 18:45:59 +00:00
lld This patch changes the following: 2012-10-25 17:53:04 +00:00
lldb This patch updates comments in the Predicate class to describe a subtle behavior that callers may need to be aware. It also adds documentation for one function which didn’t have any. 2012-10-26 19:28:36 +00:00
llvm Remove the unneeded initializers. 2012-10-26 19:52:54 +00:00
polly Another speculative commit to try to fix Polly's build. This is more delta than 2012-10-25 08:43:18 +00:00