[PATCH] D91772: [ARM][AArch64] Adding basic support for the v8.7-A architecture
Oliver Stannard (Linaro) via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 19 03:30:13 PST 2020
ostannard added a comment.
The pre-commit test failures look relevant, so should be investigated.
Would this be better merged into D91773 <https://reviews.llvm.org/D91773>, so that these are under separate features from the start, rather than splitting them out later?
================
Comment at: llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3009
} else if (Mnemonic == "tlbi") {
- const AArch64TLBI::TLBI *TLBI = AArch64TLBI::lookupTLBIByName(Op);
- if (!TLBI)
+ bool HasnXSQualifier = Op.endswith_lower("nXS");
+ if (HasnXSQualifier) {
----------------
As I mentioned in D91773, could we do this in tablegen instead, to avoid needing the special cases here?
================
Comment at: llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3149
+ assert(Mnemonic == "dsb" && "Instruction does not accept nXS operands");
+ if (Mnemonic != "dsb")
+ return MatchOperand_ParseFail;
----------------
This isn't needed with the assertion above.
================
Comment at: llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3175
+ if (Value < 0 || Value > 15) {
+ Error(ExprLoc, "barrier operand out of range");
+ return MatchOperand_ParseFail;
----------------
This is unreachable because of the `& 0xF` above.
================
Comment at: llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3197
+ }
+ Operand = Operand.drop_back(3);
+ auto DB = AArch64DB::lookupDBByName(Operand);
----------------
Could this also be done by adding the extra barrier operands into the tablegen (the DB class in AArch64SystemOperands.td)?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91772/new/
https://reviews.llvm.org/D91772
More information about the llvm-commits
mailing list