diff options
author | Chris Lattner <sabre@nondot.org> | 2005-02-15 20:26:49 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-02-15 20:26:49 +0000 |
commit | 7a823bd01fafa9393c6aa1e8ded163b9fd8266be (patch) | |
tree | da03dee6bd8c844675ac5438b3d985e4e37c2ba4 | |
parent | 7a0c775044463514fc90cc135ee9c79a321ad093 (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.td | 4 |
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">; |