about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-03-01 20:35:15 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-03-01 20:35:15 +0100
commit8bf54eda562dc2f1c4ae74c8122d3b7be98f2d22 (patch)
tree3ad15065da889167f15fcd80614a600988f16adc
parentc58adce8f60c4fb8b00ed0cedcc4a69f0dc973ff (diff)
downloadbox64-8bf54eda562dc2f1c4ae74c8122d3b7be98f2d22.tar.gz
box64-8bf54eda562dc2f1c4ae74c8122d3b7be98f2d22.zip
Added 66 F8/F9 ([ARM64_DYNAREC] too)
-rw-r--r--src/dynarec/arm64/dynarec_arm64_66.c12
-rw-r--r--src/emu/x64run66.c8
2 files changed, 20 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_66.c b/src/dynarec/arm64/dynarec_arm64_66.c
index a4d19285..ce0e14d3 100644
--- a/src/dynarec/arm64/dynarec_arm64_66.c
+++ b/src/dynarec/arm64/dynarec_arm64_66.c
@@ -1343,6 +1343,18 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     break;

             }

             break;

+        case 0xF8:

+            INST_NAME("CLC");

+            SETFLAGS(X_CF, SF_SUBSET);

+            SET_DFNONE(x1);

+            BFCx(xFlags, F_CF, 1);

+            break;

+        case 0xF9:

+            INST_NAME("STC");

+            SETFLAGS(X_CF, SF_SUBSET);

+            SET_DFNONE(x1);

+            ORRx_mask(xFlags, xFlags, 1, 0, 0); // xFlags | 1

+            break;

 

         case 0xFF:

             nextop = F8;

diff --git a/src/emu/x64run66.c b/src/emu/x64run66.c
index e26eb379..1b826126 100644
--- a/src/emu/x64run66.c
+++ b/src/emu/x64run66.c
@@ -869,6 +869,14 @@ uintptr_t Run66(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr)
             }

         }

         break;

+    case 0xF8:                      /* CLC */

+        CHECK_FLAGS(emu);

+        CLEAR_FLAG(F_CF);

+        break;

+    case 0xF9:                      /* STC */

+        CHECK_FLAGS(emu);

+        SET_FLAG(F_CF);

+        break;

 

     case 0xFF:                      /* GRP 5 Ew */

         nextop = F8;