diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-07-16 21:29:14 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-07-16 21:29:14 +0200 |
| commit | 08aa003335c29add9188a67cddc363af903014bc (patch) | |
| tree | 7fc3b86f45b32b038069f7ab15e0575e1ac5db0a /src | |
| parent | b0a56e27902465d4b5ed50ba751c1e7c6966ef5f (diff) | |
| download | box64-08aa003335c29add9188a67cddc363af903014bc.tar.gz box64-08aa003335c29add9188a67cddc363af903014bc.zip | |
[DYNAREC] Fixed defered carry flags for ADC 64bits
Diffstat (limited to 'src')
| -rwxr-xr-x | src/emu/x64run_private.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c index 16a9235e..326c5a02 100755 --- a/src/emu/x64run_private.c +++ b/src/emu/x64run_private.c @@ -154,7 +154,7 @@ void UpdateFlags(x64emu_t *emu) case d_add64: lo = (emu->op2.u64 & 0xFFFFFFFF) + (emu->op1.u64 & 0xFFFFFFFF); hi = (lo >> 32) + (emu->op2.u64 >> 32) + (emu->op1.u64 >> 32); - CONDITIONAL_SET_FLAG(hi & 0x100000000, F_CF); + CONDITIONAL_SET_FLAG(hi & 0x100000000L, F_CF); CONDITIONAL_SET_FLAG(!emu->res.u64, F_ZF); CONDITIONAL_SET_FLAG(emu->res.u64 & 0x8000000000000000LL, F_SF); CONDITIONAL_SET_FLAG(PARITY(emu->res.u64 & 0xff), F_PF); @@ -836,7 +836,7 @@ void UpdateFlags(x64emu_t *emu) lo = 1 + (emu->op1.u64 & 0xFFFFFFFF) + (emu->op2.u64 & 0xFFFFFFFF); } hi = (lo >> 32) + (emu->op1.u64 >> 32) + (emu->op2.u64 >> 32); - CONDITIONAL_SET_FLAG(hi & 0x1000000000000L, F_CF); + CONDITIONAL_SET_FLAG(hi & 0x100000000L, F_CF); CONDITIONAL_SET_FLAG(!emu->res.u64, F_ZF); CONDITIONAL_SET_FLAG(emu->res.u64 & 0x8000000000000000LL, F_SF); CONDITIONAL_SET_FLAG(PARITY(emu->res.u64 & 0xff), F_PF); |