.Case("repz", "rep")
.Case("repnz", "repne")
.Case("iret", "iretl")
+ .Case("sysret", "sysretl")
.Case("push", Is64Bit ? "pushq" : "pushl")
.Case("pushf", Is64Bit ? "pushfq" : "pushfl")
.Case("popf", Is64Bit ? "popfq" : "popfl")
def IRET64 : RI<0xcf, RawFrm, (outs), (ins), "iretq", []>,
Requires<[In64BitMode]>;
+def SYSRETQ : RI<0x07, RawFrm,
+ (outs), (ins), "sysretq", []>, TB, Requires<[In64BitMode]>;
+
+
//===----------------------------------------------------------------------===//
// Call Instructions...
//
def SYSCALL : I<0x05, RawFrm,
(outs), (ins), "syscall", []>, TB;
-def SYSRET : I<0x07, RawFrm,
- (outs), (ins), "sysret", []>, TB;
+def SYSRETL : I<0x07, RawFrm,
+ (outs), (ins), "sysretl", []>, TB;
def SYSENTER : I<0x34, RawFrm,
(outs), (ins), "sysenter", []>, TB;
def SYSEXIT : I<0x35, RawFrm,
iretl
// CHECK: iretl
// CHECK: encoding: [0xcf]
+
+// rdar://8403907
+sysret
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
+sysretl
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
// CHECK: iretq
// CHECK: encoding: [0x48,0xcf]
-
+// rdar://8403907
+sysret
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
+sysretl
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
+sysretq
+// CHECK: sysretq
+// CHECK: encoding: [0x48,0x0f,0x07]