summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-01-19 18:58:52 +0000
committerChris Lattner <sabre@nondot.org>2010-01-19 18:58:52 +0000
commited89f60f5e2d650c537990c0ff7ff7500bdf92fd (patch)
tree1de398b2f1855fcf8696f4ea9d51c60818af31f8 /llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
parent4340cb324665f7561cead81096c027e6bb9cdab5 (diff)
downloadbcm5719-llvm-ed89f60f5e2d650c537990c0ff7ff7500bdf92fd.tar.gz
bcm5719-llvm-ed89f60f5e2d650c537990c0ff7ff7500bdf92fd.zip
mcstreamerize AsmPrinter::EmitZeros, at least when emitting to the
default address space. llvm-svn: 93890
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index c22e501f53f..48add10b352 100644
--- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -436,7 +436,7 @@ void AsmPrinter::EmitConstantPool(MachineConstantPool *MCP) {
// Emit inter-object padding for alignment.
unsigned AlignMask = CPE.getAlignment() - 1;
unsigned NewOffset = (Offset + AlignMask) & ~AlignMask;
- EmitZeros(NewOffset - Offset);
+ OutStreamer.EmitFill(NewOffset - Offset);
const Type *Ty = CPE.getType();
Offset = NewOffset + TM.getTargetData()->getTypeAllocSize(Ty);
@@ -917,8 +917,8 @@ void AsmPrinter::EmitAlignment(unsigned NumBits, const GlobalValue *GV,
///
void AsmPrinter::EmitZeros(uint64_t NumZeros, unsigned AddrSpace) const {
if (NumZeros == 0) return;
- if (MAI->getZeroDirective()) {
- O << MAI->getZeroDirective() << NumZeros << '\n';
+ if (MAI->getZeroDirective() || AddrSpace == 0) {
+ OutStreamer.EmitFill(NumZeros);
} else {
for (; NumZeros; --NumZeros)
O << MAI->getData8bitsDirective(AddrSpace) << "0\n";
@@ -1417,13 +1417,11 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV, unsigned AddrSpace) {
const Type *type = CV->getType();
unsigned Size = TD->getTypeAllocSize(type);
- if (CV->isNullValue() || isa<UndefValue>(CV)) {
- EmitZeros(Size, AddrSpace);
- return;
- }
+ if (CV->isNullValue() || isa<UndefValue>(CV))
+ return EmitZeros(Size, AddrSpace);
if (const ConstantArray *CVA = dyn_cast<ConstantArray>(CV)) {
- EmitGlobalConstantArray(CVA , AddrSpace);
+ EmitGlobalConstantArray(CVA, AddrSpace);
return;
}
OpenPOWER on IntegriCloud