summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@igalia.com>2020-02-17 22:01:14 +0100
committerAndy Wingo <wingo@igalia.com>2020-02-17 22:01:14 +0100
commita96c0188f196acb46fdee3bd0c20575db6c945a9 (patch)
treee6648e904815e5eb080c2f3b40894a34779337ff
parent2db2b12e857a2694b5a70e108055e2c902051247 (diff)
downloadguile-a96c0188f196acb46fdee3bd0c20575db6c945a9.tar.gz
Ensure 32 bytes of stack are reserved on 64-bit Windows targets
* lightening/x86.c (reset_abi_arg_iterator): Reserve 32 stack bytes on 64-bit Windows systems, in accordance with ABI. Thanks a million to Charles Stanhope for the patch and to Mike Gran for testing!
-rw-r--r--lightening/x86.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lightening/x86.c b/lightening/x86.c
index 965191a4c..bdd26e14f 100644
--- a/lightening/x86.c
+++ b/lightening/x86.c
@@ -328,6 +328,10 @@ reset_abi_arg_iterator(struct abi_arg_iterator *iter, size_t argc,
memset(iter, 0, sizeof *iter);
iter->argc = argc;
iter->args = args;
+#if __CYGWIN__ && __X64
+ // Reserve slots on the stack for 4 register parameters (8 bytes each).
+ iter->stack_size = 32;
+#endif
}
static void