I forgot that sparc no longer uses the shared asmwriter.  Give it support
for undef.

llvm-svn: 17075
diff --git a/llvm/lib/Target/SparcV9/SparcV9AsmPrinter.cpp b/llvm/lib/Target/SparcV9/SparcV9AsmPrinter.cpp
index 1c0d1c0..8000a01 100644
--- a/llvm/lib/Target/SparcV9/SparcV9AsmPrinter.cpp
+++ b/llvm/lib/Target/SparcV9/SparcV9AsmPrinter.cpp
@@ -323,7 +323,9 @@
     O << ConstantExprToString(CE, TM) << "\n";
   } else if (CV->getType()->isPrimitiveType()) {
     // Check primitive types last
-    if (CV->getType()->isFloatingPoint()) {
+    if (isa<UndefValue>(CV)) {
+      O << "0\n";
+    } else if (CV->getType()->isFloatingPoint()) {
       // FP Constants are printed as integer constants to avoid losing
       // precision...
       double Val = cast<ConstantFP>(CV)->getValue();
@@ -385,7 +387,7 @@
     }
     assert(sizeSoFar == cvsLayout->StructSize &&
            "Layout of constant struct may be incorrect!");
-  } else if (isa<ConstantAggregateZero>(CV)) {
+  } else if (isa<ConstantAggregateZero>(CV) || isa<UndefValue>(CV)) {
     PrintZeroBytesToPad(TM.getTargetData().getTypeSize(CV->getType()));
   } else
     printSingleConstantValue(CV);