Mercurial > repos > blastem
comparison m68k_to_x86.c @ 219:8d3c16071559
Fix overflow flag behavior for lsl/lsr/asr
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 20 Apr 2013 14:36:41 -0700 |
parents | 1abf8e967b33 |
children | 71f6b76639db |
comparison
equal
deleted
inserted
replaced
218:1abf8e967b33 | 219:8d3c16071559 |
---|---|
2755 //set X flag to same as C flag | 2755 //set X flag to same as C flag |
2756 dst = mov_rrind(dst, FLAG_C, CONTEXT, SZ_B); | 2756 dst = mov_rrind(dst, FLAG_C, CONTEXT, SZ_B); |
2757 if (z_off) { | 2757 if (z_off) { |
2758 *z_off = dst - (z_off + 1); | 2758 *z_off = dst - (z_off + 1); |
2759 } | 2759 } |
2760 if (inst->op != M68K_ASL && inst->src.addr_mode != MODE_UNUSED && !(src_op->mode == MODE_IMMED && src_op->disp == 1)) { | 2760 if (inst->op != M68K_ASL) { |
2761 dst = mov_ir(dst, 0, FLAG_V, SZ_B); | 2761 dst = mov_ir(dst, 0, FLAG_V, SZ_B); |
2762 } | 2762 } |
2763 if (inst->src.addr_mode == MODE_UNUSED) { | 2763 if (inst->src.addr_mode == MODE_UNUSED) { |
2764 dst = m68k_save_result(inst, dst, opts); | 2764 dst = m68k_save_result(inst, dst, opts); |
2765 } | 2765 } |