about summary refs log tree commit diff stats
path: root/src/dynarec/arm64_printer.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-24 12:07:29 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-24 12:07:29 +0100
commitfdbdc615da803d36cbf63aed6d9edb5c1b8959db (patch)
tree908034736fb82f9a187227942bbf76dd129d9951 /src/dynarec/arm64_printer.c
parent5354a134fc68ef5875ee4836cd17aafff15dbabf (diff)
downloadbox64-fdbdc615da803d36cbf63aed6d9edb5c1b8959db.tar.gz
box64-fdbdc615da803d36cbf63aed6d9edb5c1b8959db.zip
[DYNAREC] Added 0F C8..CF opcodes
Diffstat (limited to 'src/dynarec/arm64_printer.c')
-rwxr-xr-xsrc/dynarec/arm64_printer.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/dynarec/arm64_printer.c b/src/dynarec/arm64_printer.c
index a76dda64..6683695a 100755
--- a/src/dynarec/arm64_printer.c
+++ b/src/dynarec/arm64_printer.c
@@ -729,7 +729,15 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
         snprintf(buff, sizeof(buff), "RBIT %s, %s", sf?Xt[Rd]:Wt[Rd], sf?Xt[Rn]:Wt[Rn]);

         return buff;

     }

-

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

+        if(!sf && option==2)

+            snprintf(buff, sizeof(buff), "REV %s, %s", Wt[Rd], Wt[Rn]);

+        else if (sf && option==3) 

+            snprintf(buff, sizeof(buff), "REV %s, %s", Xt[Rd], Xt[Rn]);

+        else

+            snprintf(buff, sizeof(buff), "REV%d %s, %s", 8<<option, sf?Xt[Rd]:Wt[Rd], sf?Xt[Rn]:Wt[Rn]);

+        return buff;

+    }

 

     // MULL ADD

     if(isMask(opcode, "10011011U01mmmmm0aaaaannnnnddddd", &a)) {