Fixed SME index alias printing issue.

This commit is contained in:
Finn Wilkinson 2022-10-11 15:37:34 +01:00
parent 215822fde7
commit 483f14a920
2 changed files with 26 additions and 4 deletions

View File

@ -26277,6 +26277,7 @@ static char *printAliasInstr(MCInst *MI, SStream *OS, MCRegisterInfo *MRI)
++I;
}
bool isSME = false;
do {
if (AsmString[I] == '$') {
++I;
@ -26289,9 +26290,19 @@ static char *printAliasInstr(MCInst *MI, SStream *OS, MCRegisterInfo *MRI)
printOperand(MI, (unsigned)(AsmString[I++]) - 1, OS);
} else {
if (AsmString[I] == '[') {
set_mem_access(MI, true);
if (AsmString[I-1] != ' '){
set_sme_index(MI, true);
isSME = true;
} else {
set_mem_access(MI, true);
}
} else if (AsmString[I] == ']') {
set_mem_access(MI, false);
if (isSME) {
set_sme_index(MI, false);
isSME = false;
} else {
set_mem_access(MI, false);
}
}
SStream_concat1(OS, AsmString[I++]);
}

View File

@ -768,6 +768,7 @@ for line in lines:
++I;
}
bool isSME = false;
do {
if (AsmString[I] == '$') {
++I;
@ -780,9 +781,19 @@ for line in lines:
printOperand(MI, (unsigned)(AsmString[I++]) - 1, OS);
} else {
if (AsmString[I] == '[') {
set_mem_access(MI, true);
if (AsmString[I-1] != ' ') {
set_sme_index(MI, true);
isSME = true;
} else {
set_mem_access(MI, true);
}
} else if (AsmString[I] == ']') {
set_mem_access(MI, false);
if (isSME) {
set_sme_index(MI, false);
isSME = false;
} else {
set_mem_access(MI, false);
}
}
SStream_concat1(OS, AsmString[I++]);
}