aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-02-15 20:26:49 +0000
committerChris Lattner <sabre@nondot.org>2005-02-15 20:26:49 +0000
commit7a823bd01fafa9393c6aa1e8ded163b9fd8266be (patch)
treeda03dee6bd8c844675ac5438b3d985e4e37c2ba4
parent7a0c775044463514fc90cc135ee9c79a321ad093 (diff)
Fix a problem where the PPC backend lost track of the fact that it had
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
-rw-r--r--lib/Target/PowerPC/PPCInstrInfo.td4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td
index e134696f75..4a1afed93d 100644
--- a/lib/Target/PowerPC/PPCInstrInfo.td
+++ b/lib/Target/PowerPC/PPCInstrInfo.td
@@ -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">;