diff options
author | Chris Lattner <sabre@nondot.org> | 2006-05-09 05:12:53 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-05-09 05:12:53 +0000 |
commit | d0201946ad6fb1ca1a0067bd75896ba347732eb0 (patch) | |
tree | efa896a3172c25aee39276d8df33d6346967e6ee /llvm/lib/Target/X86/X86IntelAsmPrinter.cpp | |
parent | 8488ba2e412cb5184a3d8be856a6aa54416a495a (diff) | |
download | bcm5719-llvm-d0201946ad6fb1ca1a0067bd75896ba347732eb0.tar.gz bcm5719-llvm-d0201946ad6fb1ca1a0067bd75896ba347732eb0.zip |
Fix the MASM asmprinter's lies. It does not want to emit code to .text/.data
it wants it emitted to _text/_data.
llvm-svn: 28185
Diffstat (limited to 'llvm/lib/Target/X86/X86IntelAsmPrinter.cpp')
-rwxr-xr-x | llvm/lib/Target/X86/X86IntelAsmPrinter.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp b/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp index d33cb8c556c..4bc0e10c8e1 100755 --- a/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp +++ b/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp @@ -37,7 +37,7 @@ bool X86IntelAsmPrinter::runOnMachineFunction(MachineFunction &MF) { EmitConstantPool(MF.getConstantPool()); // Print out labels for the function. - SwitchToTextSection(".code", MF.getFunction()); + SwitchToTextSection("_text", MF.getFunction()); EmitAlignment(4); if (MF.getFunction()->getLinkage() == GlobalValue::ExternalLinkage) O << "\tpublic " << CurrentFnName << "\n"; @@ -302,6 +302,9 @@ bool X86IntelAsmPrinter::doInitialization(Module &M) { Data64bitsDirective = "\tdq\t"; HasDotTypeDotSizeDirective = false; Mang->markCharUnacceptable('.'); + + DefaultTextSection = "_text"; + DefaultDataSection = "_data"; O << "\t.686\n\t.model flat\n\n"; @@ -359,7 +362,7 @@ bool X86IntelAsmPrinter::doFinalization(Module &M) { O << "\tpublic " << name << "\n"; // FALL THROUGH case GlobalValue::InternalLinkage: - SwitchToDataSection(".data", I); + SwitchToDataSection(DefaultDataSection, I); break; default: assert(0 && "Unknown linkage type!"); @@ -378,7 +381,8 @@ bool X86IntelAsmPrinter::doFinalization(Module &M) { // Bypass X86SharedAsmPrinter::doFinalization(). AsmPrinter::doFinalization(M); - SwitchToDataSection("", 0); + SwitchToDataSection("_data", 0); + O << "_data\tends\n"; O << "\tend\n"; return false; // success } |