changeset 1829:a79e92929044

Fix callee saved regs for Win64
author Michael Pavone <pavone@retrodev.com>
date Sun, 07 Apr 2019 22:48:58 -0700
parents 37afb9cf58be
children 2f3600e204b0
files gen_x86.c
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/gen_x86.c	Sun Apr 07 00:06:29 2019 -0700
+++ b/gen_x86.c	Sun Apr 07 22:48:58 2019 -0700
@@ -2228,7 +2228,8 @@
 	push_r(code, R13);
 	push_r(code, R14);
 	push_r(code, R15);
-#else
+#endif
+#if !defined(X86_64) || defined(_WIN32)
 	push_r(code, RDI);
 	push_r(code, RSI);
 #endif
@@ -2236,14 +2237,15 @@
 
 void restore_callee_save_regs(code_info *code)
 {
+#if !defined(X86_64) || defined(_WIN32)
+	pop_r(code, RSI);
+	pop_r(code, RDI);
+#endif
 #ifdef X86_64
 	pop_r(code, R15);
 	pop_r(code, R14);
 	pop_r(code, R13);
 	pop_r(code, R12);
-#else
-	pop_r(code, RSI);
-	pop_r(code, RDI);
 #endif
 	pop_r(code, RBP);
 	pop_r(code, RBX);