diff gen_x86.c @ 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 4af54c6ca3e6
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);