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