diff --git a/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td b/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td index af62cf9e74a0..293f86ddd398 100644 --- a/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td +++ b/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td @@ -218,14 +218,17 @@ def GPRMemAtomic : RegisterOperand { def grlenimm : Operand; def imm32 : Operand { let ParserMatchClass = ImmAsmOperand<"", 32, "">; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm1 : Operand, ImmLeaf(Imm);}]>{ let ParserMatchClass = UImmAsmOperand<1>; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm2 : Operand, ImmLeaf(Imm);}]> { let ParserMatchClass = UImmAsmOperand<2>; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm2_plus1 : Operand, @@ -233,35 +236,43 @@ def uimm2_plus1 : Operand, let ParserMatchClass = UImmAsmOperand<2, "plus1">; let EncoderMethod = "getImmOpValueSub1"; let DecoderMethod = "decodeUImmOperand<2, 1>"; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm3 : Operand, ImmLeaf(Imm);}]> { let ParserMatchClass = UImmAsmOperand<3>; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm4 : Operand, ImmLeaf(Imm);}]> { let ParserMatchClass = UImmAsmOperand<4>; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm5 : Operand, ImmLeaf(Imm);}]> { let ParserMatchClass = UImmAsmOperand<5>; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm6 : Operand, ImmLeaf(Imm);}]> { let ParserMatchClass = UImmAsmOperand<6>; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm7 : Operand { let ParserMatchClass = UImmAsmOperand<7>; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm8 : Operand, ImmLeaf(Imm);}]> { let ParserMatchClass = UImmAsmOperand<8>; + let OperandType = "OPERAND_IMMEDIATE"; } class UImm12Operand : Operand, ImmLeaf (Imm);}]> { let DecoderMethod = "decodeUImmOperand<12>"; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm12 : UImm12Operand { @@ -275,21 +286,25 @@ def uimm12_ori : UImm12Operand { def uimm14 : Operand, ImmLeaf (Imm);}]> { let ParserMatchClass = UImmAsmOperand<14>; + let OperandType = "OPERAND_IMMEDIATE"; } def uimm15 : Operand, ImmLeaf (Imm);}]> { let ParserMatchClass = UImmAsmOperand<15>; + let OperandType = "OPERAND_IMMEDIATE"; } def simm5 : Operand { let ParserMatchClass = SImmAsmOperand<5>; let DecoderMethod = "decodeSImmOperand<5>"; + let OperandType = "OPERAND_IMMEDIATE"; } def simm8 : Operand { let ParserMatchClass = SImmAsmOperand<8>; let DecoderMethod = "decodeSImmOperand<8>"; + let OperandType = "OPERAND_IMMEDIATE"; } foreach I = [1, 2, 3] in { @@ -297,6 +312,7 @@ def simm8_lsl # I : Operand { let ParserMatchClass = SImmAsmOperand<8, "lsl" # I>; let EncoderMethod = "getImmOpValueAsr<" # I # ">"; let DecoderMethod = "decodeSImmOperand<8," # I # ">"; + let OperandType = "OPERAND_IMMEDIATE"; } } @@ -304,27 +320,32 @@ def simm9_lsl3 : Operand { let ParserMatchClass = SImmAsmOperand<9, "lsl3">; let EncoderMethod = "getImmOpValueAsr<3>"; let DecoderMethod = "decodeSImmOperand<9, 3>"; + let OperandType = "OPERAND_IMMEDIATE"; } def simm10 : Operand { let ParserMatchClass = SImmAsmOperand<10>; + let OperandType = "OPERAND_IMMEDIATE"; } def simm10_lsl2 : Operand { let ParserMatchClass = SImmAsmOperand<10, "lsl2">; let EncoderMethod = "getImmOpValueAsr<2>"; let DecoderMethod = "decodeSImmOperand<10, 2>"; + let OperandType = "OPERAND_IMMEDIATE"; } def simm11_lsl1 : Operand { let ParserMatchClass = SImmAsmOperand<11, "lsl1">; let EncoderMethod = "getImmOpValueAsr<1>"; let DecoderMethod = "decodeSImmOperand<11, 1>"; + let OperandType = "OPERAND_IMMEDIATE"; } class SImm12Operand : Operand, ImmLeaf (Imm);}]> { let DecoderMethod = "decodeSImmOperand<12>"; + let OperandType = "OPERAND_IMMEDIATE"; } def simm12 : SImm12Operand { @@ -342,6 +363,7 @@ def simm12_lu52id : SImm12Operand { def simm13 : Operand { let ParserMatchClass = SImmAsmOperand<13>; let DecoderMethod = "decodeSImmOperand<13>"; + let OperandType = "OPERAND_IMMEDIATE"; } def simm14_lsl2 : Operand, @@ -349,11 +371,13 @@ def simm14_lsl2 : Operand, let ParserMatchClass = SImmAsmOperand<14, "lsl2">; let EncoderMethod = "getImmOpValueAsr<2>"; let DecoderMethod = "decodeSImmOperand<14, 2>"; + let OperandType = "OPERAND_IMMEDIATE"; } def simm16 : Operand { let ParserMatchClass = SImmAsmOperand<16>; let DecoderMethod = "decodeSImmOperand<16>"; + let OperandType = "OPERAND_IMMEDIATE"; } def simm16_lsl2 : Operand, @@ -361,16 +385,19 @@ def simm16_lsl2 : Operand, let ParserMatchClass = SImmAsmOperand<16, "lsl2">; let EncoderMethod = "getImmOpValueAsr<2>"; let DecoderMethod = "decodeSImmOperand<16, 2>"; + let OperandType = "OPERAND_IMMEDIATE"; } def simm16_lsl2_br : Operand { let ParserMatchClass = SImmAsmOperand<16, "lsl2">; let EncoderMethod = "getImmOpValueAsr<2>"; let DecoderMethod = "decodeSImmOperand<16, 2>"; + let OperandType = "OPERAND_IMMEDIATE"; } class SImm20Operand : Operand { let DecoderMethod = "decodeSImmOperand<20>"; + let OperandType = "OPERAND_IMMEDIATE"; } def simm20 : SImm20Operand { @@ -397,6 +424,7 @@ def simm21_lsl2 : Operand { let ParserMatchClass = SImmAsmOperand<21, "lsl2">; let EncoderMethod = "getImmOpValueAsr<2>"; let DecoderMethod = "decodeSImmOperand<21, 2>"; + let OperandType = "OPERAND_IMMEDIATE"; } def SImm26OperandB: AsmOperandClass { @@ -412,6 +440,7 @@ def simm26_b : Operand { let ParserMatchClass = SImm26OperandB; let EncoderMethod = "getImmOpValueAsr<2>"; let DecoderMethod = "decodeSImmOperand<26, 2>"; + let OperandType = "OPERAND_IMMEDIATE"; } def SImm26OperandBL: AsmOperandClass { @@ -427,6 +456,7 @@ def simm26_symbol : Operand { let ParserMatchClass = SImm26OperandBL; let EncoderMethod = "getImmOpValueAsr<2>"; let DecoderMethod = "decodeSImmOperand<26, 2>"; + let OperandType = "OPERAND_IMMEDIATE"; } // A 32-bit signed immediate with the lowest 16 bits zeroed, suitable for