diff options
author | Stephan Bergmann <stephan.bergmann@allotropia.de> | 2024-04-25 09:48:40 +0200 |
---|---|---|
committer | Stephan Bergmann <stephan.bergmann@allotropia.de> | 2024-04-25 14:44:27 +0200 |
commit | 6fd06e0215602c61ce6cefb07a3d401fc85d30c2 (patch) | |
tree | 9c11c7e71c187d3e9b8e445b3cdbd9f40759996d /bridges | |
parent | 89998a744f9ee8efa40c0e1cb7bdbc783d3414fa (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.S | 9 |
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 |