def FRSTORm : FPI<0xDD, MRM4m, (outs f32mem:$dst), (ins), "frstor\t$dst">;
def FSAVEm : FPI<0xDD, MRM6m, (outs f32mem:$dst), (ins), "fnsave\t$dst">;
-def FNSTSWm : FPI<0xDD, MRM7m, (outs f32mem:$dst), (ins), "fnstsw\t$dst">;
+def FNSTSWm : FPI<0xDD, MRM7m, (outs f32mem:$dst), (ins), "fnstsw{w}\t$dst">;
def FICOM16m : FPI<0xDE, MRM2m, (outs), (ins i16mem:$src), "ficom{s}\t$src">;
def FICOMP16m: FPI<0xDE, MRM3m, (outs), (ins i16mem:$src), "ficomp{s}\t$src">;
(outs), (ins), "fnstsw %ax", []>, DF;
def FNSTCW16m : I<0xD9, MRM7m, // [mem16] = X87 control world
- (outs), (ins i16mem:$dst), "fnstcw\t$dst",
+ (outs), (ins i16mem:$dst), "fnstcw{w}\t$dst",
[(X86fp_cwd_get16 addr:$dst)]>;
let mayLoad = 1 in
def FLDCW16m : I<0xD9, MRM5m, // X87 control world = [mem16]
- (outs), (ins i16mem:$dst), "fldcw\t$dst", []>;
+ (outs), (ins i16mem:$dst), "fldcw{w}\t$dst", []>;
// FPU control instructions
def FNINIT : I<0xE3, RawFrm, (outs), (ins), "fninit", []>, DB;
// CHECK: fabs
fabs
-// CHECK: fldcw 3735928559(%ebx,%ecx,8)
+// CHECK: fldcww 3735928559(%ebx,%ecx,8)
fldcw 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: fnstcw 3735928559(%ebx,%ecx,8)
+// CHECK: fnstcww 3735928559(%ebx,%ecx,8)
fnstcw 0xdeadbeef(%ebx,%ecx,8)
// CHECK: rdtsc
// CHECK: encoding: [0x0f,0x00,0x0d,0xed,0x7e,0x00,0x00]
strw 0x7eed
-// CHECK: verr %bx
+// CHECK: verrw %bx
// CHECK: encoding: [0x0f,0x00,0xe3]
verr %bx
-// CHECK: verr 3735928559(%ebx,%ecx,8)
+// CHECK: verrw 3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0x0f,0x00,0xa4,0xcb,0xef,0xbe,0xad,0xde]
verr 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: verr 3133065982
+// CHECK: verrw 3133065982
// CHECK: encoding: [0x0f,0x00,0x25,0xfe,0xca,0xbe,0xba]
verr 0xbabecafe
-// CHECK: verr 305419896
+// CHECK: verrw 305419896
// CHECK: encoding: [0x0f,0x00,0x25,0x78,0x56,0x34,0x12]
verr 0x12345678
-// CHECK: verw %bx
+// CHECK: verww %bx
// CHECK: encoding: [0x0f,0x00,0xeb]
verw %bx
-// CHECK: verw 3735928559(%ebx,%ecx,8)
+// CHECK: verww 3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0x0f,0x00,0xac,0xcb,0xef,0xbe,0xad,0xde]
verw 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: verw 3133065982
+// CHECK: verww 3133065982
// CHECK: encoding: [0x0f,0x00,0x2d,0xfe,0xca,0xbe,0xba]
verw 0xbabecafe
-// CHECK: verw 305419896
+// CHECK: verww 305419896
// CHECK: encoding: [0x0f,0x00,0x2d,0x78,0x56,0x34,0x12]
verw 0x12345678
// CHECK: encoding: [0xdb,0xe3]
fninit
-// CHECK: fldcw 3735928559(%ebx,%ecx,8)
+// CHECK: fldcww 3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0xd9,0xac,0xcb,0xef,0xbe,0xad,0xde]
fldcw 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: fldcw 3133065982
+// CHECK: fldcww 3133065982
// CHECK: encoding: [0xd9,0x2d,0xfe,0xca,0xbe,0xba]
fldcw 0xbabecafe
-// CHECK: fldcw 305419896
+// CHECK: fldcww 305419896
// CHECK: encoding: [0xd9,0x2d,0x78,0x56,0x34,0x12]
fldcw 0x12345678
-// CHECK: fnstcw 3735928559(%ebx,%ecx,8)
+// CHECK: fnstcww 3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0xd9,0xbc,0xcb,0xef,0xbe,0xad,0xde]
fnstcw 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: fnstcw 3133065982
+// CHECK: fnstcww 3133065982
// CHECK: encoding: [0xd9,0x3d,0xfe,0xca,0xbe,0xba]
fnstcw 0xbabecafe
-// CHECK: fnstcw 305419896
+// CHECK: fnstcww 305419896
// CHECK: encoding: [0xd9,0x3d,0x78,0x56,0x34,0x12]
fnstcw 0x12345678
-// CHECK: fnstsw 3735928559(%ebx,%ecx,8)
+// CHECK: fnstsww 3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0xdd,0xbc,0xcb,0xef,0xbe,0xad,0xde]
fnstsw 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: fnstsw 3133065982
+// CHECK: fnstsww 3133065982
// CHECK: encoding: [0xdd,0x3d,0xfe,0xca,0xbe,0xba]
fnstsw 0xbabecafe
-// CHECK: fnstsw 305419896
+// CHECK: fnstsww 305419896
// CHECK: encoding: [0xdd,0x3d,0x78,0x56,0x34,0x12]
fnstsw 0x12345678
// CHECK: strw 32493
strw 0x7eed
-// CHECK: verr %bx
+// CHECK: verrw %bx
verr %bx
-// CHECK: verr 3735928559(%ebx,%ecx,8)
+// CHECK: verrw 3735928559(%ebx,%ecx,8)
verr 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: verr 3133065982
+// CHECK: verrw 3133065982
verr 0xbabecafe
-// CHECK: verr 305419896
+// CHECK: verrw 305419896
verr 0x12345678
-// CHECK: verw %bx
+// CHECK: verww %bx
verw %bx
-// CHECK: verw 3735928559(%ebx,%ecx,8)
+// CHECK: verww 3735928559(%ebx,%ecx,8)
verw 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: verw 3133065982
+// CHECK: verww 3133065982
verw 0xbabecafe
-// CHECK: verw 305419896
+// CHECK: verww 305419896
verw 0x12345678
// CHECK: fld %st(2)
// CHECK: fninit
fninit
-// CHECK: fldcw 3735928559(%ebx,%ecx,8)
+// CHECK: fldcww 3735928559(%ebx,%ecx,8)
fldcw 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: fldcw 3133065982
+// CHECK: fldcww 3133065982
fldcw 0xbabecafe
-// CHECK: fldcw 305419896
+// CHECK: fldcww 305419896
fldcw 0x12345678
-// CHECK: fnstcw 3735928559(%ebx,%ecx,8)
+// CHECK: fnstcww 3735928559(%ebx,%ecx,8)
fnstcw 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: fnstcw 3133065982
+// CHECK: fnstcww 3133065982
fnstcw 0xbabecafe
-// CHECK: fnstcw 305419896
+// CHECK: fnstcww 305419896
fnstcw 0x12345678
-// CHECK: fnstsw 3735928559(%ebx,%ecx,8)
+// CHECK: fnstsww 3735928559(%ebx,%ecx,8)
fnstsw 0xdeadbeef(%ebx,%ecx,8)
-// CHECK: fnstsw 3133065982
+// CHECK: fnstsww 3133065982
fnstsw 0xbabecafe
-// CHECK: fnstsw 305419896
+// CHECK: fnstsww 305419896
fnstsw 0x12345678
// CHECK: fnclex
// CHECK: sidt 4(%eax)
// CHECK: encoding: [0x0f,0x01,0x48,0x04]
sidtl 4(%eax)
+
+// CHECK: verrw 2(%eax)
+// CHECK: encoding: [0x0f,0x00,0x60,0x02]
+ verrw 2(%eax)
+
+// CHECK: verrw 2(%eax)
+// CHECK: encoding: [0x0f,0x00,0x60,0x02]
+ verr 2(%eax)
+
+// CHECK: verrw %bx
+// CHECK: encoding: [0x0f,0x00,0xe3]
+ verrw %bx
+
+// CHECK: verrw %bx
+// CHECK: encoding: [0x0f,0x00,0xe3]
+ verr %bx
+
+// CHECK: verww 2(%eax)
+// CHECK: encoding: [0x0f,0x00,0x68,0x02]
+ verww 2(%eax)
+
+// CHECK: verww 2(%eax)
+// CHECK: encoding: [0x0f,0x00,0x68,0x02]
+ verw 2(%eax)
+
+// CHECK: verww %bx
+// CHECK: encoding: [0x0f,0x00,0xeb]
+ verww %bx
+
+// CHECK: verww %bx
+// CHECK: encoding: [0x0f,0x00,0xeb]
+ verw %bx
+
+// CHECK: fldcww 6(%ecx)
+// CHECK: encoding: [0xd9,0x69,0x06]
+ fldcw 6(%ecx)
+
+// CHECK: fldcww 6(%ecx)
+// CHECK: encoding: [0xd9,0x69,0x06]
+ fldcww 6(%ecx)
+
+// CHECK: fnstcww 6(%ecx)
+// CHECK: encoding: [0xd9,0x79,0x06]
+ fnstcw 6(%ecx)
+
+// CHECK: fnstcww 6(%ecx)
+// CHECK: encoding: [0xd9,0x79,0x06]
+ fnstcww 6(%ecx)
+
+// CHECK: wait
+// CHECK: encoding: [0x9b]
+ fstsw %ax
+
+// CHECK: wait
+// CHECK: encoding: [0x9b]
+ fstsww 0x7eed
+
+// CHECK: wait
+// CHECK: encoding: [0x9b]
+ fclex
+
+// CHECK: ud2
+// CHECK: encoding: [0x0f,0x0b]
+ ud2a