summaryrefslogtreecommitdiff
path: root/bridges
diff options
context:
space:
mode:
authorApostolos Syropoulos <asyropoulos@yahoo.com>2014-05-07 18:24:56 +0100
committerMichael Meeks <michael.meeks@collabora.com>2014-05-07 18:25:56 +0100
commit09555ce045934ead76d71fc3681015786a5ff2ff (patch)
tree00d192a462b06d9ba2b7e56d564753e44126e8b4 /bridges
parent777b8f43182c3cdfb07316f706f4412915947186 (diff)
Avoid inlining of bridge functions on Solaris / Intel.
Change-Id: Id047044f86ca358c40a87bebde84453787ccec6d
Diffstat (limited to 'bridges')
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx5
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx10
2 files changed, 2 insertions, 13 deletions
diff --git a/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
index 90519790f7d8..0073b77dea4a 100644
--- a/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
+++ b/bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx
@@ -353,11 +353,8 @@ static typelib_TypeClass cpp_mediate(
* is called on incoming vtable calls
* (called by asm snippets)
*/
-static void cpp_vtable_call(
+static void __attribute__((noinline,regparm(3))) cpp_vtable_call(
int nFunctionIndex, int nVtableOffset, void** pCallStack )
- __attribute__((regparm(3)));
-
-void cpp_vtable_call( int nFunctionIndex, int nVtableOffset, void** pCallStack )
{
volatile long nRegReturn[2];
typelib_TypeClass aType = cpp_mediate(
diff --git a/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
index 2be1c23fe95e..8f0118aea26b 100644
--- a/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx
@@ -38,15 +38,7 @@ using namespace ::com::sun::star::uno;
namespace
{
-void callVirtualMethod(
- void * pAdjustedThisPtr,
- sal_Int32 nVtableIndex,
- void * pRegisterReturn,
- typelib_TypeClass eReturnType,
- sal_Int32 * pStackLongs,
- sal_Int32 nStackLongs ) __attribute__((noinline));
-
-void callVirtualMethod(
+static void __attribute__((noinline)) callVirtualMethod(
void * pAdjustedThisPtr,
sal_Int32 nVtableIndex,
void * pRegisterReturn,