about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/arm64_printer.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dynarec/arm64/arm64_printer.c b/src/dynarec/arm64/arm64_printer.c
index bacf5490..45818949 100644
--- a/src/dynarec/arm64/arm64_printer.c
+++ b/src/dynarec/arm64/arm64_printer.c
@@ -1651,7 +1651,7 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
         if((imm&0b0001)==0b0001) sz=0;

         else if((imm&0b0011)==0b0010) sz=1;

         else if((imm&0b0111)==0b0100) sz=2;

-        int sh=imm - (1<<sz);

+        int sh=(imm>>sz) - 1;

         const char* Vd = Y[(sz<<1)|a.Q];

         const char* Vn = Z[sz];

         snprintf(buff, sizeof(buff), "DUP V%d.%s, V%d.%s[%d]", Rd, Vd, Rn, Vn, sh);