about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-18 17:03:16 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-18 17:03:16 +0100
commitc22782d2abac37dd35154e126ce9bf697f6641e7 (patch)
tree2712697f111501952d4b7c6f51829ccd7205c107 /src
parent994a575d32cd27247734364f6cba4fae23d4eafe (diff)
downloadbox64-c22782d2abac37dd35154e126ce9bf697f6641e7.tar.gz
box64-c22782d2abac37dd35154e126ce9bf697f6641e7.zip
[DYNAREC] Added 9B/9C/9D FWAIT/PUSHF/POPF opcodes
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/dynarec_arm64_00.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_arm64_00.c b/src/dynarec/dynarec_arm64_00.c
index cdd25353..ddb6538a 100755
--- a/src/dynarec/dynarec_arm64_00.c
+++ b/src/dynarec/dynarec_arm64_00.c
@@ -478,6 +478,24 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             }
             break;
 
+        case 0x9B:
+            INST_NAME("FWAIT");
+            break;
+        case 0x9C:
+            INST_NAME("PUSHF");
+            READFLAGS(X_ALL);
+            PUSH1(xFlags);
+            break;
+        case 0x9D:
+            INST_NAME("POPF");
+            SETFLAGS(X_ALL, SF_SET);
+            POP1(xFlags);
+            MOV32w(x1, 0x3F7FD7);
+            ANDw_REG(xFlags, xFlags, x1);
+            ORRw_mask(xFlags, xFlags, 0b011111, 0);   //mask=0x00000002
+            SET_DFNONE(x1);
+            break;
+
         case 0xB8:
         case 0xB9:
         case 0xBA: