diff options
author | Craig Topper <craig.topper@intel.com> | 2018-04-29 22:55:54 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-04-29 22:55:54 +0000 |
commit | 5731558979a669baf4a1b1841672c3d603e5232d (patch) | |
tree | 32f03b0ea7ebbe221ac1ae16688be762d5a519fa | |
parent | e4777a9df5c28a42476c7eea7901ddf52498948e (diff) | |
download | bcm5719-llvm-5731558979a669baf4a1b1841672c3d603e5232d.tar.gz bcm5719-llvm-5731558979a669baf4a1b1841672c3d603e5232d.zip |
[X86] Make 64-bit sysret/sysexit not ambiguous in Intel assembly syntax.
This also makes it default to the 32-bit non REX.W version in 64-bit mode. This seems to be more consistent with gas.
llvm-svn: 331149
-rw-r--r-- | llvm/lib/Target/X86/X86InstrSystem.td | 4 | ||||
-rw-r--r-- | llvm/test/MC/X86/intel-syntax.s | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86InstrSystem.td b/llvm/lib/Target/X86/X86InstrSystem.td index 514a30c7dcc..245afa5c1cf 100644 --- a/llvm/lib/Target/X86/X86InstrSystem.td +++ b/llvm/lib/Target/X86/X86InstrSystem.td @@ -49,13 +49,13 @@ def INT : Ii8<0xcd, RawFrm, (outs), (ins u8imm:$trap), "int\t$trap", def SYSCALL : I<0x05, RawFrm, (outs), (ins), "syscall", []>, TB; def SYSRET : I<0x07, RawFrm, (outs), (ins), "sysret{l}", []>, TB; -def SYSRET64 :RI<0x07, RawFrm, (outs), (ins), "sysret{q}", []>, TB, +def SYSRET64 :RI<0x07, RawFrm, (outs), (ins), "sysretq", []>, TB, Requires<[In64BitMode]>; def SYSENTER : I<0x34, RawFrm, (outs), (ins), "sysenter", []>, TB; def SYSEXIT : I<0x35, RawFrm, (outs), (ins), "sysexit{l}", []>, TB; -def SYSEXIT64 :RI<0x35, RawFrm, (outs), (ins), "sysexit{q}", []>, TB, +def SYSEXIT64 :RI<0x35, RawFrm, (outs), (ins), "sysexitq", []>, TB, Requires<[In64BitMode]>; } // SchedRW diff --git a/llvm/test/MC/X86/intel-syntax.s b/llvm/test/MC/X86/intel-syntax.s index 5949340f33d..da2f5f97dd3 100644 --- a/llvm/test/MC/X86/intel-syntax.s +++ b/llvm/test/MC/X86/intel-syntax.s @@ -883,3 +883,12 @@ lsl ebx, word ptr [eax] // CHECK: lslw (%eax), %bx lsl bx, word ptr [eax] + +// CHECK: sysexitl +sysexit +// CHECK: sysexitq +sysexitq +// CHECK: sysretl +sysret +// CHECK: sysretq +sysretq |