From 430b7c665e8aac039b25ceb508de893096482aab Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 5 Mar 2022 14:38:00 +0100 Subject: [ARM64] Added printer for STRB Reg, [Reg, Reg] --- src/dynarec/arm64/arm64_printer.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/dynarec/arm64/arm64_printer.c b/src/dynarec/arm64/arm64_printer.c index b07d40a4..9e47c5ea 100755 --- a/src/dynarec/arm64/arm64_printer.c +++ b/src/dynarec/arm64/arm64_printer.c @@ -236,6 +236,15 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr) snprintf(buff, sizeof(buff), "STR %s, [%s, %s, %s %d]", (size==2)?Wt[Rt]:Xt[Rt], XtSp[Rn], ((option&1)==0)?Wt[Rm]:Xt[Rm], extend[option], amount); return buff; } + if(isMask(opcode, "00111000001mmmmmoooS10nnnnnttttt", &a)) { + const char* extend[] = {"?0", "?1", "UXTW", "LSL", "?4", "?5", "SXTW", "SXTX"}; + int amount = a.S; + if(option==3 && !amount) + snprintf(buff, sizeof(buff), "STRB %s, [%s, %s]", Wt[Rt], XtSp[Rn], ((option&1)==0)?Wt[Rm]:Xt[Rm]); + else + snprintf(buff, sizeof(buff), "STRB %s, [%s, %s, %s %d]", Wt[Rt], XtSp[Rn], ((option&1)==0)?Wt[Rm]:Xt[Rm], extend[option], amount); + return buff; + } if(isMask(opcode, "0x111000010iiiiiiiii01nnnnnttttt", &a)) { int size = a.x; int offset = signExtend(imm, 9); -- cgit 1.4.1