about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2023-04-21 22:51:02 +0800
committerGitHub <noreply@github.com>2023-04-21 16:51:02 +0200
commit128390d52e249903ff579361c080aa76e0492463 (patch)
tree3db0f5e4ac8bbb3a620a9f98af2d018a22d121a1 /src
parentf7d23a4b9f2efa3c92e5fd643f6c753fe8c7f7bd (diff)
downloadbox64-128390d52e249903ff579361c080aa76e0492463.tar.gz
box64-128390d52e249903ff579361c080aa76e0492463.zip
Added A1/A2/A3 MOV opcodes (#723)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00_2.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_00_2.c b/src/dynarec/rv64/dynarec_rv64_00_2.c
index c02b1796..f962a507 100644
--- a/src/dynarec/rv64/dynarec_rv64_00_2.c
+++ b/src/dynarec/rv64/dynarec_rv64_00_2.c
@@ -447,6 +447,26 @@ uintptr_t dynarec64_00_2(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
             ORI(xFlags, xFlags, 0x2);
             SET_DFNONE();
             break;
+        case 0xA1:
+            INST_NAME("MOV EAX,Od");
+            u64 = F64;
+            MOV64x(x1, u64);
+            LDxw(xRAX, x1, 0);
+            break;
+        case 0xA2:
+            INST_NAME("MOV Ob,AL");
+            u64 = F64;
+            MOV64x(x1, u64);
+            SB(xRAX, x1, 0);
+            SMWRITE();
+            break;
+        case 0xA3:
+            INST_NAME("MOV Od,EAX");
+            u64 = F64;
+            MOV64x(x1, u64);
+            SDxw(xRAX, x1, 0);
+            SMWRITE();
+            break;
         case 0xA4:
             if(rep) {
                 INST_NAME("REP MOVSB");