From fcfd0d794bdfec18999753946b6f7f8f1a18718a Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 20 Mar 2021 19:12:37 +0100 Subject: [DYNAREC] Added MOVN printer --- src/dynarec/arm64_printer.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src') 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); -- cgit 1.4.1