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 }