diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-22 16:00:19 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-22 16:00:25 +0100 |
| commit | b247fd04df986b75bed76c5768479472d6987f65 (patch) | |
| tree | 3fe5dfe4f94864228d812b4731a09f49ae20a281 /src/dynarec/arm64_printer.c | |
| parent | 0b53a98648dfbdfc6361eb9ca594336bd28f6c2f (diff) | |
| download | box64-b247fd04df986b75bed76c5768479472d6987f65.tar.gz box64-b247fd04df986b75bed76c5768479472d6987f65.zip | |
[DYNAREC] Added 0F 56 opcode
Diffstat (limited to 'src/dynarec/arm64_printer.c')
| -rwxr-xr-x | src/dynarec/arm64_printer.c | 17 |
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'; |