@@ -207,45 +207,41 @@ let mayLoad = 1 in
207
207
def LAR16rm : I<0x02, MRMSrcMem, (outs GR16:$dst), (ins i16mem:$src),
208
208
"lar{w}\t{$src, $dst|$dst, $src}", []>, TB,
209
209
OpSize16, NotMemoryFoldable;
210
- def LAR16rr : I<0x02, MRMSrcReg, (outs GR16:$dst), (ins GR16 :$src),
210
+ def LAR16rr : I<0x02, MRMSrcReg, (outs GR16:$dst), (ins GR16orGR32orGR64 :$src),
211
211
"lar{w}\t{$src, $dst|$dst, $src}", []>, TB,
212
212
OpSize16, NotMemoryFoldable;
213
213
214
- // i16mem operand in LAR32rm and GR32 operand in LAR32rr is not a typo.
215
214
let mayLoad = 1 in
216
215
def LAR32rm : I<0x02, MRMSrcMem, (outs GR32:$dst), (ins i16mem:$src),
217
216
"lar{l}\t{$src, $dst|$dst, $src}", []>, TB,
218
217
OpSize32, NotMemoryFoldable;
219
- def LAR32rr : I<0x02, MRMSrcReg, (outs GR32:$dst), (ins GR32 :$src),
218
+ def LAR32rr : I<0x02, MRMSrcReg, (outs GR32:$dst), (ins GR16orGR32orGR64 :$src),
220
219
"lar{l}\t{$src, $dst|$dst, $src}", []>, TB,
221
220
OpSize32, NotMemoryFoldable;
222
- // i16mem operand in LAR64rm and GR32 operand in LAR64rr is not a typo.
223
221
let mayLoad = 1 in
224
222
def LAR64rm : RI<0x02, MRMSrcMem, (outs GR64:$dst), (ins i16mem:$src),
225
223
"lar{q}\t{$src, $dst|$dst, $src}", []>, TB, NotMemoryFoldable;
226
- def LAR64rr : RI<0x02, MRMSrcReg, (outs GR64:$dst), (ins GR32orGR64 :$src),
224
+ def LAR64rr : RI<0x02, MRMSrcReg, (outs GR64:$dst), (ins GR16orGR32orGR64 :$src),
227
225
"lar{q}\t{$src, $dst|$dst, $src}", []>, TB, NotMemoryFoldable;
228
226
229
- // i16mem operand in LSL32rm and GR32 operand in LSL32rr is not a typo.
230
227
let mayLoad = 1 in
231
228
def LSL16rm : I<0x03, MRMSrcMem, (outs GR16:$dst), (ins i16mem:$src),
232
229
"lsl{w}\t{$src, $dst|$dst, $src}", []>, TB,
233
230
OpSize16, NotMemoryFoldable;
234
- def LSL16rr : I<0x03, MRMSrcReg, (outs GR16:$dst), (ins GR16 :$src),
231
+ def LSL16rr : I<0x03, MRMSrcReg, (outs GR16:$dst), (ins GR16orGR32orGR64 :$src),
235
232
"lsl{w}\t{$src, $dst|$dst, $src}", []>, TB,
236
233
OpSize16, NotMemoryFoldable;
237
- // i16mem operand in LSL64rm and GR32 operand in LSL64rr is not a typo.
238
234
let mayLoad = 1 in
239
235
def LSL32rm : I<0x03, MRMSrcMem, (outs GR32:$dst), (ins i16mem:$src),
240
236
"lsl{l}\t{$src, $dst|$dst, $src}", []>, TB,
241
237
OpSize32, NotMemoryFoldable;
242
- def LSL32rr : I<0x03, MRMSrcReg, (outs GR32:$dst), (ins GR32 :$src),
238
+ def LSL32rr : I<0x03, MRMSrcReg, (outs GR32:$dst), (ins GR16orGR32orGR64 :$src),
243
239
"lsl{l}\t{$src, $dst|$dst, $src}", []>, TB,
244
240
OpSize32, NotMemoryFoldable;
245
241
let mayLoad = 1 in
246
242
def LSL64rm : RI<0x03, MRMSrcMem, (outs GR64:$dst), (ins i16mem:$src),
247
243
"lsl{q}\t{$src, $dst|$dst, $src}", []>, TB, NotMemoryFoldable;
248
- def LSL64rr : RI<0x03, MRMSrcReg, (outs GR64:$dst), (ins GR32orGR64 :$src),
244
+ def LSL64rr : RI<0x03, MRMSrcReg, (outs GR64:$dst), (ins GR16orGR32orGR64 :$src),
249
245
"lsl{q}\t{$src, $dst|$dst, $src}", []>, TB, NotMemoryFoldable;
250
246
251
247
def INVLPG : I<0x01, MRM7m, (outs), (ins i8mem:$addr), "invlpg\t$addr", []>, TB;
0 commit comments