about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/dynarec_arm64_00.c6
-rwxr-xr-xsrc/emu/x64run.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_arm64_00.c b/src/dynarec/dynarec_arm64_00.c
index be34a6a1..a3b0e592 100755
--- a/src/dynarec/dynarec_arm64_00.c
+++ b/src/dynarec/dynarec_arm64_00.c
@@ -2038,6 +2038,12 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             addr = dynarec64_F0(dyn, addr, ip, ninst, rex, rep, ok, need_epilog);
             break;
 
+        case 0xF5:
+            INST_NAME("CMC");
+            READFLAGS(X_CF);
+            SETFLAGS(X_CF, SF_SET);
+            EORw_mask(xFlags, xFlags, 0, 0); //mask=0x00000001
+            break;
         case 0xF6:
             nextop = F8;
             switch((nextop>>3)&7) {
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index 8257dd2f..1ff55ec0 100755
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -1224,6 +1224,10 @@ x64emurun:
                 goto fini;
             break;
 
+        case 0xF5:                      /* CMC */
+            CHECK_FLAGS(emu);
+            CONDITIONAL_SET_FLAG(!ACCESS_FLAG(F_CF), F_CF);
+            break;
         case 0xF6:                      /* GRP3 Eb(,Ib) */
             nextop = F8;
             tmp8u = (nextop>>3)&7;