@@ -47,7 +47,7 @@ def PLEA64r : PseudoI<(outs GR64:$dst), (ins anymem:$src), []>;
47
47
// BinOpRR - Instructions that read "reg, reg".
48
48
class BinOpRR<bits<8> o, string m, X86TypeInfo t, dag out, list<dag> p>
49
49
: ITy<o, MRMDestReg, t, out, (ins t.RegClass:$src1, t.RegClass:$src2), m,
50
- "{$src2, $src1|$src1, $src2}" , p>, Sched<[WriteALU]>;
50
+ binop_args , p>, Sched<[WriteALU]>;
51
51
// BinOpRR_F - Instructions that read "reg, reg" and write EFLAGS only.
52
52
class BinOpRR_F<bits<8> o, string m, X86TypeInfo t, SDPatternOperator node>
53
53
: BinOpRR<o, m, t, (outs),
@@ -86,7 +86,7 @@ class BinOpRRF_RF_Rev<bits<8> o, string m, X86TypeInfo t>
86
86
// BinOpRM - Instructions that read "reg, [mem]".
87
87
class BinOpRM<bits<8> o, string m, X86TypeInfo t, dag out, list<dag> p>
88
88
: ITy<o, MRMSrcMem, t, out, (ins t.RegClass:$src1, t.MemOperand:$src2), m,
89
- "{$src2, $src1|$src1, $src2}" , p>,
89
+ binop_args , p>,
90
90
Sched<[WriteALU.Folded, WriteALU.ReadAfterFold]> {
91
91
let mayLoad = 1;
92
92
}
@@ -117,7 +117,7 @@ class BinOpRMF_RF<bits<8> o, string m, X86TypeInfo t, SDPatternOperator node>
117
117
// BinOpRI - Instructions that read "reg, imm".
118
118
class BinOpRI<bits<8> o, string m, X86TypeInfo t, Format f, dag out, list<dag> p>
119
119
: ITy<o, f, t, out, (ins t.RegClass:$src1, t.ImmOperand:$src2), m,
120
- "{$src2, $src1|$src1, $src2}" , p>, Sched<[WriteALU]> {
120
+ binop_args , p>, Sched<[WriteALU]> {
121
121
let ImmT = t.ImmEncoding;
122
122
}
123
123
// BinOpRI_F - Instructions that read "reg, imm" and write EFLAGS only.
@@ -143,7 +143,7 @@ class BinOpRIF_RF<bits<8> o, string m, X86TypeInfo t, SDNode node, Format f>
143
143
// BinOpRI8 - Instructions that read "reg, imm8".
144
144
class BinOpRI8<bits<8> o, string m, X86TypeInfo t, Format f, dag out>
145
145
: ITy<o, f, t, out, (ins t.RegClass:$src1, t.Imm8Operand:$src2), m,
146
- "{$src2, $src1|$src1, $src2}" , []>, Sched<[WriteALU]> {
146
+ binop_args , []>, Sched<[WriteALU]> {
147
147
let ImmT = Imm8;
148
148
}
149
149
// BinOpRI8_F - Instructions that read "reg, imm8" and write EFLAGS only.
@@ -161,20 +161,20 @@ class BinOpRI8F_RF<bits<8> o, string m, X86TypeInfo t, Format f>
161
161
162
162
// BinOpMR - Instructions that read "[mem], reg".
163
163
class BinOpMR<bits<8> o, string m, X86TypeInfo t, list<dag> p>
164
- : ITy<o, MRMDestMem, t, (outs), (ins t.MemOperand:$dst , t.RegClass:$src ), m,
165
- "{$src, $dst|$dst, $src}" , p> {
164
+ : ITy<o, MRMDestMem, t, (outs), (ins t.MemOperand:$src1 , t.RegClass:$src2 ), m,
165
+ binop_args , p> {
166
166
let mayLoad = 1;
167
167
}
168
168
// BinOpMR_F - Instructions that read "[mem], imm8" and write EFLAGS only.
169
169
class BinOpMR_F<bits<8> o, string m, X86TypeInfo t, SDPatternOperator node>
170
170
: BinOpMR<o, m, t,
171
- [(set EFLAGS, (node (t.LoadNode addr:$dst ), t.RegClass:$src ))]>,
171
+ [(set EFLAGS, (node (t.LoadNode addr:$src1 ), t.RegClass:$src2 ))]>,
172
172
Sched<[WriteALU.Folded, ReadDefault, ReadDefault, ReadDefault,
173
173
ReadDefault, ReadDefault, WriteALU.ReadAfterFold]>, DefEFLAGS;
174
174
// BinOpMR_MF - Instructions that read "[mem], reg" and write "[mem]", EFLAGS.
175
175
class BinOpMR_MF<bits<8> o, string m, X86TypeInfo t, SDNode node>
176
176
: BinOpMR<o, m, t,
177
- [(store (node (load addr:$dst ), t.RegClass:$src ), addr:$dst ),
177
+ [(store (node (load addr:$src1 ), t.RegClass:$src2 ), addr:$src1 ),
178
178
(implicit EFLAGS)]>,
179
179
Sched<[WriteALURMW,
180
180
// base, scale, index, offset, segment
@@ -187,8 +187,8 @@ class BinOpMR_MF<bits<8> o, string m, X86TypeInfo t, SDNode node>
187
187
// read/write EFLAGS.
188
188
class BinOpMRF_MF<bits<8> o, string m, X86TypeInfo t, SDNode node>
189
189
: BinOpMR<o, m, t,
190
- [(store (node (load addr:$dst ), t.RegClass:$src , EFLAGS),
191
- addr:$dst ), (implicit EFLAGS)]>,
190
+ [(store (node (load addr:$src1 ), t.RegClass:$src2 , EFLAGS),
191
+ addr:$src1 ), (implicit EFLAGS)]>,
192
192
Sched<[WriteADCRMW,
193
193
// base, scale, index, offset, segment
194
194
ReadDefault, ReadDefault, ReadDefault,
@@ -201,39 +201,39 @@ class BinOpMRF_MF<bits<8> o, string m, X86TypeInfo t, SDNode node>
201
201
202
202
// BinOpMI - Instructions that read "[mem], imm".
203
203
class BinOpMI<bits<8> o, string m, X86TypeInfo t, Format f, list<dag> p>
204
- : ITy<o, f, t, (outs), (ins t.MemOperand:$dst , t.ImmOperand:$src ), m,
205
- "{$src, $dst|$dst, $src}" , p> {
204
+ : ITy<o, f, t, (outs), (ins t.MemOperand:$src1 , t.ImmOperand:$src2 ), m,
205
+ binop_args , p> {
206
206
let ImmT = t.ImmEncoding;
207
207
let mayLoad = 1;
208
208
}
209
209
// BinOpMI_F - Instructions that read "[mem], imm" and write EFLAGS only.
210
210
class BinOpMI_F<bits<8> o, string m, X86TypeInfo t, SDPatternOperator node,
211
211
Format f>
212
212
: BinOpMI<o, m, t, f,
213
- [(set EFLAGS, (node (t.LoadNode addr:$dst ), t.ImmOperator:$src ))]>,
213
+ [(set EFLAGS, (node (t.LoadNode addr:$src1 ), t.ImmOperator:$src2 ))]>,
214
214
Sched<[WriteALU.Folded]>, DefEFLAGS;
215
215
// BinOpMI_MF - Instructions that read "[mem], imm" and write "[mem]", EFLAGS.
216
216
class BinOpMI_MF<bits<8> o, string m, X86TypeInfo t, SDNode node, Format f>
217
217
: BinOpMI<o, m, t, f,
218
- [(store (node (t.VT (load addr:$dst )),
219
- t.ImmOperator:$src ), addr:$dst ), (implicit EFLAGS)]>,
218
+ [(store (node (t.VT (load addr:$src1 )),
219
+ t.ImmOperator:$src2 ), addr:$src1 ), (implicit EFLAGS)]>,
220
220
Sched<[WriteALURMW]>, DefEFLAGS {
221
221
let mayStore = 1;
222
222
}
223
223
// BinOpMIF_MF - Instructions that read "[mem], imm", write "[mem]" and
224
224
// read/write EFLAGS.
225
225
class BinOpMIF_MF<bits<8> o, string m, X86TypeInfo t, SDNode node, Format f>
226
226
: BinOpMI<o, m, t, f,
227
- [(store (node (t.VT (load addr:$dst )),
228
- t.ImmOperator:$src , EFLAGS), addr:$dst ), (implicit EFLAGS)]>,
227
+ [(store (node (t.VT (load addr:$src1 )),
228
+ t.ImmOperator:$src2 , EFLAGS), addr:$src1 ), (implicit EFLAGS)]>,
229
229
Sched<[WriteADCRMW]>, DefEFLAGS, UseEFLAGS {
230
230
let mayStore = 1;
231
231
}
232
232
233
233
// BinOpMI8 - Instructions that read "[mem], imm8".
234
234
class BinOpMI8<string m, X86TypeInfo t, Format f>
235
- : ITy<0x83, f, t, (outs), (ins t.MemOperand:$dst , t.Imm8Operand:$src ), m,
236
- "{$src, $dst|$dst, $src}" , []> {
235
+ : ITy<0x83, f, t, (outs), (ins t.MemOperand:$src1 , t.Imm8Operand:$src2 ), m,
236
+ binop_args , []> {
237
237
let ImmT = Imm8;
238
238
let mayLoad = 1;
239
239
}
0 commit comments