comparison 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
comparison
equal deleted inserted replaced
1828:37afb9cf58be 1829:a79e92929044
2226 #ifdef X86_64 2226 #ifdef X86_64
2227 push_r(code, R12); 2227 push_r(code, R12);
2228 push_r(code, R13); 2228 push_r(code, R13);
2229 push_r(code, R14); 2229 push_r(code, R14);
2230 push_r(code, R15); 2230 push_r(code, R15);
2231 #else 2231 #endif
2232 #if !defined(X86_64) || defined(_WIN32)
2232 push_r(code, RDI); 2233 push_r(code, RDI);
2233 push_r(code, RSI); 2234 push_r(code, RSI);
2234 #endif 2235 #endif
2235 } 2236 }
2236 2237
2237 void restore_callee_save_regs(code_info *code) 2238 void restore_callee_save_regs(code_info *code)
2238 { 2239 {
2240 #if !defined(X86_64) || defined(_WIN32)
2241 pop_r(code, RSI);
2242 pop_r(code, RDI);
2243 #endif
2239 #ifdef X86_64 2244 #ifdef X86_64
2240 pop_r(code, R15); 2245 pop_r(code, R15);
2241 pop_r(code, R14); 2246 pop_r(code, R14);
2242 pop_r(code, R13); 2247 pop_r(code, R13);
2243 pop_r(code, R12); 2248 pop_r(code, R12);
2244 #else
2245 pop_r(code, RSI);
2246 pop_r(code, RDI);
2247 #endif 2249 #endif
2248 pop_r(code, RBP); 2250 pop_r(code, RBP);
2249 pop_r(code, RBX); 2251 pop_r(code, RBX);
2250 } 2252 }
2251 2253