Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Without this patch, Cpp bridgetest on a Clang-compiled UNO runtime will not complete successfully.


regards,

-kris.

From b9c8ff8b0ac2e1bfe91c62fc0483ca134295ca9c Mon Sep 17 00:00:00 2001
From: Kristian Rietveld <kris@lanedo.com>
Date: Sat, 15 Oct 2011 01:15:21 +0200
Subject: [PATCH] Mark ecx register as clobbered

The inline assembly code executes a function call and functions are
free to use eax, ecx and edx without preservation. We must thus mark
ecx as a clobber register.
---
 .../source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx   |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx 
b/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
index 9f00005..89f5381 100644
--- a/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx
@@ -119,7 +119,7 @@ void callVirtualMethod(
         :
         : "m"(nStackLongs), "m"(pStackLongs), "m"(pAdjustedThisPtr),
           "m"(nVtableIndex), "m"(eax), "m"(edx), "m"(stackptr)
-        : "eax", "edx" );
+        : "eax", "ecx", "edx" );
     switch( pReturnTypeDescr->eTypeClass )
     {
     case typelib_TypeClass_VOID:
-- 
1.7.4.4


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.