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-22 16:00:19 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-22 16:00:25 +0100
commitb247fd04df986b75bed76c5768479472d6987f65 (patch)
tree3fe5dfe4f94864228d812b4731a09f49ae20a281 /src/dynarec/arm64_printer.c
parent0b53a98648dfbdfc6361eb9ca594336bd28f6c2f (diff)
downloadbox64-b247fd04df986b75bed76c5768479472d6987f65.tar.gz
box64-b247fd04df986b75bed76c5768479472d6987f65.zip
[DYNAREC] Added 0F 56 opcode
Diffstat (limited to 'src/dynarec/arm64_printer.c')
-rwxr-xr-xsrc/dynarec/arm64_printer.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/dynarec/arm64_printer.c b/src/dynarec/arm64_printer.c
index 79f2d6ec..e217726e 100755
--- a/src/dynarec/arm64_printer.c
+++ b/src/dynarec/arm64_printer.c
@@ -745,7 +745,7 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
 

     //  ----------- NEON / FPU

 

-    // VORR

+    // VORR/VAND/VBIC/VORN

     if(isMask(opcode, "0Q001110101mmmmm000111nnnnnddddd", &a)) {

         char q = a.Q?'Q':'D';

         if(Rn==Rm)

@@ -754,6 +754,21 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
             snprintf(buff, sizeof(buff), "VORR %c%d, %c%d, %c%d", q, Rd, q, Rn, q, Rm);

         return buff;

     }

+    if(isMask(opcode, "0Q001110111mmmmm000111nnnnnddddd", &a)) {

+        char q = a.Q?'Q':'D';

+        snprintf(buff, sizeof(buff), "VORN %c%d, %c%d, %c%d", q, Rd, q, Rn, q, Rm);

+        return buff;

+    }

+    if(isMask(opcode, "0Q001110001mmmmm000111nnnnnddddd", &a)) {

+        char q = a.Q?'Q':'D';

+        snprintf(buff, sizeof(buff), "VAND %c%d, %c%d, %c%d", q, Rd, q, Rn, q, Rm);

+        return buff;

+    }

+    if(isMask(opcode, "0Q001110011mmmmm000111nnnnnddddd", &a)) {

+        char q = a.Q?'Q':'D';

+        snprintf(buff, sizeof(buff), "VBIC %c%d, %c%d, %c%d", q, Rd, q, Rn, q, Rm);

+        return buff;

+    }

     // UMOV

     if(isMask(opcode, "0Q001110000rrrrr001111nnnnnddddd", &a)) {

         char q = a.Q?'Q':'D';