Mercurial > repos > blastem
comparison m68k_to_x86.c @ 443:9ac3828ea560
Fix sign flag on swap
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 17 Jul 2013 00:23:45 -0700 |
parents | 1a48b31f5316 |
children | 1e828ed04a7c |
comparison
equal
deleted
inserted
replaced
442:1a48b31f5316 | 443:9ac3828ea560 |
---|---|
3838 break; | 3838 break; |
3839 case M68K_SWAP: | 3839 case M68K_SWAP: |
3840 dst = cycles(dst, BUS); | 3840 dst = cycles(dst, BUS); |
3841 if (src_op.mode == MODE_REG_DIRECT) { | 3841 if (src_op.mode == MODE_REG_DIRECT) { |
3842 dst = rol_ir(dst, 16, src_op.base, SZ_D); | 3842 dst = rol_ir(dst, 16, src_op.base, SZ_D); |
3843 dst = cmp_ir(dst, 0, src_op.base, SZ_D); | |
3843 } else{ | 3844 } else{ |
3844 dst = rol_irdisp8(dst, 16, src_op.base, src_op.disp, SZ_D); | 3845 dst = rol_irdisp8(dst, 16, src_op.base, src_op.disp, SZ_D); |
3845 } | 3846 dst = cmp_irdisp8(dst, 0, src_op.base, src_op.disp, SZ_D); |
3847 } | |
3848 | |
3846 dst = mov_ir(dst, 0, FLAG_C, SZ_B); | 3849 dst = mov_ir(dst, 0, FLAG_C, SZ_B); |
3847 dst = setcc_r(dst, CC_Z, FLAG_Z); | 3850 dst = setcc_r(dst, CC_Z, FLAG_Z); |
3848 dst = setcc_r(dst, CC_S, FLAG_N); | 3851 dst = setcc_r(dst, CC_S, FLAG_N); |
3849 dst = mov_ir(dst, 0, FLAG_V, SZ_B); | 3852 dst = mov_ir(dst, 0, FLAG_V, SZ_B); |
3850 break; | 3853 break; |