[Libreoffice-commits] core.git: bridges/source

jan Iversen jani at libreoffice.org
Fri Mar 16 19:31:02 UTC 2018


 bridges/source/cpp_uno/gcc3_ios/cpp2uno.cxx    |    6 ++----
 bridges/source/cpp_uno/gcc3_ios/ios64_helper.s |    9 +++++++--
 2 files changed, 9 insertions(+), 6 deletions(-)

New commits:
commit 8a8663a49b6d2ba297587c730860cc8ca9d139da
Author: jan Iversen <jani at libreoffice.org>
Date:   Fri Mar 16 20:29:02 2018 +0100

    iOS, solved call stack problem.
    
    Stack was not corrupted, but the call stack was not intact when
    passing the assembler code.
    
    Change-Id: If07909dce2b4a73634a130e5f50e84312115b845

diff --git a/bridges/source/cpp_uno/gcc3_ios/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_ios/cpp2uno.cxx
index 748d276ac21b..9ad3954e4504 100644
--- a/bridges/source/cpp_uno/gcc3_ios/cpp2uno.cxx
+++ b/bridges/source/cpp_uno/gcc3_ios/cpp2uno.cxx
@@ -418,8 +418,8 @@ namespace
  * (called by asm snippets)
  */
 
-extern "C" sal_Int64 cpp_vtable_call( sal_Int32 func, sal_Int32 offset,
-                                      void **pCallStack )
+extern "C" void cpp_vtable_call( sal_Int32 func, sal_Int32 offset,
+                                 void **pCallStack )
 {
     sal_Int64 nRegReturn;
     typelib_TypeClass aType = cpp_mediate( func, offset, pCallStack, &nRegReturn );
@@ -444,8 +444,6 @@ extern "C" sal_Int64 cpp_vtable_call( sal_Int32 func, sal_Int32 offset,
         default:
             break;
     }
-
-    return nRegReturn;
 }
 
 namespace
diff --git a/bridges/source/cpp_uno/gcc3_ios/ios64_helper.s b/bridges/source/cpp_uno/gcc3_ios/ios64_helper.s
index 67620c38e426..4c09f2b1b2f9 100644
--- a/bridges/source/cpp_uno/gcc3_ios/ios64_helper.s
+++ b/bridges/source/cpp_uno/gcc3_ios/ios64_helper.s
@@ -199,6 +199,8 @@ _privateSnippetExecutor:
     .cfi_offset w29, -16
 
     // _privateSnippetExecutor is jumped to from codeSnippet_*
+    stp    x29, x30, [sp, #-0x10]!
+    mov    x29, sp
 
     // push all GP, FP/SIMD registers to the stack
     stp     x6, x7, [sp, #-16]!
@@ -220,9 +222,12 @@ _privateSnippetExecutor:
     mov     x2, sp
 
     bl      _cpp_vtable_call
-    ldp     x8, lr, [sp, #0]
+//    ldp     x8, lr, [sp, #0]
+//    add     sp, sp, #144
+//    ret     lr
     add     sp, sp, #144
-    ret     lr
+    ldp    x29, x30, [sp], #0x10
+    ret
     .cfi_endproc
 
 // vim:set shiftwidth=4 softtabstop=4 expandtab:


More information about the Libreoffice-commits mailing list