diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-23 10:00:29 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-23 10:00:29 +0100 |
| commit | 2b6fa580df14e02e9bfdf9a3b23e56b7515d5c2a (patch) | |
| tree | 161592b3cfb7c03706172eda1551a79af8bf70c5 /src/dynarec/arm64_printer.c | |
| parent | 7f750e7ac1bf23bd91073691cae31e1191312d82 (diff) | |
| download | box64-2b6fa580df14e02e9bfdf9a3b23e56b7515d5c2a.tar.gz box64-2b6fa580df14e02e9bfdf9a3b23e56b7515d5c2a.zip | |
[DYNAREC] Added F3 0F C2 opcode
Diffstat (limited to 'src/dynarec/arm64_printer.c')
| -rwxr-xr-x | src/dynarec/arm64_printer.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/dynarec/arm64_printer.c b/src/dynarec/arm64_printer.c index 14255e48..8d9aedfe 100755 --- a/src/dynarec/arm64_printer.c +++ b/src/dynarec/arm64_printer.c @@ -699,6 +699,16 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr) return buff; } + if(isMask(opcode, "f1011010100mmmmmdddd00nnnnnddddd", &a)) { + if(Rm!=31 && (cond&0b1110)!=0b1110 && Rn!=31 && Rn==Rm) + snprintf(buff, sizeof(buff), "CINV %s, %s, %s, %s", sf?Xt[Rd]:Wt[Rd], sf?Xt[Rn]:Wt[Rn], sf?Xt[Rm]:Wt[Rm], conds[cond^1]); + else if(Rm==31 && (cond&0b1110)!=0b1110 && Rn==31) + snprintf(buff, sizeof(buff), "CSETM %s,%s", sf?Xt[Rd]:Wt[Rd], conds[cond^1]); + else + snprintf(buff, sizeof(buff), "CSINV %s, %s, %s, %s", sf?Xt[Rd]:Wt[Rd], sf?Xt[Rn]:Wt[Rn], sf?Xt[Rm]:Wt[Rm], conds[cond]); + return buff; + } + if(isMask(opcode, "f1011010100mmmmmcccc01nnnnnddddd", &a)) { if((cond&0b1110)!=0b1110 && Rn==Rm) snprintf(buff, sizeof(buff), "CNEG %s, %s, %s", sf?Xt[Rd]:Wt[Rd], sf?Xt[Rn]:Wt[Rn], conds[cond^1]); |