@@ -23,9 +23,21 @@ let Defs = [RAX, RCX, RDX] in
23
23
// CPU flow control instructions
24
24
25
25
let mayLoad = 1, mayStore = 0, hasSideEffects = 1, isTrap = 1 in {
26
- def UD2 : I<0x0B, RawFrm, (outs), (ins), "ud2", [(trap)]>, TB;
27
- def UD1 : I<0xB9, RawFrm, (outs), (ins), "ud1", []>, TB;
28
- def UD0 : I<0xFF, RawFrm, (outs), (ins), "ud0", []>, TB;
26
+ def TRAP : I<0x0B, RawFrm, (outs), (ins), "ud2", [(trap)]>, TB;
27
+
28
+ def UD1Wm : I<0xB9, MRMSrcMem, (outs), (ins GR16:$src1, i16mem:$src2),
29
+ "ud1{w} {$src2, $src1|$src1, $src2}", []>, TB, OpSize16;
30
+ def UD1Lm : I<0xB9, MRMSrcMem, (outs), (ins GR32:$src1, i32mem:$src2),
31
+ "ud1{l} {$src2, $src1|$src1, $src2}", []>, TB, OpSize32;
32
+ def UD1Qm : RI<0xB9, MRMSrcMem, (outs), (ins GR64:$src1, i64mem:$src2),
33
+ "ud1{q} {$src2, $src1|$src1, $src2}", []>, TB;
34
+
35
+ def UD1Wr : I<0xB9, MRMSrcReg, (outs), (ins GR16:$src1, GR16:$src2),
36
+ "ud1{w} {$src2, $src1|$src1, $src2}", []>, TB, OpSize16;
37
+ def UD1Lr : I<0xB9, MRMSrcReg, (outs), (ins GR32:$src1, GR32:$src2),
38
+ "ud1{l} {$src2, $src1|$src1, $src2}", []>, TB, OpSize32;
39
+ def UD1Qr : RI<0xB9, MRMSrcReg, (outs), (ins GR64:$src1, GR64:$src2),
40
+ "ud1{q} {$src2, $src1|$src1, $src2}", []>, TB;
29
41
}
30
42
31
43
def HLT : I<0xF4, RawFrm, (outs), (ins), "hlt", []>;
0 commit comments