Mercurial > repos > blastem
comparison m68k_to_x86.c @ 67:534eb4976423
Fix BTST
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 20 Dec 2012 00:56:33 -0800 |
parents | 7a22a0e6c004 |
children | cebd0b5ac7f0 |
comparison
equal
deleted
inserted
replaced
66:7a22a0e6c004 | 67:534eb4976423 |
---|---|
1007 case M68K_BCLR: | 1007 case M68K_BCLR: |
1008 case M68K_BSET: | 1008 case M68K_BSET: |
1009 break; | 1009 break; |
1010 case M68K_BTST: | 1010 case M68K_BTST: |
1011 dst = cycles(dst, inst->extra.size == OPSIZE_BYTE ? 4 : 6); | 1011 dst = cycles(dst, inst->extra.size == OPSIZE_BYTE ? 4 : 6); |
1012 if (src_op.mode == MODE_IMMEDIATE) { | 1012 if (src_op.mode == MODE_IMMED) { |
1013 if (inst->extra.size == OPSIZE_BYTE) { | 1013 if (inst->extra.size == OPSIZE_BYTE) { |
1014 src_op.disp &= 0x7; | 1014 src_op.disp &= 0x7; |
1015 } | 1015 } |
1016 if (dst_op.mode == MODE_REG_DIRECT) { | 1016 if (dst_op.mode == MODE_REG_DIRECT) { |
1017 dst = bt_ir(dst, src_op.disp, dst_op.base, SZ_D); | 1017 dst = bt_ir(dst, src_op.disp, dst_op.base, SZ_D); |
1042 //68K sets the zero flag to the complement of the bit tested | 1042 //68K sets the zero flag to the complement of the bit tested |
1043 dst = setcc_r(dst, CC_NC, FLAG_Z); | 1043 dst = setcc_r(dst, CC_NC, FLAG_Z); |
1044 if (src_op.base == SCRATCH2) { | 1044 if (src_op.base == SCRATCH2) { |
1045 dst = pop_r(dst, SCRATCH2); | 1045 dst = pop_r(dst, SCRATCH2); |
1046 } | 1046 } |
1047 dst = m68k_save_result(inst, dst, opts); | |
1048 break; | 1047 break; |
1049 case M68K_CHK: | 1048 case M68K_CHK: |
1050 break; | 1049 break; |
1051 case M68K_CMP: | 1050 case M68K_CMP: |
1052 dst = cycles(dst, BUS); | 1051 dst = cycles(dst, BUS); |