about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/dynarec/arm64/arm64_printer.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dynarec/arm64/arm64_printer.c b/src/dynarec/arm64/arm64_printer.c
index 4802c946..7401942b 100644
--- a/src/dynarec/arm64/arm64_printer.c
+++ b/src/dynarec/arm64/arm64_printer.c
@@ -387,13 +387,13 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
     }

     if(isMask(opcode, "f00100101wwiiiiiiiiiiiiiiiiddddd", &a)) {

         if(sf) {

-            uint64_t noti=~(uint64_t)imm;

+            uint64_t noti=~(((uint64_t)imm)<<(hw*16));

             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;

+            uint32_t noti=~(((uint32_t)imm)<<(hw*16));

             if(!hw)

                 snprintf(buff, sizeof(buff), "MOVN %s, 0x%x\t; 0x%x", Wt[Rd], imm, noti);

             else