llvm-6502/lib/CodeGen/AsmPrinter
Toma Tabacu 3fea427a63 [mips] Set GCC-compatible MIPS asssembler options before inline asm blocks.
Summary:
When generating MIPS assembly, LLVM always overrides the default assembler options by emitting the '.set noreorder', '.set nomacro' and '.set noat' directives,
while GCC uses the default options if an assembly-level function contains inline assembly code.

This becomes a problem when the code generated by LLVM is interleaved with inline assembly which assumes GCC-like assembler options (from Linux, for example).

This patch fixes these conflicts by setting the appropriate assembler options at the beginning of an inline asm block and popping them at the end.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D6637

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224425 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-17 10:56:16 +00:00
..
AddressPool.cpp
AddressPool.h
ARMException.cpp Allow the use of functions as typeinfo in landingpad clauses 2014-11-14 00:35:50 +00:00
AsmPrinter.cpp Move lowerConstant to AsmPrinter 2014-12-16 19:16:14 +00:00
AsmPrinterDwarf.cpp
AsmPrinterHandler.h
AsmPrinterInlineAsm.cpp [mips] Set GCC-compatible MIPS asssembler options before inline asm blocks. 2014-12-17 10:56:16 +00:00
ByteStreamer.h
CMakeLists.txt
DbgValueHistoryCalculator.cpp
DbgValueHistoryCalculator.h
DebugLocEntry.h
DebugLocList.h
DIE.cpp
DIE.h
DIEHash.cpp
DIEHash.h
DwarfAccelTable.cpp Fix emission of Dwarf accelerator table when there are multiple CUs. 2014-11-12 23:48:14 +00:00
DwarfAccelTable.h Fix emission of Dwarf accelerator table when there are multiple CUs. 2014-11-12 23:48:14 +00:00
DwarfCFIException.cpp Rename EH related stuff to be more precise 2014-11-14 23:31:07 +00:00
DwarfCompileUnit.cpp Cleanup: Calls to getDwarfRegNum() may actually fail, if there is 2014-12-05 01:02:46 +00:00
DwarfCompileUnit.h Provide gmlt-like inline scope information in the skeleton CU to facilitate symbolication without needing the .dwo files 2014-11-04 22:12:25 +00:00
DwarfDebug.cpp ARM/AArch64: Attach the FrameSetup MIFlag to CFI instructions. 2014-12-16 00:20:49 +00:00
DwarfDebug.h Move cross-unit DIE caching to the DwarfFile level, so it doesn't interfere with fission-gmlt data and produce skeleton<>full unit cross referencing. 2014-11-04 22:12:18 +00:00
DwarfException.h
DwarfFile.cpp Sink dwarf unit length emission down into DwarfUnit::emitHeader 2014-11-01 23:59:23 +00:00
DwarfFile.h Move cross-unit DIE caching to the DwarfFile level, so it doesn't interfere with fission-gmlt data and produce skeleton<>full unit cross referencing. 2014-11-04 22:12:18 +00:00
DwarfStringPool.cpp Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
DwarfStringPool.h
DwarfUnit.cpp PR21875: codegen for non-type template parameters of nullptr_t type 2014-12-17 00:43:22 +00:00
DwarfUnit.h Cleanup: Calls to getDwarfRegNum() may actually fail, if there is 2014-12-05 01:02:46 +00:00
EHStreamer.cpp Rename EH related stuff to be more precise 2014-11-14 23:31:07 +00:00
EHStreamer.h
ErlangGCPrinter.cpp GCStrategy should not own GCFunctionInfo 2014-12-11 01:47:23 +00:00
LLVMBuild.txt
Makefile
OcamlGCPrinter.cpp GCStrategy should not own GCFunctionInfo 2014-12-11 01:47:23 +00:00
Win64Exception.cpp
Win64Exception.h
WinCodeViewLineTables.cpp Temporary fix for PR21528 - use mangled C++ function names in COFF debug info to un-break ASan on Windows 2014-11-12 20:21:20 +00:00
WinCodeViewLineTables.h