diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-08-22 12:07:33 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-08-22 12:10:42 +0100 |
commit | 6396e18f4d49c24283b170310a1892db40c128d3 (patch) | |
tree | 365693d100c892a81f58955102f1f50063f78a41 /bridges | |
parent | 75aad687cb5e63a41303aea568bf68b2b5f15d31 (diff) |
Related: rhbz#1125588 force existence of argument save area
ELFv2 ABI on ppc64 optimises stack allocation
(http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01149.html
so we're getting no argument save area
This now appears to pass the simple cases and onwards
to the tricky ones
Change-Id: Ie56d148ebea7fcfc023cb7183bc97f09186e66b4
Diffstat (limited to 'bridges')
-rw-r--r-- | bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx index c047ebfc7f1c..33131ea78799 100644 --- a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx @@ -114,7 +114,11 @@ static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex, pMethod += 8 * nVtableIndex; pMethod = *((sal_uInt64 *)pMethod); +#if _CALL_ELF == 2 + typedef void (* FunctionCall )(...); +#else typedef void (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 ); +#endif FunctionCall pFunc = (FunctionCall)pMethod; volatile double dret; |