[PowerPC] fix passing long double arguments to function (soft-float)
authorStrahinja Petrovic <strahinja.petrovic@rt-rk.com>
Fri, 5 Aug 2016 08:47:26 +0000 (08:47 +0000)
committerStrahinja Petrovic <strahinja.petrovic@rt-rk.com>
Fri, 5 Aug 2016 08:47:26 +0000 (08:47 +0000)
commit30e0ce8e9fc4598388fcd3c4d57894036cdd5903
treeca5c55feadd0372d4ecc959e00f5213d96b8bc1d
parent928d7573ddace6e2bd0cd220d661c3e8cbae128e
[PowerPC] fix passing long double arguments to function (soft-float)

This patch fixes passing long double type arguments to function in
soft float mode. If there is less than 4 argument registers free
(long double type is mapped in 4 gpr registers in soft float mode)
long double type argument must be passed through stack.
Differential Revision: https://reviews.llvm.org/D20114.

llvm-svn: 277804
llvm/lib/Target/PowerPC/PPCCallingConv.td
llvm/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/lib/Target/PowerPC/PPCISelLowering.h
llvm/test/CodeGen/PowerPC/ppc32-skip-regs.ll [new file with mode: 0644]