about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-20 19:12:37 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-20 19:12:37 +0100
commitfcfd0d794bdfec18999753946b6f7f8f1a18718a (patch)
treedb1e677553b0d8e7db4fbcf749b5017ef5770726 /src
parentdbd83a8b28be38f39885884a4c333d04060877c4 (diff)
downloadbox64-fcfd0d794bdfec18999753946b6f7f8f1a18718a.tar.gz
box64-fcfd0d794bdfec18999753946b6f7f8f1a18718a.zip
[DYNAREC] Added MOVN printer
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/arm64_printer.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/dynarec/arm64_printer.c b/src/dynarec/arm64_printer.c
index cb86ce42..53d72975 100755
--- a/src/dynarec/arm64_printer.c
+++ b/src/dynarec/arm64_printer.c
@@ -271,6 +271,22 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
             snprintf(buff, sizeof(buff), "MOVZ %s, 0x%x LSL %d", sf?Xt[Rd]:Wt[Rd], imm, 16*hw);

         return buff;

     }

+    if(isMask(opcode, "f00100101wwiiiiiiiiiiiiiiiiddddd", &a)) {

+        if(sf) {

+            uint64_t noti=~(uint64_t)imm;

+            if(!hw)

+                snprintf(buff, sizeof(buff), "MOVN %s, 0x%x\t; 0x%lx", Xt[Rd], imm, noti);

+            else

+                snprintf(buff, sizeof(buff), "MOVN %s, 0x%x LSL %d\t; 0x%lx", Xt[Rd], imm, 16*hw, noti);

+        } else {

+            uint32_t noti=~(uint32_t)imm;

+            if(!hw)

+                snprintf(buff, sizeof(buff), "MOVN %s, 0x%x\t; 0x%x", Wt[Rd], imm, noti);

+            else

+                snprintf(buff, sizeof(buff), "MOVN %s, 0x%x LSL %d\t; 0x%x", Wt[Rd], imm, 16*hw, noti);

+        }

+        return buff;

+    }

     if(isMask(opcode, "f11100101wwiiiiiiiiiiiiiiiiddddd", &a)) {

         if(!hw)

             snprintf(buff, sizeof(buff), "MOVK %s, 0x%x", sf?Xt[Rd]:Wt[Rd], imm);