diff options
Diffstat (limited to 'bridges')
7 files changed, 81 insertions, 81 deletions
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp-i386.cxx b/bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp-i386.cxx index 45e51a9929fc..5846f5d1fe20 100644 --- a/bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp-i386.cxx +++ b/bridges/source/cpp_uno/gcc3_ios_arm/uno2cpp-i386.cxx @@ -67,11 +67,11 @@ void callVirtualMethod( // never called if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something - volatile long edx = 0, eax = 0; // for register returns - void * stackptr = 0; + long edx, eax; // for register returns + void * stackptr; asm volatile ( - "mov %%esp, %6\n\t" - "mov %0, %%eax\n\t" + "mov %%esp, %2\n\t" + "mov %3, %%eax\n\t" "mov %%eax, %%edx\n\t" // stack padding to keep stack aligned: "shl $2, %%eax\n\t" @@ -83,28 +83,27 @@ void callVirtualMethod( "mov %%edx, %%eax\n\t" "dec %%edx\n\t" "shl $2, %%edx\n\t" - "add %1, %%edx\n" + "add %4, %%edx\n" "Lcopy:\n\t" "pushl 0(%%edx)\n\t" "sub $4, %%edx\n\t" "dec %%eax\n\t" "jne Lcopy\n\t" // do the actual call - "mov %2, %%edx\n\t" + "mov %5, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" - "mov %3, %%eax\n\t" + "mov %6, %%eax\n\t" "shl $2, %%eax\n\t" "add %%eax, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" "call *%%edx\n\t" // save return registers - "mov %%eax, %4\n\t" - "mov %%edx, %5\n\t" + "mov %%eax, %0\n\t" + "mov %%edx, %1\n\t" // cleanup stack - "mov %6, %%esp\n\t" - : - : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), - "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr) + "mov %2, %%esp\n\t" + : "=m"(eax), "=m"(edx), "=m"(stackptr) + : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), "m"(nVtableIndex) : "eax", "edx" ); switch( pReturnTypeDescr->eTypeClass ) { diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/callvirtualmethod.cxx b/bridges/source/cpp_uno/gcc3_linux_intel/callvirtualmethod.cxx index af060de41506..15b357be2cfb 100644 --- a/bridges/source/cpp_uno/gcc3_linux_intel/callvirtualmethod.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_intel/callvirtualmethod.cxx @@ -62,44 +62,43 @@ void CPPU_CURRENT_NAMESPACE::callVirtualMethod( if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something #endif - volatile long edx = 0, eax = 0; // for register returns + long edx, eax; // for register returns void * stackptr; asm volatile ( - "mov %%esp, %6\n\t" + "mov %%esp, %2\n\t" // preserve potential 128bit stack alignment "and $0xfffffff0, %%esp\n\t" - "mov %0, %%eax\n\t" + "mov %3, %%eax\n\t" "lea -4(,%%eax,4), %%eax\n\t" "and $0xf, %%eax\n\t" "sub $0xc, %%eax\n\t" "add %%eax, %%esp\n\t" // copy values - "mov %0, %%eax\n\t" + "mov %3, %%eax\n\t" "mov %%eax, %%edx\n\t" "dec %%edx\n\t" "shl $2, %%edx\n\t" - "add %1, %%edx\n" + "add %4, %%edx\n" "Lcopy:\n\t" "pushl 0(%%edx)\n\t" "sub $4, %%edx\n\t" "dec %%eax\n\t" "jne Lcopy\n\t" // do the actual call - "mov %2, %%edx\n\t" + "mov %5, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" - "mov %3, %%eax\n\t" + "mov %6, %%eax\n\t" "shl $2, %%eax\n\t" "add %%eax, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" "call *%%edx\n\t" // save return registers - "mov %%eax, %4\n\t" - "mov %%edx, %5\n\t" + "mov %%eax, %0\n\t" + "mov %%edx, %1\n\t" // cleanup stack - "mov %6, %%esp\n\t" - : - : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), - "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr) + "mov %2, %%esp\n\t" + : "=m"(eax), "=m"(edx), "=m"(stackptr) + : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), "m"(nVtableIndex) : "eax", "ecx", "edx" ); switch( pReturnTypeDescr->eTypeClass ) { diff --git a/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx index 37b00d258ad1..1a73ed5188ee 100644 --- a/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx @@ -70,9 +70,9 @@ void callVirtualMethod( void * pAdjustedThisPtr, // never called if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something - volatile long o0 = 0, o1 = 0; // for register returns - volatile double f0d = 0; - volatile float f0f = 0; + long o0, o1; // for register returns + double f0d; + float f0f; volatile long long saveReg[7]; __asm__ ( @@ -231,12 +231,15 @@ void callVirtualMethod( void * pAdjustedThisPtr, "ldd [%%l7], %%o4\n\t" "add %%l7, 8, %%l7\n\t" "ldd [%%l7], %%l6\n\t" - : : - "m"(o0), - "m"(o1), - "m"(f0d), - "m"(f0f), + : + "=m"(o0), + "=m"(o1), + "=m"(f0d), + "=m"(f0f), + : "r"(&saveReg[0]) + : + "memory" ); switch( eReturnType ) { diff --git a/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx index 9b14f17c526c..7c09e3ce7369 100644 --- a/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx @@ -70,11 +70,11 @@ void callVirtualMethod( // never called if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something - volatile long edx = 0, eax = 0; // for register returns - void * stackptr = 0; + long edx, eax; // for register returns + void * stackptr; asm volatile ( - "mov %%esp, %6\n\t" - "mov %0, %%eax\n\t" + "mov %%esp, %2\n\t" + "mov %3, %%eax\n\t" "mov %%eax, %%edx\n\t" // stack padding to keep stack aligned: "shl $2, %%eax\n\t" @@ -86,28 +86,27 @@ void callVirtualMethod( "mov %%edx, %%eax\n\t" "dec %%edx\n\t" "shl $2, %%edx\n\t" - "add %1, %%edx\n" + "add %4, %%edx\n" "Lcopy:\n\t" "pushl 0(%%edx)\n\t" "sub $4, %%edx\n\t" "dec %%eax\n\t" "jne Lcopy\n\t" // do the actual call - "mov %2, %%edx\n\t" + "mov %5, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" - "mov %3, %%eax\n\t" + "mov %6, %%eax\n\t" "shl $2, %%eax\n\t" "add %%eax, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" "call *%%edx\n\t" // save return registers - "mov %%eax, %4\n\t" - "mov %%edx, %5\n\t" + "mov %%eax, %0\n\t" + "mov %%edx, %1\n\t" // cleanup stack - "mov %6, %%esp\n\t" - : - : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), - "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr) + "mov %2, %%esp\n\t" + : "=m"(eax), "=m"(edx), "=m"(stackptr) + : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), "m"(nVtableIndex) : "eax", "ecx", "edx" ); switch( pReturnTypeDescr->eTypeClass ) { @@ -131,10 +130,10 @@ void callVirtualMethod( *(unsigned char*)pRegisterReturn = eax; break; case typelib_TypeClass_FLOAT: - asm ( "fstps %0" : : "m"(*(char *)pRegisterReturn) ); + asm ( "fstps %0" : "=m"(*(char *)pRegisterReturn) ); break; case typelib_TypeClass_DOUBLE: - asm ( "fstpl %0\n\t" : : "m"(*(char *)pRegisterReturn) ); + asm ( "fstpl %0\n\t" : "=m"(*(char *)pRegisterReturn) ); break; default: { sal_Int32 const nRetSize = pReturnTypeDescr->nSize; diff --git a/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx index 1be121519577..13ac8df07663 100644 --- a/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx @@ -57,37 +57,36 @@ static void callVirtualMethod( // never called if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something - volatile long edx = 0, eax = 0; // for register returns + long edx, eax; // for register returns void * stackptr; asm volatile ( - "mov %%esp, %6\n\t" + "mov %%esp, %2\n\t" // copy values - "mov %0, %%eax\n\t" + "mov %3, %%eax\n\t" "mov %%eax, %%edx\n\t" "dec %%edx\n\t" "shl $2, %%edx\n\t" - "add %1, %%edx\n" + "add %4, %%edx\n" "Lcopy:\n\t" "pushl 0(%%edx)\n\t" "sub $4, %%edx\n\t" "dec %%eax\n\t" "jne Lcopy\n\t" // do the actual call - "mov %2, %%edx\n\t" + "mov %5, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" - "mov %3, %%eax\n\t" + "mov %6, %%eax\n\t" "shl $2, %%eax\n\t" "add %%eax, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" "call *%%edx\n\t" // save return registers - "mov %%eax, %4\n\t" - "mov %%edx, %5\n\t" + "mov %%eax, %0\n\t" + "mov %%edx, %1\n\t" // cleanup stack - "mov %6, %%esp\n\t" - : - : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), - "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr) + "mov %2, %%esp\n\t" + : "=m"(eax), "=m"(edx), "=m"(stackptr) + : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), "m"(nVtableIndex) : "eax", "ecx", "edx" ); switch( eReturnType ) { diff --git a/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx index a85d756a823f..ae9f0b889ebc 100644 --- a/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx @@ -68,9 +68,9 @@ void callVirtualMethod( void * pAdjustedThisPtr, // never called if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something - volatile long o0 = 0, o1 = 0; // for register returns - volatile double f0d = 0; - volatile float f0f = 0; + long o0, o1; // for register returns + double f0d; + float f0f; volatile long long saveReg[7]; __asm__ ( @@ -229,12 +229,14 @@ void callVirtualMethod( void * pAdjustedThisPtr, "ldd [%%l7], %%o4\n\t" "add %%l7, 8, %%l7\n\t" "ldd [%%l7], %%l6\n\t" - : : - "m"(o0), - "m"(o1), - "m"(f0d), - "m"(f0f), + : + "=m"(o0), + "=m"(o1), + "=m"(f0d), + "=m"(f0f), + : "r"(&saveReg[0]) + : "memory" ); switch( eReturnType ) { diff --git a/bridges/source/cpp_uno/mingw_intel/callvirtualmethod.cxx b/bridges/source/cpp_uno/mingw_intel/callvirtualmethod.cxx index c1bb9b6e07ad..2f6950ad7a49 100644 --- a/bridges/source/cpp_uno/mingw_intel/callvirtualmethod.cxx +++ b/bridges/source/cpp_uno/mingw_intel/callvirtualmethod.cxx @@ -56,37 +56,36 @@ void CPPU_CURRENT_NAMESPACE::callVirtualMethod( // never called if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something - volatile long edx = 0, eax = 0; // for register returns + long edx, eax; // for register returns void * stackptr; asm volatile ( - "mov %%esp, %6\n\t" + "mov %%esp, %2\n\t" // copy values - "mov %0, %%eax\n\t" + "mov %3, %%eax\n\t" "mov %%eax, %%edx\n\t" "dec %%edx\n\t" "shl $2, %%edx\n\t" - "add %1, %%edx\n" + "add %4, %%edx\n" "Lcopy:\n\t" "pushl 0(%%edx)\n\t" "sub $4, %%edx\n\t" "dec %%eax\n\t" "jne Lcopy\n\t" // do the actual call - "mov %2, %%edx\n\t" + "mov %5, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" - "mov %3, %%eax\n\t" + "mov %6, %%eax\n\t" "shl $2, %%eax\n\t" "add %%eax, %%edx\n\t" "mov 0(%%edx), %%edx\n\t" "call *%%edx\n\t" // save return registers - "mov %%eax, %4\n\t" - "mov %%edx, %5\n\t" + "mov %%eax, %0\n\t" + "mov %%edx, %1\n\t" // cleanup stack - "mov %6, %%esp\n\t" - : - : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), - "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr) + "mov %2, %%esp\n\t" + : "=m"(eax), "=m"(edx), "=m"(stackptr) + : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr), "m"(nVtableIndex) : "eax", "ecx", "edx" ); switch( returnType->eTypeClass ) { |