diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/AsmPrinter.cpp | 10 | ||||
-rwxr-xr-x | lib/Target/X86/X86IntelAsmPrinter.cpp | 9 | ||||
-rwxr-xr-x | lib/Target/X86/X86IntelAsmPrinter.h | 1 |
3 files changed, 9 insertions, 11 deletions
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp index 9e94f7a52f..aad02327c6 100644 --- a/lib/CodeGen/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter.cpp @@ -37,6 +37,7 @@ AsmPrinter::AsmPrinter(std::ostream &o, TargetMachine &tm) 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::EmitAlignment(unsigned NumBits, const GlobalValue *GV) const { /// 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 112f496ead..900f67e9b8 100755 --- a/lib/Target/X86/X86IntelAsmPrinter.cpp +++ b/lib/Target/X86/X86IntelAsmPrinter.cpp @@ -28,7 +28,8 @@ X86IntelAsmPrinter::X86IntelAsmPrinter(std::ostream &O, X86TargetMachine &TM) 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::SwitchSection(const char *NewSection, } } -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 7c81923ed6..34a7110d58 100755 --- a/lib/Target/X86/X86IntelAsmPrinter.h +++ b/lib/Target/X86/X86IntelAsmPrinter.h @@ -93,7 +93,6 @@ struct X86IntelAsmPrinter : public X86SharedAsmPrinter { 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; }; |