@@ -121,19 +121,6 @@ class BinOpRM<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
121
121
mnemonic, "{$src2, $src1|$src1, $src2}", pattern>,
122
122
Sched<[sched.Folded, sched.ReadAfterFold]>;
123
123
124
- // BinOpRM_ImplicitUse - Binary instructions with inputs "reg, [mem]".
125
- // There is an implicit register read at the end of the operand sequence.
126
- class BinOpRM_ImplicitUse<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
127
- dag outlist, X86FoldableSchedWrite sched, list<dag> pattern>
128
- : ITy<opcode, MRMSrcMem, typeinfo, outlist,
129
- (ins typeinfo.RegClass:$src1, typeinfo.MemOperand:$src2),
130
- mnemonic, "{$src2, $src1|$src1, $src2}", pattern>,
131
- Sched<[sched.Folded, sched.ReadAfterFold,
132
- // base, scale, index, offset, segment.
133
- ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault,
134
- // implicit register read.
135
- sched.ReadAfterFold]>;
136
-
137
124
// BinOpRM_F - Binary instructions with inputs "reg, [mem]", where the pattern
138
125
// has just a EFLAGS as a result.
139
126
class BinOpRM_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
@@ -154,11 +141,16 @@ class BinOpRM_RF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
154
141
// has both a regclass and EFLAGS as a result, and has EFLAGS as input.
155
142
class BinOpRM_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
156
143
SDNode opnode>
157
- : BinOpRM_ImplicitUse<opcode, mnemonic, typeinfo,
158
- (outs typeinfo.RegClass:$dst), WriteADC,
159
- [(set typeinfo.RegClass:$dst, EFLAGS,
160
- (opnode typeinfo.RegClass:$src1,
161
- (typeinfo.LoadNode addr:$src2), EFLAGS))]>;
144
+ : BinOpRM<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst), WriteADC,
145
+ [(set typeinfo.RegClass:$dst, EFLAGS,
146
+ (opnode typeinfo.RegClass:$src1, (typeinfo.LoadNode addr:$src2),
147
+ EFLAGS))]> {
148
+ let SchedRW = [WriteADC.Folded, WriteADC.ReadAfterFold,
149
+ // base, scale, index, offset, segment.
150
+ ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault,
151
+ // implicit register read.
152
+ WriteADC.ReadAfterFold];
153
+ }
162
154
163
155
// BinOpRI - Binary instructions with inputs "reg, imm".
164
156
class BinOpRI<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
0 commit comments