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]