llvm-project/llvm/lib/CodeGen/AsmPrinter
Reid Kleckner 953bdce68d [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

llvm-svn: 345189
2018-10-24 20:23:57 +00:00
..
ARMException.cpp Use assembler expressions to lay out the EH LSDA. 2018-02-09 17:00:25 +00:00
AccelTable.cpp DebugInfo: Fix skipping CUs in DWARFv5 debug_names table 2018-08-24 20:31:05 +00:00
AddressPool.cpp DebugInfo: Use debug_addr for non-dwo addresses in DWARF 5 2018-10-20 06:02:15 +00:00
AddressPool.h [DWARF] - Emit the correct value for DW_AT_addr_base. 2018-09-20 09:17:36 +00:00
AsmPrinter.cpp Revert "[WebAssembly] LSDA info generation" 2018-10-16 18:50:09 +00:00
AsmPrinterDwarf.cpp Revert r343317 2018-09-28 17:01:50 +00:00
AsmPrinterHandler.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
AsmPrinterInlineAsm.cpp [MC] Separate masm integer literal lexer support from inline asm 2018-10-24 20:23:57 +00:00
ByteStreamer.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
CMakeLists.txt Revert "[WebAssembly] LSDA info generation" 2018-10-16 18:50:09 +00:00
CodeViewDebug.cpp [codeview] Emit S_BUILDINFO and LF_BUILDINFO with cwd and source file 2018-10-12 18:19:06 +00:00
CodeViewDebug.h [codeview] Emit S_BUILDINFO and LF_BUILDINFO with cwd and source file 2018-10-12 18:19:06 +00:00
DIE.cpp [DEBUGINFO, NVPTX] Try to pack bytes data into a single string. 2018-10-24 14:04:00 +00:00
DIEHash.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
DIEHash.h Fix -Wdocumentation warning. NFCI. 2018-07-18 09:07:54 +00:00
DIEHashAttributes.def Fix DIEHash refactoring that dropped the DW_AT_name from the hash 2017-05-23 18:36:07 +00:00
DbgEntityHistoryCalculator.cpp [DebugInfo] Do not generate label debug info if it has been processed. 2018-09-06 02:22:06 +00:00
DbgEntityHistoryCalculator.h [DebugInfo] Do not generate label debug info if it has been processed. 2018-09-06 02:22:06 +00:00
DebugHandlerBase.cpp [DWARF] Use a function-local offset for AT_call_return_pc 2018-10-22 21:44:21 +00:00
DebugHandlerBase.h [DWARF] Use a function-local offset for AT_call_return_pc 2018-10-22 21:44:21 +00:00
DebugLocEntry.h llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...) 2018-09-27 02:13:45 +00:00
DebugLocStream.cpp
DebugLocStream.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
DwarfCFIException.cpp Move TargetLoweringObjectFile from CodeGen to Target to fix layering 2018-03-23 23:58:19 +00:00
DwarfCompileUnit.cpp [DWARF] Use a function-local offset for AT_call_return_pc 2018-10-22 21:44:21 +00:00
DwarfCompileUnit.h [DWARF] Use a function-local offset for AT_call_return_pc 2018-10-22 21:44:21 +00:00
DwarfDebug.cpp [DWARF] Use a function-local offset for AT_call_return_pc 2018-10-22 21:44:21 +00:00
DwarfDebug.h DebugInfo: Use address pool forms in debug_rnglists 2018-10-20 07:36:39 +00:00
DwarfException.h Use assembler expressions to lay out the EH LSDA. 2018-02-09 17:00:25 +00:00
DwarfExpression.cpp Use llvm::{all,any,none}_of instead std::{all,any,none}_of. NFC 2018-10-19 06:12:02 +00:00
DwarfExpression.h [DebugInfo] Normalize common kinds of DWARF sub-expressions. 2018-09-05 10:18:36 +00:00
DwarfFile.cpp DebugInfo: Use address pool forms in debug_rnglists 2018-10-20 07:36:39 +00:00
DwarfFile.h DebugInfo: Use address pool forms in debug_rnglists 2018-10-20 07:36:39 +00:00
DwarfStringPool.cpp Use the container form llvm::sort(C, ...) 2018-09-30 22:31:29 +00:00
DwarfStringPool.h [DebugInfo] Reduce debug_str_offsets section size 2018-08-07 09:54:52 +00:00
DwarfUnit.cpp DebugInfo: Use DW_OP_addrx in DWARFv5 2018-10-20 08:54:05 +00:00
DwarfUnit.h DebugInfo: Use address pool forms in debug_rnglists 2018-10-20 07:36:39 +00:00
EHStreamer.cpp Revert "[WebAssembly] LSDA info generation" 2018-10-16 18:50:09 +00:00
EHStreamer.h Revert "[WebAssembly] LSDA info generation" 2018-10-16 18:50:09 +00:00
ErlangGCPrinter.cpp Style update. NFC. 2018-03-29 23:32:54 +00:00
LLVMBuild.txt Update libdeps to add BinaryFormat, introduced in r304864. 2017-06-07 04:48:49 +00:00
OcamlGCPrinter.cpp Style update. NFC. 2018-03-29 23:32:54 +00:00
WinCFGuard.cpp Reland "Emit Function IDs table for Control Flow Guard" 2018-01-09 23:49:30 +00:00
WinCFGuard.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
WinException.cpp Move TargetLoweringObjectFile from CodeGen to Target to fix layering 2018-03-23 23:58:19 +00:00
WinException.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00