diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-06-28 18:49:32 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-06-28 18:49:32 +0200 |
| commit | 401e3a7282abf0079a66c1f445237b1728f768e0 (patch) | |
| tree | d043ecdc7aab766070fa85c0525752c3827807b6 /src | |
| parent | 32b2b388c8d3e1ccbc036820eafba77f5425a761 (diff) | |
| download | box64-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.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); |