@@ -4321,7 +4321,24 @@ def TLBLI : XForm_16b<31, 1010, (outs), (ins gprc:$RB),
43214321 "tlbli $RB", IIC_LdStLoad, []>, Requires<[IsPPC6xx]>;
43224322
43234323def TLBIE : XForm_26<31, 306, (outs), (ins gprc:$RST, gprc:$RB),
4324- "tlbie $RB,$RST", IIC_SprTLBIE, []>;
4324+ "tlbie $RB, $RST", IIC_SprTLBIE, []>,
4325+ Requires<[IsNotISA3_0]>;
4326+
4327+ let Predicates = [IsISA3_0] in {
4328+ //let isCodeGenOnly = 1 in {
4329+ def TLBIEP9 : XForm_RSB5_UIMM2_2UIMM1<31, 306, (outs),
4330+ (ins gprc:$RB, gprc:$RS, u2imm:$RIC,
4331+ u1imm:$PRS, u1imm:$R),
4332+ "tlbie $RB, $RS, $RIC, $PRS, $R", []>;
4333+ //}
4334+ let Interpretation64Bit = 1, isCodeGenOnly = 1 in {
4335+ def TLBIE8P9
4336+ : XForm_RSB5_UIMM2_2UIMM1<31, 306, (outs),
4337+ (ins g8rc:$RB, g8rc:$RS, u2imm:$RIC,
4338+ u1imm:$PRS, u1imm:$R),
4339+ "tlbie $RB, $RS, $RIC, $PRS, $R", []>;
4340+ }
4341+ }
43254342
43264343def TLBSX : XForm_tlb<914, (outs), (ins gprc:$RA, gprc:$RB), "tlbsx $RA, $RB",
43274344 IIC_LdStLoad>, Requires<[IsBookE]>;
@@ -4667,7 +4684,11 @@ def : InstAlias<"mficcr $Rx", (MFSPR gprc:$Rx, 1019)>, Requires<[IsPPC4xx]>;
46674684
46684685}
46694686
4670- def : InstAlias<"tlbie $RB", (TLBIE R0, gprc:$RB)>;
4687+ def : InstAlias<"tlbie $RB", (TLBIE R0, gprc:$RB)>, Requires<[IsNotISA3_0]>;
4688+ let Predicates = [IsISA3_0] in {
4689+ def : InstAlias<"tlbie $RB", (TLBIEP9 R0, gprc:$RB, 0, 0, 0)>;
4690+ def : InstAlias<"tlbie $RB, $RS", (TLBIEP9 gprc:$RB, gprc:$RS, 0, 0, 0)>;
4691+ }
46714692
46724693def : InstAlias<"tlbrehi $RS, $A", (TLBRE2 gprc:$RS, gprc:$A, 0)>,
46734694 Requires<[IsPPC4xx]>;
0 commit comments