@@ -181,29 +181,47 @@ def C_SH : CStoreH_rri<0b100011, 0b0, "c.sh">,
181
181
182
182
// Zcmp
183
183
let 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
185
186
def 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]>;
187
189
190
+ let Uses = [X10, X11] in
188
191
def 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]>;
190
194
} // DecoderNamespace = "RVZcmp", Predicates = [HasStdExtZcmp]...
191
195
192
196
let DecoderNamespace = "RVZcmp", Predicates = [HasStdExtZcmp] in {
193
197
let 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]>;
195
203
196
204
let hasSideEffects = 0, mayLoad = 1, mayStore = 0, isReturn = 1,
197
205
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]>;
199
210
200
211
let hasSideEffects = 0, mayLoad = 1, mayStore = 0, isReturn = 1,
201
212
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]>;
203
218
204
219
let hasSideEffects = 0, mayLoad = 1, mayStore = 0,
205
220
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]>;
207
225
} // DecoderNamespace = "RVZcmp", Predicates = [HasStdExtZcmp]...
208
226
209
227
let DecoderNamespace = "RVZcmt", Predicates = [HasStdExtZcmt],
0 commit comments