diff options
| author | wannacu <wannacu2049@gmail.com> | 2023-08-04 16:25:56 +0800 |
|---|---|---|
| committer | wannacu <wannacu2049@gmail.com> | 2023-08-04 16:28:39 +0800 |
| commit | 1e7b4b8450e90517f842bdf0965c0089068642dd (patch) | |
| tree | 1164ce2921cc6fcb271cd3b6bbfc01111cf1e952 /src | |
| parent | 0edf24ae977d812386bf6bc0b5d41b7ab3900a05 (diff) | |
| download | box64-1e7b4b8450e90517f842bdf0965c0089068642dd.tar.gz box64-1e7b4b8450e90517f842bdf0965c0089068642dd.zip | |
[ARM64] Added printer for FPRINTX
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/arm64_printer.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/dynarec/arm64/arm64_printer.c b/src/dynarec/arm64/arm64_printer.c index ead54a61..2c134dee 100644 --- a/src/dynarec/arm64/arm64_printer.c +++ b/src/dynarec/arm64/arm64_printer.c @@ -1107,7 +1107,19 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr) snprintf(buff, sizeof(buff), "FSQRT %c%d, %c%d", s, Rd, s, Rn); return buff; } - + // FPRINTX + if(isMask(opcode, "0Q1011100f100001100110nnnnnddddd", &a)) { + char s = a.Q?'V':'D'; + char d = sf?'D':'S'; + int n = (a.Q && !sf)?4:2; + snprintf(buff, sizeof(buff), "VFRINTX %c%d.%d%c, %c%d.%d%c", s, Rd, n, d, s, Rn, n, d); + return buff; + } + if (isMask(opcode, "00011110ff100111010000nnnnnddddd", &a)) { + char s = (sf==0)?'S':((sf==1)?'D':'?'); + snprintf(buff, sizeof(buff), "FRINTX %c%d, %c%d", s, Rd, s, Rn); + return buff; + } // FRINTI if(isMask(opcode, "0Q1011101f100001100110nnnnnddddd", &a)) { char s = a.Q?'V':'D'; |