From 3d4acc3aef2af0c7e7b0dcb251331da7bcab6bc7 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 21 Mar 2021 20:35:49 +0100 Subject: [DYNAREC] Foxed printer for STP/LDP --- src/dynarec/arm64_printer.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') 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 -- cgit 1.4.1