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);