Fix stores to global addresses
Fix calls with no arguments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20975 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/PowerPC/PPCISelPattern.cpp b/lib/Target/PowerPC/PPCISelPattern.cpp
index 3acd5db..9b70f3d 100644
--- a/lib/Target/PowerPC/PPCISelPattern.cpp
+++ b/lib/Target/PowerPC/PPCISelPattern.cpp
@@ -210,7 +210,8 @@
   unsigned NumBytes = 24;
 
   if (Args.empty()) {
-    NumBytes = 0;    // Save zero bytes.
+    Chain = DAG.getNode(ISD::ADJCALLSTACKDOWN, MVT::Other, Chain,
+                        DAG.getConstant(NumBytes, getPointerTy()));
   } else {
     for (unsigned i = 0, e = Args.size(); i != e; ++i)
       switch (getValueType(Args[i].second)) {
@@ -1545,12 +1546,7 @@
         }
       }
 
-      if (Address.getOpcode() == ISD::GlobalAddress)
-      {
-        BuildMI(BB, Opc, 2).addReg(Tmp1)
-          .addGlobalAddress(cast<GlobalAddressSDNode>(Address)->getGlobal());
-      }
-      else if(Address.getOpcode() == ISD::FrameIndex)
+      if(Address.getOpcode() == ISD::FrameIndex)
       {
         Tmp2 = cast<FrameIndexSDNode>(Address)->getIndex();
         addFrameReference(BuildMI(BB, Opc, 3).addReg(Tmp1), (int)Tmp2);