about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-01-27 17:37:39 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-01-27 17:37:39 +0100
commit56f2749da075088fd70929bf8aaac827770daf2a (patch)
treef18a41f0190d524a1df768e7fd1475278439a2b0 /src
parent7d85753350c369d064fa03412c791239000b1d09 (diff)
downloadbox64-56f2749da075088fd70929bf8aaac827770daf2a.tar.gz
box64-56f2749da075088fd70929bf8aaac827770daf2a.zip
[ARM64_DYNAREC][32BITS] Added 2F opcode
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_00.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_00.c b/src/dynarec/arm64/dynarec_arm64_00.c
index 3dc50d3a..6d26ec95 100644
--- a/src/dynarec/arm64/dynarec_arm64_00.c
+++ b/src/dynarec/arm64/dynarec_arm64_00.c
@@ -435,7 +435,19 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
         case 0x2E:
             INST_NAME("CS:");
             break;
-
+        case 0x2F:
+            if(rex.is32bits) {
+                INST_NAME("DAS");
+                MESSAGE(LOG_DUMP, "Need Optimization DAS\n");
+                READFLAGS(X_AF|X_CF);
+                SETFLAGS(X_AF|X_CF|X_PF|X_SF|X_ZF, SF_SET);
+                UXTBx(x1, xRAX);
+                CALL_(das8, x1, 0);
+                BFIx(xRAX, x1, 0, 8);
+            } else {
+                DEFAULT;
+            }
+            break;
         case 0x30:
             INST_NAME("XOR Eb, Gb");
             SETFLAGS(X_ALL, SF_SET_PENDING);