Mercurial > repos > blastem
changeset 225:7348057e7a8c
Fixed a couple bugs in roxl/roxr. X flag wasn't being saved properly and rotates of more than 31 bits were messed up as the X flag was being thrown away between the first 31 bits of rotate and the rest.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 21 Apr 2013 11:42:45 -0700 |
parents | f7ff02eeec2f |
children | 28a6697e847b |
files | m68k_to_x86.c |
diffstat | 1 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/m68k_to_x86.c Sun Apr 21 11:40:18 2013 -0700 +++ b/m68k_to_x86.c Sun Apr 21 11:42:45 2013 -0700 @@ -3628,6 +3628,7 @@ dst = rcr_irdisp8(dst, 1, dst_op.base, dst_op.disp, inst->extra.size); } } + dst = setcc_rind(dst, CC_C, CONTEXT); dst = sub_ir(dst, 32, SCRATCH1, SZ_B); *norm_off = dst - (norm_off+1); dst = bt_irdisp8(dst, 0, CONTEXT, 0, SZ_B); @@ -3645,7 +3646,7 @@ } } dst = setcc_r(dst, CC_C, FLAG_C); - dst = mov_rr(dst, FLAG_C, CONTEXT, SZ_B); + dst = mov_rrind(dst, FLAG_C, CONTEXT, SZ_B); end_off = dst + 1; dst = jmp(dst, dst+2); *zero_off = dst - (zero_off+1);