Mercurial > repos > blastem
diff m68k_to_x86.c @ 442:1a48b31f5316
Fix carry flag on rotate when the register provided rotate bit count is exactly 32
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 17 Jul 2013 00:18:28 -0700 |
parents | 306986209cba |
children | 9ac3828ea560 |
line wrap: on
line diff
--- a/m68k_to_x86.c Wed Jul 17 00:17:42 2013 -0700 +++ b/m68k_to_x86.c Wed Jul 17 00:18:28 2013 -0700 @@ -3557,6 +3557,7 @@ dst = cmp_ir(dst, 32, SCRATCH1, SZ_B); norm_off = dst+1; dst = jcc(dst, CC_L, dst+2); + dst = sub_ir(dst, 32, SCRATCH1, SZ_B); if (dst_op.mode == MODE_REG_DIRECT) { if (inst->op == M68K_ROL) { dst = rol_ir(dst, 31, dst_op.base, inst->extra.size); @@ -3574,7 +3575,6 @@ dst = ror_irdisp8(dst, 1, dst_op.base, dst_op.disp, inst->extra.size); } } - dst = sub_ir(dst, 32, SCRATCH1, SZ_B); *norm_off = dst - (norm_off+1); if (dst_op.mode == MODE_REG_DIRECT) { if (inst->op == M68K_ROL) {