about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-03-10 13:48:40 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-03-10 13:48:40 +0100
commit4e702cfedad56ddace2941243f2b02f710e7c342 (patch)
tree7d91a4ccc16385fc70a885e7506086016a67054f
parent33846405d8e0af86bb5cfb9dab4ea5026fadb614 (diff)
downloadbox64-4e702cfedad56ddace2941243f2b02f710e7c342.tar.gz
box64-4e702cfedad56ddace2941243f2b02f710e7c342.zip
[ARM64_DYNAREC] Fixed printer for MVN with shift
-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