about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorxctan <xctan@cirno.icu>2023-03-20 23:21:11 +0800
committerGitHub <noreply@github.com>2023-03-20 16:21:11 +0100
commit7d4b353780d01975fa6ae12d5ad0e0b53bd917ac (patch)
treeb78cb5efabe3cc4c3d254352b9a0b8b37b0513ea
parentdbede8d6dfd8f8c5bba47f4d27972408863da53f (diff)
downloadbox64-7d4b353780d01975fa6ae12d5ad0e0b53bd917ac.tar.gz
box64-7d4b353780d01975fa6ae12d5ad0e0b53bd917ac.zip
[RV64_DYNAREC] Added {21,23} AND opcode (#602)
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_00.c b/src/dynarec/rv64/dynarec_rv64_00.c
index 0e7d1ee3..3d8a255e 100644
--- a/src/dynarec/rv64/dynarec_rv64_00.c
+++ b/src/dynarec/rv64/dynarec_rv64_00.c
@@ -94,6 +94,23 @@ uintptr_t dynarec64_00(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni
                 DEFAULT;
             }
             break;
+        case 0x21:
+            INST_NAME("AND Ed, Gd");
+            SETFLAGS(X_ALL, SF_SET_PENDING);
+            nextop = F8;
+            GETGD;
+            GETED(0);
+            emit_and32(dyn, ninst, rex, ed, gd, x3, x4);
+            WBACK;
+            break;
+        case 0x23:
+            INST_NAME("AND Gd, Ed");
+            SETFLAGS(X_ALL, SF_SET_PENDING);
+            nextop = F8;
+            GETGD;
+            GETED(0);
+            emit_and32(dyn, ninst, rex, gd, ed, x3, x4);
+            break;
         case 0x25:
             INST_NAME("AND EAX, Id");
             SETFLAGS(X_ALL, SF_SET_PENDING);