llvm-6502/lib
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
..
Analysis InstSimplify: shl nsw/nuw undef, %V -> undef 2014-12-17 01:54:33 +00:00
AsmParser IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
Bitcode Make ValueEnumerator::print use OS for metadata too. Noticed by inspection. 2014-12-17 01:52:08 +00:00
CodeGen [mips] Set GCC-compatible MIPS asssembler options before inline asm blocks. 2014-12-17 10:56:16 +00:00
DebugInfo Silence more static analyzer warnings. 2014-12-15 18:48:43 +00:00
ExecutionEngine Fix line mapping information in LLVM JIT profiling with Vtune 2014-12-15 04:45:43 +00:00
IR Delete debugging cruft that crept in with r223802. 2014-12-17 01:56:51 +00:00
IRReader
LineEditor
Linker Revert "Linker: Drop superseded subprograms" 2014-12-17 07:27:31 +00:00
LTO IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
MC Add parsing of 'foo@local". 2014-12-17 06:23:35 +00:00
Object Add printing the LC_ENCRYPTION_INFO_64 load command with llvm-objdump’s -private-headers 2014-12-17 01:01:30 +00:00
Option
ProfileData
Support Remove a debugging assert. 2014-12-17 03:38:04 +00:00
TableGen Clean up static analyzer warnings. 2014-12-12 21:48:03 +00:00
Target [mips] Set GCC-compatible MIPS asssembler options before inline asm blocks. 2014-12-17 10:56:16 +00:00
Transforms Revert 224119 "This patch recognizes (+ (+ v0, v1) (+ v2, v3)), reorders them for bundling into vector of loads, 2014-12-17 10:34:27 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile