about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-24 14:52:27 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-24 14:52:27 +0100
commitce51207e44646add90c703cd172f2e88d5876402 (patch)
treece08e183f8de6ba21c8590fb6af4e9d05955aea9 /src
parenta3dcaf42847ef2fb67904474e02a05445e3b8a39 (diff)
downloadbox64-ce51207e44646add90c703cd172f2e88d5876402.tar.gz
box64-ce51207e44646add90c703cd172f2e88d5876402.zip
[DYNAREC] Added 64 89 opcodes
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/dynarec_arm64_64.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_arm64_64.c b/src/dynarec/dynarec_arm64_64.c
index 434cc2c3..6a0735ff 100644
--- a/src/dynarec/dynarec_arm64_64.c
+++ b/src/dynarec/dynarec_arm64_64.c
@@ -57,6 +57,19 @@ uintptr_t dynarec64_64(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             emit_xor32(dyn, ninst, rex, gd, ed, x3, x4);
             break;
                     
+        case 0x89:
+            INST_NAME("MOV FS:Ed, Gd");
+            grab_segdata(dyn, addr, ninst, x4, _FS);
+            nextop=F8;
+            GETGD;
+            if(MODREG) {   // reg <= reg
+                MOVxw_REG(xRAX+(nextop&7)+(rex.b<<3), gd);
+            } else {                    // mem <= reg
+                addr = geted(dyn, addr, ninst, nextop, &ed, x2, &fixedaddress, 0, 0, rex, 0, 0);
+                STRxw_REG(gd, ed, x4);
+            }
+            break;
+
         case 0x8B:
             INST_NAME("MOV Gd, FS:Ed");
             grab_segdata(dyn, addr, ninst, x4, _FS);