about summary refs log tree commit diff stats
path: root/src/emu
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-05-17 14:29:58 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-05-17 14:29:58 +0200
commitd7127ccc3dad1aab55676f31d26d5ec3799ca8f1 (patch)
tree93db7fc23359c54a12a224efeba9f6a4822a779a /src/emu
parent04e960b0dabc7f8bf77d532b57c1156ff10e2735 (diff)
downloadbox64-d7127ccc3dad1aab55676f31d26d5ec3799ca8f1.tar.gz
box64-d7127ccc3dad1aab55676f31d26d5ec3799ca8f1.zip
[ARM64_DYNAREC] Improved stability of RCL/RCR and added 32/64 bits with constant emiter
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/x64run_private.c32
1 files changed, 1 insertions, 31 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c
index 016092b3..06f20118 100644
--- a/src/emu/x64run_private.c
+++ b/src/emu/x64run_private.c
@@ -1051,37 +1051,7 @@ void UpdateFlags(x64emu_t *emu)
             }
             CONDITIONAL_SET_FLAG(emu->res.u64 & (1L << 63), F_CF);
             break;
-        case d_rcl8:
-            cnt = emu->op2.u8%9;
-            CONDITIONAL_SET_FLAG(emu->op1.u8>>(9-cnt) & 1, F_CF);
-            // should for cnt==1
-            CONDITIONAL_SET_FLAG(((emu->res.u8>>7) ^ ACCESS_FLAG(F_CF)) & 1, F_OF);
-            break;
-        case d_rcr8:
-            cnt = emu->op2.u8%9;
-            // should for cnt==1, using "before" CF
-            CONDITIONAL_SET_FLAG(((emu->res.u8>>7) ^ ACCESS_FLAG(F_CF)) & 1, F_OF);
-            // new CF
-            CONDITIONAL_SET_FLAG(((cnt==1)?emu->op1.u8:(emu->op1.u8>>(cnt-1))) & 1, F_CF);
-            break;
-        case d_rcl16:
-            cnt = emu->op2.u16%17;
-            CONDITIONAL_SET_FLAG(emu->op1.u16>>(17-cnt) & 1, F_CF);
-            // should for cnt==1
-            CONDITIONAL_SET_FLAG(((emu->res.u16>>15) ^ ACCESS_FLAG(F_CF)) & 1, F_OF);
-            break;
-        case d_rcr16:
-            cnt = emu->op2.u16%17;
-            // should for cnt==1, using "before" CF
-            CONDITIONAL_SET_FLAG(((emu->res.u16>>15) ^ ACCESS_FLAG(F_CF)) & 1, F_OF);
-            // new CF
-            CONDITIONAL_SET_FLAG(((cnt==1)?emu->op1.u16:(emu->op1.u16>>(cnt-1))) & 1, F_CF);
-            break;
-
-        case d_rcl32:
-        case d_rcl64:
-        case d_rcr32:
-        case d_rcr64:
+
         case d_unknown:
             printf_log(LOG_NONE, "Box64: %p trying to evaluate Unknown deferred Flags\n", (void*)R_RIP);
             break;