From e803a9e58831d518f4f8e9cc8fd9d1aab9e3a386 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sun, 29 Apr 2018 22:55:54 +0000 Subject: [PATCH] [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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331149 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86InstrSystem.td | 4 ++-- test/MC/X86/intel-syntax.s | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/Target/X86/X86InstrSystem.td b/lib/Target/X86/X86InstrSystem.td index 514a30c7dcc..245afa5c1cf 100644 --- a/lib/Target/X86/X86InstrSystem.td +++ b/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/test/MC/X86/intel-syntax.s b/test/MC/X86/intel-syntax.s index 5949340f33d..da2f5f97dd3 100644 --- a/test/MC/X86/intel-syntax.s +++ b/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 -- 2.11.0