[llvm] r323469 - [X86] Teach Intel syntax InstPrinter to print lock prefixes that have been parsed from the asm parser.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 25 13:23:57 PST 2018


Author: ctopper
Date: Thu Jan 25 13:23:57 2018
New Revision: 323469

URL: http://llvm.org/viewvc/llvm-project?rev=323469&view=rev
Log:
[X86] Teach Intel syntax InstPrinter to print lock prefixes that have been parsed from the asm parser.

The asm parser puts the lock prefix in the MCInst flags so we need to check that in addition to TSFlags. This matches what the ATT printer does.

Modified:
    llvm/trunk/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
    llvm/trunk/test/MC/X86/x86-32-coverage.s

Modified: llvm/trunk/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp?rev=323469&r1=323468&r2=323469&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp (original)
+++ llvm/trunk/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp Thu Jan 25 13:23:57 2018
@@ -39,11 +39,11 @@ void X86IntelInstPrinter::printInst(cons
                                     const MCSubtargetInfo &STI) {
   const MCInstrDesc &Desc = MII.get(MI->getOpcode());
   uint64_t TSFlags = Desc.TSFlags;
+  unsigned Flags = MI->getFlags();
 
-  if (TSFlags & X86II::LOCK)
+  if ((TSFlags & X86II::LOCK) || (Flags & X86::IP_HAS_LOCK))
     OS << "\tlock\t";
 
-  unsigned Flags = MI->getFlags();
   if (Flags & X86::IP_HAS_REPEAT_NE)
     OS << "\trepne\t";
   else if (Flags & X86::IP_HAS_REPEAT)

Modified: llvm/trunk/test/MC/X86/x86-32-coverage.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-32-coverage.s?rev=323469&r1=323468&r2=323469&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-32-coverage.s (original)
+++ llvm/trunk/test/MC/X86/x86-32-coverage.s Thu Jan 25 13:23:57 2018
@@ -10774,3 +10774,9 @@ btcl $4, (%eax)
 // CHECK: 	clzero
 // CHECK:  encoding: [0x0f,0x01,0xfc]
         	clzero
+
+// CHECK: lock addl %esi, (%edi)
+// INTEL: lock add dword ptr [edi], esi
+// CHECK:  encoding: [0xf0,0x01,0x37]
+        	lock add %esi, (%edi)
+




More information about the llvm-commits mailing list