@@ -125,10 +125,25 @@ class Mips_prefetch_ri<dag outs, dag ins, string opcodestr, string argstr>
125125 let Inst{6-0} = OPC_CUSTOM_0.Value;
126126}
127127
128+ // MIPS Custom Barrier Insns Format.
129+ let hasSideEffects = 1, mayLoad = 0, mayStore = 0 in
130+ class MIPSExtInst_ri<bits<6> shimm5, string opcodestr>
131+ : RVInstIShift<0b00000, 0b001, OPC_OP_IMM, (outs), (ins), opcodestr, ""> {
132+ let shamt = shimm5;
133+ let rd = 0;
134+ let rs1 = 0;
135+ }
136+
128137//===----------------------------------------------------------------------===//
129138// MIPS extensions
130139//===----------------------------------------------------------------------===//
131- let Predicates = [HasVendorXMIPSCBOP] ,DecoderNamespace = "Xmipscbop" in {
140+ let Predicates = [HasVendorXMIPSEXECTL], DecoderNamespace = "XMIPS" in {
141+ def MIPS_EHB : MIPSExtInst_ri<0b000011, "mips.ehb">;
142+ def MIPS_IHB : MIPSExtInst_ri<0b000001, "mips.ihb">;
143+ def MIPS_PAUSE : MIPSExtInst_ri<0b000101, "mips.pause">;
144+ }
145+
146+ let Predicates = [HasVendorXMIPSCBOP], DecoderNamespace = "XMIPS" in {
132147 def MIPS_PREF : Mips_prefetch_ri<(outs), (ins GPR:$rs1, uimm9:$imm9, uimm5:$hint),
133148 "mips.pref", "$hint, ${imm9}(${rs1})">,
134149 Sched<[]>;
@@ -146,7 +161,7 @@ let Predicates = [HasVendorXMIPSCBOP] in {
146161}
147162
148163let Predicates = [HasVendorXMIPSCMov], hasSideEffects = 0, mayLoad = 0, mayStore = 0,
149- DecoderNamespace = "Xmipscmov " in {
164+ DecoderNamespace = "XMIPS " in {
150165def MIPS_CCMOV : RVInstR4<0b11, 0b011, OPC_CUSTOM_0, (outs GPR:$rd),
151166 (ins GPR:$rs1, GPR:$rs2, GPR:$rs3),
152167 "mips.ccmov", "$rd, $rs2, $rs1, $rs3">,
@@ -166,7 +181,7 @@ def : Pat<(select (XLenVT GPR:$rs2), (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)),
166181}
167182
168183let Predicates = [HasVendorXMIPSLSP], hasSideEffects = 0,
169- DecoderNamespace = "Xmipslsp " in {
184+ DecoderNamespace = "XMIPS " in {
170185let mayLoad = 1, mayStore = 0 in {
171186def MIPS_LWP : LWPFormat<(outs GPR:$rd1, GPR:$rd2), (ins GPR:$rs1, uimm7_lsb00:$imm7),
172187 "mips.lwp", "$rd1, $rd2, ${imm7}(${rs1})">,
@@ -184,4 +199,4 @@ def MIPS_SDP : SDPFormat<(outs), (ins GPR:$rs2, GPR:$rs3, GPR:$rs1, uimm7_lsb000
184199 "mips.sdp", "$rs2, $rs3, ${imm7}(${rs1})">,
185200 Sched<[WriteSTD, ReadStoreData, ReadStoreData, ReadMemBase]>;
186201} // mayLoad = 0, mayStore = 1
187- } // Predicates = [HasVendorXMIPSLSP], hasSideEffects = 0, DecoderNamespace = "Xmipslsp "
202+ } // Predicates = [HasVendorXMIPSLSP], hasSideEffects = 0, DecoderNamespace = "XMIPS "
0 commit comments