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
diff --git a/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp b/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
index d33cb8c..4bc0e10 100755
--- a/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
@@ -37,7 +37,7 @@
   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 @@
   Data64bitsDirective = "\tdq\t";
   HasDotTypeDotSizeDirective = false;
   Mang->markCharUnacceptable('.');
+  
+  DefaultTextSection = "_text";
+  DefaultDataSection = "_data";
 
   O << "\t.686\n\t.model flat\n\n";
 
@@ -359,7 +362,7 @@
       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 @@
   
   // Bypass X86SharedAsmPrinter::doFinalization().
   AsmPrinter::doFinalization(M);
-  SwitchToDataSection("", 0);
+  SwitchToDataSection("_data", 0);
+  O << "_data\tends\n";
   O << "\tend\n";
   return false; // success
 }