about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-06-28 18:49:32 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-06-28 18:49:32 +0200
commit401e3a7282abf0079a66c1f445237b1728f768e0 (patch)
treed043ecdc7aab766070fa85c0525752c3827807b6 /src
parent32b2b388c8d3e1ccbc036820eafba77f5425a761 (diff)
downloadbox64-401e3a7282abf0079a66c1f445237b1728f768e0.tar.gz
box64-401e3a7282abf0079a66c1f445237b1728f768e0.zip
[ARM64_DYNAREC] Fixed printer for DUP opcode
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);