aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanya Lattner <tonic@nondot.org>2010-03-12 00:03:18 +0000
committerTanya Lattner <tonic@nondot.org>2010-03-12 00:03:18 +0000
commitc58daa2d510ac619b323e25e48ec42b5da7a3479 (patch)
tree238189a6f2785dcfe34756faefceba102723e692
parent5b78ac5d8e7dd29605f32986cb8e7a788a1eeaad (diff)
Merge 98205 from mainline.
Work around a bug in the openbsd assembler on i386, which doesn't support .quad correctly because it is "really really old". PR6528. Yet another reason the mc assembler should take over ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_27@98309 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86MCAsmInfo.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Target/X86/X86MCAsmInfo.cpp b/lib/Target/X86/X86MCAsmInfo.cpp
index 250634fcb0..ded9717b3c 100644
--- a/lib/Target/X86/X86MCAsmInfo.cpp
+++ b/lib/Target/X86/X86MCAsmInfo.cpp
@@ -71,7 +71,7 @@ X86MCAsmInfoDarwin::X86MCAsmInfoDarwin(const Triple &Triple) {
AbsoluteEHSectionOffsets = false;
}
-X86ELFMCAsmInfo::X86ELFMCAsmInfo(const Triple &Triple) {
+X86ELFMCAsmInfo::X86ELFMCAsmInfo(const Triple &T) {
AsmTransCBE = x86_asm_table;
AssemblerDialect = AsmWriterFlavor;
@@ -91,6 +91,11 @@ X86ELFMCAsmInfo::X86ELFMCAsmInfo(const Triple &Triple) {
// Exceptions handling
ExceptionsType = ExceptionHandling::Dwarf;
AbsoluteEHSectionOffsets = false;
+
+ // OpenBSD has buggy support for .quad in 32-bit mode, just split into two
+ // .words.
+ if (T.getOS() == Triple::OpenBSD && T.getArch() == Triple::x86)
+ Data64bitsDirective = 0;
}
MCSection *X86ELFMCAsmInfo::getNonexecutableStackSection(MCContext &Ctx) const {