diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-03-05 14:38:00 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-03-05 14:38:00 +0100 |
| commit | 430b7c665e8aac039b25ceb508de893096482aab (patch) | |
| tree | 97a6bdcace1b79c9812b5f610466aa4cfd738b77 /src | |
| parent | 90fe73333c425dafb77729569cf94ecfda6593d2 (diff) | |
| download | box64-430b7c665e8aac039b25ceb508de893096482aab.tar.gz box64-430b7c665e8aac039b25ceb508de893096482aab.zip | |
[ARM64] Added printer for STRB Reg, [Reg, Reg]
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64/arm64_printer.c | 9 |
1 files changed, 9 insertions, 0 deletions
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); |