From 00b3328fa2c8aaad2583e496f14b08d8e8bbec0f Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Sun, 7 Apr 2019 22:48:58 -0700 Subject: Fix callee saved regs for Win64 --- gen_x86.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'gen_x86.c') diff --git a/gen_x86.c b/gen_x86.c index 5d8b51a..18f1d24 100644 --- a/gen_x86.c +++ b/gen_x86.c @@ -2228,7 +2228,8 @@ void save_callee_save_regs(code_info *code) 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 save_callee_save_regs(code_info *code) 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); -- cgit v1.2.3