diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h
index 739c1a3..8a13873 100644
--- a/include/llvm/CodeGen/AsmPrinter.h
+++ b/include/llvm/CodeGen/AsmPrinter.h
@@ -101,6 +101,7 @@
     /// "\t.zero\t" and "\t.space\t".  If this is set to null, the
     /// Data*bitsDirective's will be used to emit zero bytes.
     const char *ZeroDirective;   // Defaults to "\t.zero\t"
+    const char *ZeroDirectiveSuffix;  // Defaults to ""
 
     /// AsciiDirective - This directive allows emission of an ascii string with
     /// the standard C escape characters embedded into it.
@@ -256,7 +257,7 @@
 
     /// EmitZeros - Emit a block of zeros.
     ///
-    virtual void EmitZeros(uint64_t NumZeros) const;
+    void EmitZeros(uint64_t NumZeros) const;
 
     /// EmitString - Emit a zero-byte-terminated string constant.
     ///
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp
index 9e94f7a..aad0232 100644
--- a/lib/CodeGen/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter.cpp
@@ -37,6 +37,7 @@
   InlineAsmStart("#APP\n\t"),
   InlineAsmEnd("\t#NO_APP\n"),
   ZeroDirective("\t.zero\t"),
+  ZeroDirectiveSuffix(0),
   AsciiDirective("\t.ascii\t"),
   AscizDirective("\t.asciz\t"),
   Data8bitsDirective("\t.byte\t"),
@@ -240,9 +241,12 @@
 ///
 void AsmPrinter::EmitZeros(uint64_t NumZeros) const {
   if (NumZeros) {
-    if (ZeroDirective)
-      O << ZeroDirective << NumZeros << "\n";
-    else {
+    if (ZeroDirective) {
+      O << ZeroDirective << NumZeros;
+      if (ZeroDirectiveSuffix)
+        O << ZeroDirectiveSuffix;
+      O << "\n";
+    } else {
       for (; NumZeros; --NumZeros)
         O << Data8bitsDirective << "0\n";
     }
diff --git a/lib/Target/X86/X86IntelAsmPrinter.cpp b/lib/Target/X86/X86IntelAsmPrinter.cpp
index 112f496..900f67e 100755
--- a/lib/Target/X86/X86IntelAsmPrinter.cpp
+++ b/lib/Target/X86/X86IntelAsmPrinter.cpp
@@ -28,7 +28,8 @@
   GlobalPrefix = "_";
   PrivateGlobalPrefix = "$";
   AlignDirective = "\talign\t";
-  ZeroDirective = 0;
+  ZeroDirective = "\tdb\t";
+  ZeroDirectiveSuffix = " dup(0)";
   AsciiDirective = "\tdb\t";
   AscizDirective = 0;
   Data8bitsDirective = "\t.db\t";
@@ -472,12 +473,6 @@
   }
 }
 
-void X86IntelAsmPrinter::EmitZeros(uint64_t NumZeros) const {
-  if (NumZeros) {
-    O << "\tdb " << NumZeros << " dup(0)\n";
-  }
-}
-
 void X86IntelAsmPrinter::EmitString(const ConstantArray *CVA) const {
   unsigned NumElts = CVA->getNumOperands();
   if (NumElts) {
diff --git a/lib/Target/X86/X86IntelAsmPrinter.h b/lib/Target/X86/X86IntelAsmPrinter.h
index 7c81923..34a7110 100755
--- a/lib/Target/X86/X86IntelAsmPrinter.h
+++ b/lib/Target/X86/X86IntelAsmPrinter.h
@@ -93,7 +93,6 @@
   bool doFinalization(Module &M);
 
   virtual void SwitchSection(const char *NewSection, const GlobalValue *GV);
-  virtual void EmitZeros(uint64_t NumZeros) const;
   virtual void EmitString(const ConstantArray *CVA) const;
 };
 
