Fix a problem where the PPC backend lost track of the fact that it had
authorChris Lattner <sabre@nondot.org>
Tue, 15 Feb 2005 20:26:49 +0000 (20:26 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 15 Feb 2005 20:26:49 +0000 (20:26 +0000)
to save and restore the LR register on entry and exit of a leaf function
that needed to access globals or the constant pool.  This should hopefully
fix oscar from sending the PPC tester spinning out of control.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20197 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCInstrInfo.td

index e134696f7581d9fbc1429c6243429886d8ff627f..4a1afed93d1c7a4907af897c74ba0dec8f19bfef 100644 (file)
@@ -53,7 +53,9 @@ def ADJCALLSTACKDOWN : Pseudo<(ops), "; ADJCALLSTACKDOWN">;
 def ADJCALLSTACKUP : Pseudo<(ops), "; ADJCALLSTACKUP">;
 }
 def IMPLICIT_DEF : Pseudo<(ops), "; IMPLICIT_DEF">;
-def MovePCtoLR : Pseudo<(ops piclabel:$label), "bl $label">;
+
+let Defs = [LR] in
+  def MovePCtoLR : Pseudo<(ops piclabel:$label), "bl $label">;
 
 let isBranch = 1, isTerminator = 1 in {
   def COND_BRANCH : Pseudo<(ops), "; COND_BRANCH">;