summaryrefslogtreecommitdiff
path: root/bridges
diff options
context:
space:
mode:
authorStephan Bergmann <stephan.bergmann@allotropia.de>2024-04-25 09:48:40 +0200
committerStephan Bergmann <stephan.bergmann@allotropia.de>2024-04-25 14:44:27 +0200
commit6fd06e0215602c61ce6cefb07a3d401fc85d30c2 (patch)
tree9c11c7e71c187d3e9b8e445b3cdbd9f40759996d /bridges
parent89998a744f9ee8efa40c0e1cb7bdbc783d3414fa (diff)
Add back the callVirtualFunction_fake boilerplate
...that ae6ee262d7649222a137f8722886a10db274ddf5 "Some fixing of msvc_win32_arm64 UNO bridge" had removed, assuming it wasn't actually necessary. But looks like Windows exception handling stack unwinding somehow needs it after all. Getting past the CustomTarget_testtools/uno_test getRaiseAttr1() call now (but still failing at some later place). Change-Id: I1e84345f2f355ab1e480c779da6b221b744132b3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166616 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
Diffstat (limited to 'bridges')
-rw-r--r--bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S9
1 files changed, 7 insertions, 2 deletions
diff --git a/bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S b/bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S
index 546c02cf5040..55fd3f95ff85 100644
--- a/bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S
+++ b/bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S
@@ -25,7 +25,12 @@
x3 function
*/
- NESTED_ENTRY callVirtualFunction
+ NESTED_ENTRY callVirtualFunction_fake
+
+ // for unwind information, Windows has to store fp and lr
+ PROLOG_SAVE_REG_PAIR x29, x30, #-32!
+
+ ALTERNATE_ENTRY callVirtualFunction
sub sp, sp, #32
stp fp, lr, [sp]
@@ -75,7 +80,7 @@ done
ldp fp, lr, [sp, #-32]
ret
- NESTED_END callVirtualFunction
+ NESTED_END callVirtualFunction_fake
END