diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-21 13:58:17 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-21 13:58:17 +0100 |
| commit | c253e4a48eb261c7593dc6cbf65972b7a33232ee (patch) | |
| tree | 60f89b410747ec58867ad665407f394c14476d40 /src/dynarec/arm64_printer.c | |
| parent | 90bd5b0cb19c42f3f0de74dda3a3c6d560ab0a0e (diff) | |
| download | box64-c253e4a48eb261c7593dc6cbf65972b7a33232ee.tar.gz box64-c253e4a48eb261c7593dc6cbf65972b7a33232ee.zip | |
[DYNAREC] Added F2 0F 5C opcode
Diffstat (limited to 'src/dynarec/arm64_printer.c')
| -rwxr-xr-x | src/dynarec/arm64_printer.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/dynarec/arm64_printer.c b/src/dynarec/arm64_printer.c index 145eb1a4..6a7c2f58 100755 --- a/src/dynarec/arm64_printer.c +++ b/src/dynarec/arm64_printer.c @@ -800,6 +800,19 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr) return buff; } + // FSUB + if(isMask(opcode, "0Q0011101f1mmmmm110101nnnnnddddd", &a)) { + char s = a.Q?'V':'D'; + char d = sf?'D':'S'; + int n = (a.Q && !sf)?4:2; + snprintf(buff, sizeof(buff), "VFSUB %c%d.%d%c, %c%d.%d%c, %c%d.%c%d", s, Rd, n, d, s, Rn, n, d, s, Rm, s, d); + return buff; + } + if(isMask(opcode, "00011110ff1mmmmm001110nnnnnddddd", &a)) { + char s = (sf==0)?'S':((sf==1)?'D':'?'); + snprintf(buff, sizeof(buff), "FSUB %c%d, %c%d, %c%d", s, Rd, s, Rn, s, Rm); + return buff; + } snprintf(buff, sizeof(buff), "%08X ???", __builtin_bswap32(opcode)); return buff; |