tools: Lowercase more patterns in aarch64 assembly

Match more SVE/SME specific details.

Also lowercase all register names. As this matches many cases
of code comments that refer to variables elsewhere, not specific
registers, we only apply this tranformation on the part of lines
before a potential comment.
This commit is contained in:
Martin Storsjö
2026-01-09 13:55:01 +02:00
parent f74c551eaa
commit 7ebb6c54eb

View File

@@ -219,10 +219,23 @@ while (<$in>) {
$operand_space = spaces($size);
}
# Lowercase register names. Only apply this on lines up to
# comments, as this can match common spec/code references in
# code comments. Split the string on // for comments, apply the
# substitution on the first segment (up to a comment char), and
# join the string again.
my @parts = split(/\/\//, $rest);
$parts[0] =~ s/\b([XWVQDSHBZP][0-9]+)\b/lc($1)/ge;
$rest = join('//', @parts);
# Lowercase the aarch64 vector layout description, .8B -> .8b
$rest =~ s/(\.[84216]*[BHSD])/lc($1)/ge;
# Lowercase modifiers like "uxtw" or "lsl"
$rest =~ s/([SU]XT[BWH]|[LA]S[LR])/lc($1)/ge;
# Lowercase SVE/SME modifiers like "/Z" or "/M"
$rest =~ s,(/[ZM])\b,lc($1),ge;
# Lowercase SVE/SME vector lengths
$rest =~ s/\b(VL[0-9]+)\b/lc($1)/ge;
# Reassemble the line
if ($rest eq "") {