Recognize leavel and leaveq aliases for leave.
authorJoerg Sonnenberger <joerg@bec.de>
Thu, 17 Feb 2011 23:36:39 +0000 (23:36 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Thu, 17 Feb 2011 23:36:39 +0000 (23:36 +0000)
Validate encoding of leave in 64bit mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125795 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrInfo.td
test/MC/X86/x86-32-coverage.s
test/MC/X86/x86_64-encoding.s

index 14c90662d02303229d52ce29723936feb66fe147..221aa2fdc33774afd657f75a237764014fcb6043 100644 (file)
@@ -1293,6 +1293,9 @@ def : MnemonicAlias<"cdqe", "cltq">;
 // lret maps to lretl, it is not ambiguous with lretq.
 def : MnemonicAlias<"lret", "lretl">;
 
+def : MnemonicAlias<"leavel", "leave">, Requires<[In32BitMode]>;
+def : MnemonicAlias<"leaveq", "leave">, Requires<[In64BitMode]>;
+
 def : MnemonicAlias<"pop", "popl">, Requires<[In32BitMode]>;
 def : MnemonicAlias<"pop", "popq">, Requires<[In64BitMode]>;
 def : MnemonicAlias<"popf", "popfl">, Requires<[In32BitMode]>;
index ea30e8d022ffa49ced635074e21eeece0735de9a..4ec9fcdb1ee5e144b7bafa1abc84dbac1b835e75 100644 (file)
 // CHECK:      leave
                leave
 
+// CHECK:      leave
+               leavel
+
 // CHECK:      seto    %bl
                seto    %bl
 
 // CHECK:  encoding: [0xc9]
                leave
 
+// CHECK: leave
+// CHECK:  encoding: [0xc9]
+               leavel
+
 // CHECK: seto %bl
 // CHECK:  encoding: [0x0f,0x90,0xc3]
                seto    %bl
index c071a1b765e8bac90f23ea97b65caa326cefeb64..756da4dc352d8225c7f7640fab7353b33a7f8382 100644 (file)
@@ -148,3 +148,10 @@ pshufb     CPI1_0(%rip), %xmm1
 // CHECK: encoding: [0x48,0x0f,0xae,0x08]
           fxrstorq (%rax)
 
+// CHECK: leave
+// CHECK:  encoding: [0xc9]
+               leave
+
+// CHECK: leave
+// CHECK:  encoding: [0xc9]
+               leaveq