[llvm] [AArch64][llvm] Reject assembler for invalid TLBIP instructions (PR #162090)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 7 07:02:30 PDT 2025
================
@@ -830,131 +851,151 @@ class TLBIEntry<string name, bits<3> op1, bits<4> crn, bits<4> crm,
code RequiresStr = [{ { }] # !interleave(Requires # ExtraRequires, [{, }]) # [{ } }];
}
+def TLBIPTable : GenericTable {
+ let FilterClass = "TLBIPEntry";
+ let CppTypeName = "TLBIP";
+ let Fields = ["Name", "Encoding", "NeedsReg", "RequiresStr"];
+ let PrimaryKey = ["Encoding"];
+ let PrimaryKeyName = "lookupTLBIPByEncoding";
+}
+
def TLBITable : GenericTable {
let FilterClass = "TLBIEntry";
let CppTypeName = "TLBI";
let Fields = ["Name", "Encoding", "NeedsReg", "RequiresStr"];
-
let PrimaryKey = ["Encoding"];
let PrimaryKeyName = "lookupTLBIByEncoding";
}
+def lookupTLBIPByName : SearchIndex {
+ let Table = TLBIPTable;
+ let Key = ["Name"];
+}
+
def lookupTLBIByName : SearchIndex {
let Table = TLBITable;
let Key = ["Name"];
}
-multiclass TLBI<string name, bits<3> op1, bits<4> crn, bits<4> crm,
+multiclass TLBI<string name, TLBImode mode, bits<3> op1, bits<4> crn, bits<4> crm,
----------------
Lukacma wrote:
Wouldn't it be simpler to have just 1 bit field called smth like hasTLBIP here and use that, instead of defining the whole class. Yes current approach makes it bit more obvious at instruction definition what that value means, but I think if we name the bit correctly it will be clear enough.
https://github.com/llvm/llvm-project/pull/162090
More information about the llvm-commits
mailing list