Mercurial > repos > blastem
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 |