Module: wine Branch: master Commit: 9014dae8fb7b78cdd8a200278a1e2a5caccd533a URL: https://source.winehq.org/git/wine.git/?a=commit;h=9014dae8fb7b78cdd8a200278...
Author: Mikołaj Zalewski mikolaj@zalewski.pl Date: Sun Aug 2 20:14:34 2020 +0200
ntdll: Return from Thumb to ARM mode after assembling raise_func_trampoline_thumb.
Without it, Raspbian gcc thinks the next function (raise_func_trampoline_arm) is in Thumb and will create its own trampoline to to execute it as Thumb (bad).
Signed-off-by: Mikołaj Zalewski mikolaj@zalewski.pl Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntdll/unix/signal_arm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c index 17744822f4..73711a5235 100644 --- a/dlls/ntdll/unix/signal_arm.c +++ b/dlls/ntdll/unix/signal_arm.c @@ -524,7 +524,8 @@ extern void raise_func_trampoline_thumb( EXCEPTION_RECORD *rec, CONTEXT *context __ASM_GLOBAL_FUNC( raise_func_trampoline_thumb, ".thumb\n\t" "bx r2\n\t" - "bkpt") + "bkpt\n\t" + ".arm")
extern void raise_func_trampoline_arm( EXCEPTION_RECORD *rec, CONTEXT *context, void *func ); __ASM_GLOBAL_FUNC( raise_func_trampoline_arm,