mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Updated winebuild-Fake_Dlls patchset.
Fix stack alignment in x64 syscall thunks, again. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48274
This commit is contained in:
parent
8e8259db69
commit
d36d63ac84
@ -1,4 +1,4 @@
|
||||
From f570930840bae4c83ec53acd52b5d45daa266898 Mon Sep 17 00:00:00 2001
|
||||
From 76abfa6c07701466a7a14bfeeaad64e357f54a1c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 7 Sep 2017 00:38:09 +0200
|
||||
Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
|
||||
@ -117,7 +117,7 @@ index 004b6aea7a..40946409c5 100644
|
||||
if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER))
|
||||
return 0;
|
||||
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
|
||||
index 800cb23023..04e3d77042 100644
|
||||
index 800cb23023..19046e5a50 100644
|
||||
--- a/tools/winebuild/spec32.c
|
||||
+++ b/tools/winebuild/spec32.c
|
||||
@@ -372,11 +372,11 @@ static void output_relay_debug( DLLSPEC *spec )
|
||||
@ -243,7 +243,6 @@ index 800cb23023..04e3d77042 100644
|
||||
+ output_cfi( ".cfi_rel_offset %%rsi,-8" );
|
||||
+ output( "\tpushq %%rdi\n" );
|
||||
+ output_cfi( ".cfi_rel_offset %%rdi,-16" );
|
||||
+ output( "\tand $~0xf,%%rsp\n\t" ); /* ensure stack alignment. */
|
||||
+
|
||||
+ /* Legends of Runeterra hooks the first system call return instruction, and
|
||||
+ * depends on us returning to it. Adjust the return address accordingly. */
|
||||
@ -262,6 +261,7 @@ index 800cb23023..04e3d77042 100644
|
||||
+ else
|
||||
+ output( "\tmovzbq %s(%%rax),%%rcx\n", asm_name("__wine_syscall_stack_size") );
|
||||
+ output( "\tsubq %%rcx,%%rsp\n" );
|
||||
+ output( "\tand $~0xf,%%rsp\n\t" ); /* ensure stack alignment. */
|
||||
+ output( "\tshrq $3,%%rcx\n" );
|
||||
+ output( "\tmovq %%rsp,%%rdi\n" );
|
||||
+ output( "\trep; movsq\n" );
|
||||
|
Loading…
x
Reference in New Issue
Block a user