diff options
author | Reid Kleckner <rnk@google.com> | 2018-10-24 20:23:57 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2018-10-24 20:23:57 +0000 |
commit | c2d38c6a381d2f70b17f168197bc9f03ee5f5c7a (patch) | |
tree | 507f41378b05175af19181a24b16134b09765754 /llvm/test/tools/llvm-mca | |
parent | 02ba9b71b3f861ad5081216aae4af589e142eea5 (diff) |
[MC] Separate masm integer literal lexer support from inline asm
Summary:
This renames the IsParsingMSInlineAsm member variable of AsmLexer to
LexMasmIntegers and moves it up to MCAsmLexer. This is the only behavior
controlled by that variable. I added a public setter, so that it can be
set from outside or from the llvm-mc command line. We may need to
arrange things so that users can get this behavior from clang, but
that's future work.
I also put additional hex literal lexing functionality under this flag
to fix PR32973. It appears that this hex literal parsing wasn't intended
to be enabled in non-masm-style blocks.
Now, masm integers (0b1101 and 0ABCh) work in __asm blocks from clang,
but 0b label references work when using .intel_syntax in standalone .s
files.
However, 0b label references will *not* work from __asm blocks in clang.
They will work from GCC inline asm blocks, which it sounds like is
important for Crypto++ as mentioned in PR36144.
Essentially, we only lex masm literals for inline asm blobs that use
intel syntax. If the .intel_syntax directive is used inside a gnu-style
inline asm statement, masm literals will not be lexed, which is
compatible with gas and llvm-mc standalone .s assembly.
This fixes PR36144 and PR32973.
Reviewers: Gerolf, avt77
Subscribers: eraman, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D53535
Diffstat (limited to 'llvm/test/tools/llvm-mca')
-rw-r--r-- | llvm/test/tools/llvm-mca/X86/intel-syntax.s | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/tools/llvm-mca/X86/intel-syntax.s b/llvm/test/tools/llvm-mca/X86/intel-syntax.s index 1aaa3902866..786d06ba0d1 100644 --- a/llvm/test/tools/llvm-mca/X86/intel-syntax.s +++ b/llvm/test/tools/llvm-mca/X86/intel-syntax.s @@ -5,7 +5,7 @@ .intel_syntax noprefix mov eax, 1 - mov ebx, 0ffh + mov ebx, 0xff imul esi, edi lea eax, [rsi + rdi] |