summaryrefslogtreecommitdiff
path: root/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
diff options
context:
space:
mode:
authorIvo Hinkelmann <ihi@openoffice.org>2010-03-03 13:14:00 +0100
committerIvo Hinkelmann <ihi@openoffice.org>2010-03-03 13:14:00 +0100
commit9a832a9bdbda66a0c3bfec2ce3eb7ba5bcc2eb44 (patch)
treed46a12c5bddebed0f132c2d5017eeb54141c3cee /bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
parent92e5a45bfaba1b24905c4c22af67e59941e63cda (diff)
parente3e1a6da8047cb36de9a8faf592a69c9a482a5d9 (diff)
CWS-TOOLING: integrate CWS sb119
Notes
Notes: split repo tag: ure_ooo/DEV300_m74
Diffstat (limited to 'bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx')
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
index afd202f683cf..4d1d3f2f8ca4 100644
--- a/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
@@ -84,6 +84,13 @@ void callVirtualMethod(
void * stackptr;
asm volatile (
"mov %%esp, %6\n\t"
+ // preserve potential 128bit stack alignment
+ "and $0xfffffff0, %%esp\n\t"
+ "mov %0, %%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 %%eax, %%edx\n\t"