[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