[llvm-commits] [PATCH, PowerPC] Fix PR13947 - Incorrect passing of floats
William J. Schmidt
wschmidt at linux.vnet.ibm.com
Thu Oct 11 08:10:52 PDT 2012
This patch addresses PR13947.
For function calls on the 64-bit PowerPC SVR4 target, each parameter
is mapped to as many doublewords in the parameter save area as
necessary to hold the parameter. The first 13 non-varargs
floating-point values are passed in registers; any additional
floating-point parameters are passed in the parameter save area. A
single-precision floating-point parameter (32 bits) must be mapped to
the second (rightmost, low-order) word of its assigned doubleword
slot.
Currently LLVM violates this ABI requirement by mapping such a
parameter to the first (leftmost, high-order) word of its assigned
doubleword slot. This is internally self-consistent but will not
interoperate correctly with libraries compiled with an ABI-compliant
compiler.
This patch corrects the problem by adjusting the parameter addressing
on both sides of the calling convention.
Tested on powerpc64-unknown-linux-gnu with no new regressions. Is this
ok to commit?
Thanks,
Bill
--
Bill Schmidt, Ph.D.
IBM Advance Toolchain for PowerLinux
IBM Linux Technology Center
wschmidt at us.ibm.com
wschmidt at linux.vnet.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: floatPSA-2012-10-11.patch
Type: text/x-patch
Size: 5118 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121011/3739b5fb/attachment.bin>
More information about the llvm-commits
mailing list