diff options
author | Nirav Dave <niravd@google.com> | 2016-04-22 13:36:11 +0000 |
---|---|---|
committer | Nirav Dave <niravd@google.com> | 2016-04-22 13:36:11 +0000 |
commit | 9a878c4930b586bac36495aedfbceabab6906cd1 (patch) | |
tree | 9be505d711e8f2abd89600455618385d92c79cb0 /llvm/lib | |
parent | 5676d06aefe9cda80b7e65b8a700a2896970e4f5 (diff) | |
download | bcm5719-llvm-9a878c4930b586bac36495aedfbceabab6906cd1.tar.gz bcm5719-llvm-9a878c4930b586bac36495aedfbceabab6906cd1.zip |
Emit code16 in assembly in 16-bit mode
Summary:
When generating assembly using -m16 we must explicitly mark it as
16-bit. Emit .code16 at beginning of file. Fixes wrong results when
using -fno-integrated-as.
Reviewers: dwmw2
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D19392
llvm-svn: 267152
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/X86AsmPrinter.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86AsmPrinter.cpp b/llvm/lib/Target/X86/X86AsmPrinter.cpp index 9d0ac319859..0a00463f8bf 100644 --- a/llvm/lib/Target/X86/X86AsmPrinter.cpp +++ b/llvm/lib/Target/X86/X86AsmPrinter.cpp @@ -538,6 +538,12 @@ void X86AsmPrinter::EmitStartOfAsmFile(Module &M) { } } OutStreamer->EmitSyntaxDirective(); + + // If this is not inline asm and we're in 16-bit + // mode prefix assembly with .code16. + bool is16 = TT.getEnvironment() == Triple::CODE16; + if (M.getModuleInlineAsm().empty() && is16) + OutStreamer->EmitAssemblerFlag(MCAF_Code16); } static void |