[llvm-commits] [llvm] r125805 - in /llvm/trunk: lib/Target/X86/X86InstrSSE.td test/MC/X86/x86-32.s test/MC/X86/x86-64.s

Joerg Sonnenberger joerg at bec.de
Thu Feb 17 16:48:12 PST 2011


Author: joerg
Date: Thu Feb 17 18:48:11 2011
New Revision: 125805

URL: http://llvm.org/viewvc/llvm-project?rev=125805&view=rev
Log:
Recognize monitor/mwait with explicit register arguments

Modified:
    llvm/trunk/lib/Target/X86/X86InstrSSE.td
    llvm/trunk/test/MC/X86/x86-32.s
    llvm/trunk/test/MC/X86/x86-64.s

Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=125805&r1=125804&r2=125805&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Thu Feb 17 18:48:11 2011
@@ -3673,6 +3673,14 @@
 def MWAITrr   : I<0x01, MRM_C9, (outs), (ins), "mwait", []>, TB,
                 Requires<[HasSSE3]>;
 
+def : InstAlias<"mwait %eax, %ecx", (MWAITrr)>, Requires<[In32BitMode]>;
+def : InstAlias<"mwait %rax, %rcx", (MWAITrr)>, Requires<[In64BitMode]>;
+
+def : InstAlias<"monitor %eax, %ecx, %edx", (MONITORrrr)>,
+      Requires<[In32BitMode]>;
+def : InstAlias<"monitor %rax, %rcx, %rdx", (MONITORrrr)>,
+      Requires<[In64BitMode]>;
+
 //===---------------------------------------------------------------------===//
 // Non-Instruction Patterns
 //===---------------------------------------------------------------------===//

Modified: llvm/trunk/test/MC/X86/x86-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-32.s?rev=125805&r1=125804&r2=125805&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-32.s (original)
+++ llvm/trunk/test/MC/X86/x86-32.s Thu Feb 17 18:48:11 2011
@@ -15,9 +15,15 @@
 	monitor
 // CHECK: monitor
 // CHECK: encoding: [0x0f,0x01,0xc8]
+	monitor %eax, %ecx, %edx
+// CHECK: monitor
+// CHECK: encoding: [0x0f,0x01,0xc8]
 	mwait
 // CHECK: mwait
 // CHECK: encoding: [0x0f,0x01,0xc9]
+	mwait %eax, %ecx
+// CHECK: mwait
+// CHECK: encoding: [0x0f,0x01,0xc9]
 
 	vmcall
 // CHECK: vmcall

Modified: llvm/trunk/test/MC/X86/x86-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-64.s?rev=125805&r1=125804&r2=125805&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-64.s (original)
+++ llvm/trunk/test/MC/X86/x86-64.s Thu Feb 17 18:48:11 2011
@@ -2,6 +2,18 @@
 // RUN: FileCheck < %t %s
 // RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
 
+	monitor
+// CHECK: monitor
+// CHECK: encoding: [0x0f,0x01,0xc8]
+	monitor %rax, %rcx, %rdx
+// CHECK: monitor
+// CHECK: encoding: [0x0f,0x01,0xc8]
+	mwait
+// CHECK: mwait
+// CHECK: encoding: [0x0f,0x01,0xc9]
+	mwait %rax, %rcx
+// CHECK: mwait
+// CHECK: encoding: [0x0f,0x01,0xc9]
 
 // Suffix inference:
 





More information about the llvm-commits mailing list