[llvm] [AArch64][llvm] Redefine some insns as an alias of `SYS` (PR #187004)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 28 07:27:41 PDT 2026
================
@@ -941,6 +942,38 @@ bool AArch64InstPrinter::printSysAlias(const MCInst *MI,
case 0: goto Search_IC;
case 3: goto Search_PRCTX;
}
+ // BRB aliases.
+ case 2: {
+ switch (Op1Val) {
+ default:
+ return false;
+ case 1:
+ if (!(STI.hasFeature(AArch64::FeatureAll) ||
+ STI.hasFeature(AArch64::FeatureBRBE)))
+ return false;
+
+ NeedsReg = false;
+ switch (Op2Val) {
+ default:
+ return false;
+ case 4:
+ Ins = "brb\t";
+ Name = "iall";
----------------
CarolineConcatto wrote:
I find there switch statements would be better if written as if statements:
```
if (Op1Val == 1) {
if (!(STI.hasFeature(AArch64::FeatureAll) ||
STI.hasFeature(AArch64::FeatureBRBE)))
return false;
NeedsReg = false;
if (Op2Val == 4) {
Ins = "brb\t";
Name = "iall";
} else if (Op2Val == 5) {
Ins = "brb\t";
Name = "inj";
} else {
return false;
}
}
if (Op1Val == 3) {
if (Op2Val != 7 || !(STI.hasFeature(AArch64::FeatureAll) ||
STI.hasFeature(AArch64::FeatureITE)))
return false;
return false;
}
```
https://github.com/llvm/llvm-project/pull/187004
More information about the llvm-commits
mailing list