To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=41455
                  Issue #:|41455
                  Summary:|asm problem (x86)
                Component:|udk
                  Version:|680m74
                 Platform:|Other
                      URL:|
               OS/Version:|Linux
                   Status:|NEW
        Status whiteboard:|
                 Keywords:|
               Resolution:|
               Issue type:|DEFECT
                 Priority:|P3
             Subcomponent:|code
              Assigned to:|kr
              Reported by:|mmeeks





------- Additional comments from [EMAIL PROTECTED] Thu Jan 27 04:47:34 -0800 
2005 -------
We've had this patch lurking for what seems an age - Federico knows what it
does, I just apply it; the comment was:
# Fix some incorrect assumptions about registers (x86-only)

And I think this gave us some acute grief in the past.

--- bridges/source/c_uno/intelx86.cxx.asmfixes  Wed Apr 18 13:05:48 2001
+++ bridges/source/c_uno/intelx86.cxx   Thu May 30 11:37:26 2002
@@ -95,24 +95,21 @@ Lcopy:      sub             eax, 4
                add             esp, eax
        }
 #elif GCC
+       int ecx, edx;
+
        __asm__
        (
-               "mov %2, %%eax\n\t"
-               "mov %%eax, %%ecx\n\t"
-               "shl $2, %%eax\n\t"
-               "add %1, %%eax\n"
-               "Lcopy:\n\t"
-               "sub $4, %%eax\n\t"
-               "pushl (%%eax)\n\t"
-               "dec %%ecx\n\t"
-               "jne Lcopy\n\t"
-               "mov %0, %%eax\n\t"
-               "call *%%eax\n\t"
-               "mov %%eax, %3\n"
-               "mov %2, %%eax\n\t"
-               "shl $2, %%eax\n\t"
-               "add %%eax, %%esp\n\t"
-               : : "m"(fptr), "m"(pParams), "m"(nParams), "m"(retVal)
+               "1:\n\t"
+               "subl $4, %0\n\t"
+               "pushl (%0)\n\t"
+               "decl %1\n\t"
+               "jne 1b\n\t"
+               "call *%2\n\t"
+               "leal 0(%%esp,%3,4), %%esp\n\t"
+               : "=a"(retVal), "=c"(ecx), "=d"(edx)
+               : "S"(nParams),
+                 "0" (((int *) pParams) + nParams), "1" (nParams), "2"(fptr)
+               : "memory", "cc"
        );
 #else
 #error "### unsupported x86 compiler!"

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to