@@ -181,29 +181,47 @@ def C_SH : CStoreH_rri<0b100011, 0b0, "c.sh">,
181181
182182// Zcmp
183183let DecoderNamespace = "RVZcmp", Predicates = [HasStdExtZcmp],
184- Defs = [X10, X11], hasSideEffects = 0, mayLoad = 0, mayStore = 0 in {
184+ hasSideEffects = 0, mayLoad = 0, mayStore = 0 in {
185+ let Defs = [X10, X11] in
185186def CM_MVA01S : RVInst16CA<0b101011, 0b11, 0b10, (outs),
186- (ins SR07:$rs1, SR07:$rs2), "cm.mva01s", "$rs1, $rs2">;
187+ (ins SR07:$rs1, SR07:$rs2), "cm.mva01s", "$rs1, $rs2">,
188+ Sched<[WriteIALU, WriteIALU, ReadIALU, ReadIALU]>;
187189
190+ let Uses = [X10, X11] in
188191def CM_MVSA01 : RVInst16CA<0b101011, 0b01, 0b10, (outs SR07:$rs1, SR07:$rs2),
189- (ins), "cm.mvsa01", "$rs1, $rs2">;
192+ (ins), "cm.mvsa01", "$rs1, $rs2">,
193+ Sched<[WriteIALU, WriteIALU, ReadIALU, ReadIALU]>;
190194} // DecoderNamespace = "RVZcmp", Predicates = [HasStdExtZcmp]...
191195
192196let DecoderNamespace = "RVZcmp", Predicates = [HasStdExtZcmp] in {
193197let hasSideEffects = 0, mayLoad = 0, mayStore = 1, Uses = [X2], Defs = [X2] in
194- def CM_PUSH : RVInstZcCPPP<0b11000, "cm.push">;
198+ def CM_PUSH : RVInstZcCPPP<0b11000, "cm.push">,
199+ Sched<[WriteIALU, ReadIALU, ReadStoreData, ReadStoreData,
200+ ReadStoreData, ReadStoreData, ReadStoreData, ReadStoreData,
201+ ReadStoreData, ReadStoreData, ReadStoreData, ReadStoreData,
202+ ReadStoreData, ReadStoreData, ReadStoreData]>;
195203
196204let hasSideEffects = 0, mayLoad = 1, mayStore = 0, isReturn = 1,
197205 Uses = [X2], Defs = [X2] in
198- def CM_POPRET : RVInstZcCPPP<0b11110, "cm.popret">;
206+ def CM_POPRET : RVInstZcCPPP<0b11110, "cm.popret">,
207+ Sched<[WriteIALU, WriteLDW, WriteLDW, WriteLDW, WriteLDW,
208+ WriteLDW, WriteLDW, WriteLDW, WriteLDW, WriteLDW,
209+ WriteLDW, WriteLDW, WriteLDW, WriteLDW, ReadIALU]>;
199210
200211let hasSideEffects = 0, mayLoad = 1, mayStore = 0, isReturn = 1,
201212 Uses = [X2], Defs = [X2, X10] in
202- def CM_POPRETZ : RVInstZcCPPP<0b11100, "cm.popretz">;
213+ def CM_POPRETZ : RVInstZcCPPP<0b11100, "cm.popretz">,
214+ Sched<[WriteIALU, WriteIALU, WriteLDW, WriteLDW, WriteLDW,
215+ WriteLDW, WriteLDW, WriteLDW, WriteLDW, WriteLDW,
216+ WriteLDW, WriteLDW, WriteLDW, WriteLDW, WriteLDW,
217+ ReadIALU]>;
203218
204219let hasSideEffects = 0, mayLoad = 1, mayStore = 0,
205220 Uses = [X2], Defs = [X2] in
206- def CM_POP : RVInstZcCPPP<0b11010, "cm.pop">;
221+ def CM_POP : RVInstZcCPPP<0b11010, "cm.pop">,
222+ Sched<[WriteIALU, WriteLDW, WriteLDW, WriteLDW, WriteLDW,
223+ WriteLDW, WriteLDW, WriteLDW, WriteLDW, WriteLDW, WriteLDW,
224+ WriteLDW, WriteLDW, WriteLDW, ReadIALU]>;
207225} // DecoderNamespace = "RVZcmp", Predicates = [HasStdExtZcmp]...
208226
209227let DecoderNamespace = "RVZcmt", Predicates = [HasStdExtZcmt],
0 commit comments