diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-21 20:35:49 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-21 20:35:49 +0100 |
| commit | 3d4acc3aef2af0c7e7b0dcb251331da7bcab6bc7 (patch) | |
| tree | 907209d2e12c33503b37d784b31d30e7d25ba48a /src | |
| parent | 1349601269fadcfedd9c30f1eb9b274dc01d1f7f (diff) | |
| download | box64-3d4acc3aef2af0c7e7b0dcb251331da7bcab6bc7.tar.gz box64-3d4acc3aef2af0c7e7b0dcb251331da7bcab6bc7.zip | |
[DYNAREC] Foxed printer for STP/LDP
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64_printer.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/dynarec/arm64_printer.c b/src/dynarec/arm64_printer.c index adf4f6f6..46e1feae 100755 --- a/src/dynarec/arm64_printer.c +++ b/src/dynarec/arm64_printer.c @@ -121,17 +121,17 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr) } // --- LDR / STR if(isMask(opcode, "f010100011iiiiiii22222nnnnnttttt", &a)) { - int offset = signExtend(imm, 9)<<(2+sf); + int offset = signExtend(imm, 7)<<(2+sf); snprintf(buff, sizeof(buff), "LDP %s, %s, [%s], %s0x%x", sf?Xt[Rt]:Wt[Rt], sf?Xt[Rt2]:Wt[Rt2], XtSp[Rn], (offset<0)?"-":"", abs(offset)); return buff; } if(isMask(opcode, "f010100111iiiiiii22222nnnnnttttt", &a)) { - int offset = signExtend(imm, 9)<<(2+sf); + int offset = signExtend(imm, 7)<<(2+sf); snprintf(buff, sizeof(buff), "LDP %s, %s, [%s, %s0x%x]!", sf?Xt[Rt]:Wt[Rt], sf?Xt[Rt2]:Wt[Rt2], XtSp[Rn], (offset<0)?"-":"", abs(offset)); return buff; } if(isMask(opcode, "f010100101iiiiiii22222nnnnnttttt", &a)) { - int offset = signExtend(imm, 9)<<(2+sf); + int offset = signExtend(imm, 7)<<(2+sf); if(!offset) snprintf(buff, sizeof(buff), "LDP %s, %s, [%s]", sf?Xt[Rt]:Wt[Rt], sf?Xt[Rt2]:Wt[Rt2], XtSp[Rn]); else @@ -139,17 +139,17 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr) return buff; } if(isMask(opcode, "f010100010iiiiiii22222nnnnnttttt", &a)) { - int offset = signExtend(imm, 9)<<(2+sf); + int offset = signExtend(imm, 7)<<(2+sf); snprintf(buff, sizeof(buff), "STP %s, %s, [%s], %s0x%x", sf?Xt[Rt]:Wt[Rt], sf?Xt[Rt2]:Wt[Rt2], XtSp[Rn], (offset<0)?"-":"", abs(offset)); return buff; } if(isMask(opcode, "f010100110iiiiiii22222nnnnnttttt", &a)) { - int offset = signExtend(imm, 9)<<(2+sf); + int offset = signExtend(imm, 7)<<(2+sf); snprintf(buff, sizeof(buff), "STP %s, %s, [%s, %s0x%x]!", sf?Xt[Rt]:Wt[Rt], sf?Xt[Rt2]:Wt[Rt2], XtSp[Rn], (offset<0)?"-":"", abs(offset)); return buff; } if(isMask(opcode, "f010100100iiiiiii22222nnnnnttttt", &a)) { - int offset = signExtend(imm, 9)<<(2+sf); + int offset = signExtend(imm, 7)<<(2+sf); if(!offset) snprintf(buff, sizeof(buff), "STP %s, %s, [%s]", sf?Xt[Rt]:Wt[Rt], sf?Xt[Rt2]:Wt[Rt2], XtSp[Rn]); else |