From e8ac3b5bd973054c6fd74db017bb448721e2c3e2 Mon Sep 17 00:00:00 2001 From: Caolan McNamara Date: Fri, 10 Jul 2015 16:36:41 +0100 Subject: ppc64: using a fp register also consumes a gp register slot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Idf6f40081f4598c0fa9d1e10bdc208eae49e4cd1 Reviewed-on: https://gerrit.libreoffice.org/16936 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- testtools/com/sun/star/comp/bridge/TestComponent.java | 4 ++++ testtools/source/bridgetest/bridgetest.cxx | 4 ++++ testtools/source/bridgetest/cli/cli_cs_testobj.cs | 5 +++++ testtools/source/bridgetest/cppobj.cxx | 2 ++ testtools/source/bridgetest/idl/bridgetest.idl | 6 ++++++ 5 files changed, 21 insertions(+) (limited to 'testtools') diff --git a/testtools/com/sun/star/comp/bridge/TestComponent.java b/testtools/com/sun/star/comp/bridge/TestComponent.java index a6966eb15ec2..f8b50f23e222 100644 --- a/testtools/com/sun/star/comp/bridge/TestComponent.java +++ b/testtools/com/sun/star/comp/bridge/TestComponent.java @@ -498,6 +498,10 @@ public class TestComponent { return i2; } + public int testPPC64Alignment( double d1, double d2, double d3, int i1 ) throws com.sun.star.uno.RuntimeException { + return i1; + } + public double testTenDoubles( double d1, double d2, double d3, double d4, double d5, double d6, double d7, double d8, double d9, double d10 ) { return d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 + d10; } diff --git a/testtools/source/bridgetest/bridgetest.cxx b/testtools/source/bridgetest/bridgetest.cxx index 52e337f1f277..d17900feb874 100644 --- a/testtools/source/bridgetest/bridgetest.cxx +++ b/testtools/source/bridgetest/bridgetest.cxx @@ -528,6 +528,10 @@ static bool performTest( sal_Int32 i2 = xLBT->testPPCAlignment(0, 0, 0, 0, 0xBEAF); bRet &= check(i2 == 0xBEAF, "ppc-style alignment test"); } + { + sal_Int32 i1 = xLBT->testPPC64Alignment(1.0, 2.0, 3.0, 0xBEAF); + bRet &= check(i1 == 0xBEAF, "ppc64-style alignment test"); + } { double d1 = xLBT->testTenDoubles(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0); diff --git a/testtools/source/bridgetest/cli/cli_cs_testobj.cs b/testtools/source/bridgetest/cli/cli_cs_testobj.cs index 9d0ac7a5d715..8f396c924cea 100644 --- a/testtools/source/bridgetest/cli/cli_cs_testobj.cs +++ b/testtools/source/bridgetest/cli/cli_cs_testobj.cs @@ -255,6 +255,11 @@ public class BridgeTestObject : WeakBase, XRecursiveCall, XBridgeTest2 return i2; } + public int testPPC64Alignment( double d1, double d2, double d3, int i1 ) + { + return i1; + } + public double testTenDoubles( double d1, double d2, double d3, double d4, double d5, double d6, double d7, double d8, double d9, double d10 ) { return d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 + d10; diff --git a/testtools/source/bridgetest/cppobj.cxx b/testtools/source/bridgetest/cppobj.cxx index d21d753ae470..4b74e4a73b38 100644 --- a/testtools/source/bridgetest/cppobj.cxx +++ b/testtools/source/bridgetest/cppobj.cxx @@ -220,6 +220,8 @@ public: { return rStruct; } virtual sal_Int32 SAL_CALL testPPCAlignment( sal_Int64, sal_Int64, sal_Int32, sal_Int64, sal_Int32 i2 ) throw(com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE { return i2; } + virtual sal_Int32 SAL_CALL testPPC64Alignment( double , double , double , sal_Int32 i1 ) throw(com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE + { return i1; } virtual double SAL_CALL testTenDoubles( double d1, double d2, double d3, double d4, double d5, double d6, double d7, double d8, double d9, double d10 ) throw(com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE { return d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 + d10; } virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE diff --git a/testtools/source/bridgetest/idl/bridgetest.idl b/testtools/source/bridgetest/idl/bridgetest.idl index a11ba28e9036..22612b8dfc36 100644 --- a/testtools/source/bridgetest/idl/bridgetest.idl +++ b/testtools/source/bridgetest/idl/bridgetest.idl @@ -306,6 +306,12 @@ interface XBridgeTestBase : com::sun::star::uno::XInterface */ long testPPCAlignment( [in] hyper l1, [in] hyper l2, [in] long i1, [in] hyper l3, [in] long i2 ); + /** + * PPC64 Alignment test + */ + long testPPC64Alignment( [in] double d1, [in] double d2, [in] double d3, [in] long i1 ); + + /** * VFP ABI (armhf) doubles test */ -- cgit