diff options
author | Hans Wennborg <hans@hanshq.net> | 2018-01-30 15:22:31 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2018-01-30 15:22:31 +0000 |
commit | 8a0e312d1af7d9556d93264aa3fa963486ab6d11 (patch) | |
tree | 3e5d24cc69ae4cfe9109b2b66446dcd54948c59f | |
parent | f48ff4c85ec91f7ba5eaa724079542a2016e55b2 (diff) |
Merging r323469:
------------------------------------------------------------------------
r323469 | ctopper | 2018-01-25 22:23:57 +0100 (Thu, 25 Jan 2018) | 3 lines
[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.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_60@323770 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp | 4 | ||||
-rw-r--r-- | test/MC/X86/x86-32-coverage.s | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp b/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp index 1f02600a798..79a8e304970 100644 --- a/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp +++ b/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp @@ -39,11 +39,11 @@ void X86IntelInstPrinter::printInst(const MCInst *MI, raw_ostream &OS, 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) diff --git a/test/MC/X86/x86-32-coverage.s b/test/MC/X86/x86-32-coverage.s index 03be55fa4be..09e147fd162 100644 --- a/test/MC/X86/x86-32-coverage.s +++ b/test/MC/X86/x86-32-coverage.s @@ -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) + |