diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-20 19:12:37 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-20 19:12:37 +0100 |
| commit | fcfd0d794bdfec18999753946b6f7f8f1a18718a (patch) | |
| tree | db1e677553b0d8e7db4fbcf749b5017ef5770726 /src | |
| parent | dbd83a8b28be38f39885884a4c333d04060877c4 (diff) | |
| download | box64-fcfd0d794bdfec18999753946b6f7f8f1a18718a.tar.gz box64-fcfd0d794bdfec18999753946b6f7f8f1a18718a.zip | |
[DYNAREC] Added MOVN printer
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64_printer.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/dynarec/arm64_printer.c b/src/dynarec/arm64_printer.c index cb86ce42..53d72975 100755 --- a/src/dynarec/arm64_printer.c +++ b/src/dynarec/arm64_printer.c @@ -271,6 +271,22 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr) snprintf(buff, sizeof(buff), "MOVZ %s, 0x%x LSL %d", sf?Xt[Rd]:Wt[Rd], imm, 16*hw); return buff; } + if(isMask(opcode, "f00100101wwiiiiiiiiiiiiiiiiddddd", &a)) { + if(sf) { + uint64_t noti=~(uint64_t)imm; + if(!hw) + snprintf(buff, sizeof(buff), "MOVN %s, 0x%x\t; 0x%lx", Xt[Rd], imm, noti); + else + snprintf(buff, sizeof(buff), "MOVN %s, 0x%x LSL %d\t; 0x%lx", Xt[Rd], imm, 16*hw, noti); + } else { + uint32_t noti=~(uint32_t)imm; + if(!hw) + snprintf(buff, sizeof(buff), "MOVN %s, 0x%x\t; 0x%x", Wt[Rd], imm, noti); + else + snprintf(buff, sizeof(buff), "MOVN %s, 0x%x LSL %d\t; 0x%x", Wt[Rd], imm, 16*hw, noti); + } + return buff; + } if(isMask(opcode, "f11100101wwiiiiiiiiiiiiiiiiddddd", &a)) { if(!hw) snprintf(buff, sizeof(buff), "MOVK %s, 0x%x", sf?Xt[Rd]:Wt[Rd], imm); |