diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/arm64_printer.c | 4 |
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 |