summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorNirav Dave <niravd@google.com>2016-04-22 13:36:11 +0000
committerNirav Dave <niravd@google.com>2016-04-22 13:36:11 +0000
commit9a878c4930b586bac36495aedfbceabab6906cd1 (patch)
tree9be505d711e8f2abd89600455618385d92c79cb0 /llvm/lib
parent5676d06aefe9cda80b7e65b8a700a2896970e4f5 (diff)
downloadbcm5719-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.cpp6
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
OpenPOWER on IntegriCloud