[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCInstrInfo.td

Chris Lattner lattner at cs.uiuc.edu
Thu Nov 17 09:52:12 PST 2005



Changes in directory llvm/lib/Target/PowerPC:

PPCInstrInfo.td updated: 1.141 -> 1.142
---
Log message:

Generate LA and ADDIS when possible.


---
Diffs of the changes:  (+6 -4)

 PPCInstrInfo.td |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)


Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td
diff -u llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.141 llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.142
--- llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.141	Thu Nov 17 01:30:41 2005
+++ llvm/lib/Target/PowerPC/PPCInstrInfo.td	Thu Nov 17 11:52:01 2005
@@ -256,7 +256,8 @@
                      [(set GPRC:$rD, (add GPRC:$rA, imm16Shifted:$imm))]>;
 def LA     : DForm_2<14, (ops GPRC:$rD, GPRC:$rA, symbolLo:$sym),
                      "la $rD, $sym($rA)", IntGeneral,
-                     []>;
+                     [(set GPRC:$rD, (add GPRC:$rA,
+                                          (PPClo tglobaladdr:$sym, 0)))]>;
 def MULLI  : DForm_2< 7, (ops GPRC:$rD, GPRC:$rA, s16imm:$imm),
                      "mulli $rD, $rA, $imm", IntMulLI,
                      [(set GPRC:$rD, (mul GPRC:$rA, immSExt16:$imm))]>;
@@ -786,9 +787,10 @@
           (RLDICL G8RC:$in, (SRL64 imm:$imm), imm:$imm)>;
 
 // Hi and Lo for Darwin Global Addresses.
-def : Pat<(PPChi tglobaladdr:$in, (i32 0)), (LIS node:$in)>;
-def : Pat<(PPClo tglobaladdr:$in, (i32 0)), (LI node:$in)>;
-
+def : Pat<(PPChi tglobaladdr:$in, (i32 0)), (LIS tglobaladdr:$in)>;
+def : Pat<(PPClo tglobaladdr:$in, (i32 0)), (LI tglobaladdr:$in)>;
+def : Pat<(add GPRC:$in, (PPChi tglobaladdr:$g, 0)),
+          (ADDIS GPRC:$in, tglobaladdr:$g)>;
 
 // Same as above, but using a temporary. FIXME: implement temporaries :)
 /*






More information about the llvm-commits mailing list