[Lldb-commits] [lldb] [llvm] [AArch64][llvm] Tighten SYSP parsing; don't disassemble invalid encodings (PR #182410)
via lldb-commits
lldb-commits at lists.llvm.org
Thu Mar 12 05:09:15 PDT 2026
================
@@ -2111,14 +2119,37 @@ class MSRpstateImm0_1
}
// SYS and SYSL generic system instructions.
-def SysCRAsmOperand : AsmOperandClass {
- let Name = "SysCR";
+class SysCRAsmOperand<int Low, int High> : AsmOperandClass {
+ let Name = "SysCR" # Low # "_" # High;
+ let RenderMethod = "addSysCROperands";
let ParserMethod = "tryParseSysCROperand";
+ let PredicateMethod = "isSysCRInRange<" # Low # "," # High # ">";
+ let DiagnosticType = "InvalidSysCR" # Low # "_" # High;
}
+def SysCRm0_7AsmOperand : SysCRAsmOperand<0, 7>;
+def SysCRn8_9AsmOperand : SysCRAsmOperand<8, 9>;
+def SysCR0_15AsmOperand : SysCRAsmOperand<0, 15>;
+
def sys_cr_op : Operand<i32> {
let PrintMethod = "printSysCROperand";
- let ParserMatchClass = SysCRAsmOperand;
+ let ParserMatchClass = SysCR0_15AsmOperand;
+ let OperandType = "OPERAND_IMMEDIATE";
+}
+
+def sysp_crn_op : Operand<i32>, ImmLeaf<i32, [{
----------------
Lukacma wrote:
Is defining these nodes as ImmLeaf necessary ? I thought that is only used for codegen.
https://github.com/llvm/llvm-project/pull/182410
More information about the lldb-commits
mailing list