Mercurial > repos > blastem
comparison m68k_core_x86.c @ 583:819921b76b4b
Use update_flags instead of individual set_flag calls in a few places
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 07 Mar 2014 17:51:40 -0800 |
parents | c05fcbfe1b1a |
children | b6713c1b6f55 |
comparison
equal
deleted
inserted
replaced
582:c05fcbfe1b1a | 583:819921b76b4b |
---|---|
1268 | 1268 |
1269 } | 1269 } |
1270 if (!special && end_off) { | 1270 if (!special && end_off) { |
1271 *end_off = code->cur - (end_off + 1); | 1271 *end_off = code->cur - (end_off + 1); |
1272 } | 1272 } |
1273 set_flag_cond(opts, CC_C, FLAG_C); | 1273 update_flags(opts, C|Z|N); |
1274 set_flag_cond(opts, CC_Z, FLAG_Z); | |
1275 set_flag_cond(opts, CC_S, FLAG_N); | |
1276 if (special && end_off) { | 1274 if (special && end_off) { |
1277 *end_off = code->cur - (end_off + 1); | 1275 *end_off = code->cur - (end_off + 1); |
1278 } | 1276 } |
1279 //set X flag to same as C flag | 1277 //set X flag to same as C flag |
1280 if (opts->flag_regs[FLAG_C] >= 0) { | 1278 if (opts->flag_regs[FLAG_C] >= 0) { |
1764 mov_rrdisp(code, RAX, dst_op->base, dst_op->disp, SZ_W); | 1762 mov_rrdisp(code, RAX, dst_op->base, dst_op->disp, SZ_W); |
1765 } | 1763 } |
1766 cmp_ir(code, 0, RAX, SZ_W); | 1764 cmp_ir(code, 0, RAX, SZ_W); |
1767 pop_r(code, RAX); | 1765 pop_r(code, RAX); |
1768 pop_r(code, RDX); | 1766 pop_r(code, RDX); |
1769 set_flag(opts, 0, FLAG_V); | 1767 update_flags(opts, V0|Z|N); |
1770 set_flag_cond(opts, CC_Z, FLAG_Z); | |
1771 set_flag_cond(opts, CC_S, FLAG_N); | |
1772 code_ptr end_off = code->cur + 1; | 1768 code_ptr end_off = code->cur + 1; |
1773 jmp(code, code->cur + 2); | 1769 jmp(code, code->cur + 2); |
1774 *norm_off = code->cur - (norm_off + 1); | 1770 *norm_off = code->cur - (norm_off + 1); |
1775 if (inst->op == M68K_DIVS) { | 1771 if (inst->op == M68K_DIVS) { |
1776 *skip_sec_check = code->cur - (skip_sec_check+1); | 1772 *skip_sec_check = code->cur - (skip_sec_check+1); |