about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-06-01 17:13:15 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-06-01 17:13:15 +0200
commit956e2aace3dff853260d102d52eb00dbbf1a1005 (patch)
tree18d1c99ed6c6d141cbe361a391ebbbd1979af93e /src
parent1951d525d1285cf16b463d022718774bee54a51b (diff)
downloadbox64-956e2aace3dff853260d102d52eb00dbbf1a1005.tar.gz
box64-956e2aace3dff853260d102d52eb00dbbf1a1005.zip
Added F5 opcode ([DYNAREC] too)
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;