diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-06-05 10:23:32 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-06-05 10:23:38 +0200 |
| commit | 05abd88ea59e62e2a3a046a20c1b6b90bc9e4702 (patch) | |
| tree | d4446212e0ea5f1dc5565832228dbb084691438a /src/emu | |
| parent | 42670c0130172da006357ba0f455a2a209bdebf8 (diff) | |
| download | box64-05abd88ea59e62e2a3a046a20c1b6b90bc9e4702.tar.gz box64-05abd88ea59e62e2a3a046a20c1b6b90bc9e4702.zip | |
[DYNAREC] Various small fixes to flags handling
Diffstat (limited to 'src/emu')
| -rwxr-xr-x | src/emu/x64primop.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/emu/x64primop.c b/src/emu/x64primop.c index 83bcd046..789f4866 100755 --- a/src/emu/x64primop.c +++ b/src/emu/x64primop.c @@ -785,7 +785,7 @@ uint8_t rol8(x64emu_t *emu, uint8_t d, uint8_t s) if((cnt = s % 8) != 0) { d = (d << cnt) + ((d >> (8 - cnt)) & ((1 << cnt) - 1)); } - RESET_FLAGS(emu); + CHECK_FLAGS(emu); /* OF flag is set if s == 1; OF = CF _XOR_ MSB of result */ if(s == 1) { @@ -808,7 +808,7 @@ uint16_t rol16(x64emu_t *emu, uint16_t d, uint8_t s) if((cnt = s % 16) != 0) { d = (d << cnt) + ((d >> (16 - cnt)) & ((1 << cnt) - 1)); } - RESET_FLAGS(emu); + CHECK_FLAGS(emu); /* OF flag is set if s == 1; OF = CF _XOR_ MSB of result */ if(s == 1) { @@ -831,7 +831,7 @@ uint32_t rol32(x64emu_t *emu, uint32_t d, uint8_t s) if((cnt = s % 32) != 0) { d = (d << cnt) + ((d >> (32 - cnt)) & ((1 << cnt) - 1)); } - RESET_FLAGS(emu); + CHECK_FLAGS(emu); /* OF flag is set if s == 1; OF = CF _XOR_ MSB of result */ if(s == 1) { @@ -854,7 +854,7 @@ uint64_t rol64(x64emu_t *emu, uint64_t d, uint8_t s) if((cnt = s % 64) != 0) { d = (d << cnt) + ((d >> (64 - cnt)) & ((1L << cnt) - 1)); } - RESET_FLAGS(emu); + CHECK_FLAGS(emu); /* OF flag is set if s == 1; OF = CF _XOR_ MSB of result */ if(s == 1) { @@ -881,7 +881,7 @@ uint8_t ror8(x64emu_t *emu, uint8_t d, uint8_t s) if((cnt = s % 8) != 0) { d = (d << (8 - cnt)) + ((d >> (cnt)) & ((1 << (8 - cnt)) - 1)); } - RESET_FLAGS(emu); + CHECK_FLAGS(emu); /* OF flag is set if s == 1; OF = MSB _XOR_ (M-1)SB of result */ if(s == 1) { @@ -904,7 +904,7 @@ uint16_t ror16(x64emu_t *emu, uint16_t d, uint8_t s) if((cnt = s % 16) != 0) { d = (d << (16 - cnt)) + ((d >> (cnt)) & ((1 << (16 - cnt)) - 1)); } - RESET_FLAGS(emu); + CHECK_FLAGS(emu); /* OF flag is set if s == 1; OF = MSB _XOR_ (M-1)SB of result */ if(s == 1) { @@ -927,7 +927,7 @@ uint32_t ror32(x64emu_t *emu, uint32_t d, uint8_t s) if((cnt = s % 32) != 0) { d = (d << (32 - cnt)) + ((d >> (cnt)) & ((1 << (32 - cnt)) - 1)); } - RESET_FLAGS(emu); + CHECK_FLAGS(emu); /* OF flag is set if s == 1; OF = MSB _XOR_ (M-1)SB of result */ if(s == 1) { @@ -950,7 +950,7 @@ uint64_t ror64(x64emu_t *emu, uint64_t d, uint8_t s) if((cnt = s % 64) != 0) { d = (d << (64 - cnt)) + ((d >> (cnt)) & ((1L << (64 - cnt)) - 1L)); } - RESET_FLAGS(emu); + CHECK_FLAGS(emu); /* OF flag is set if s == 1; OF = MSB _XOR_ (M-1)SB of result */ if(s == 1) { |