[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp

Chris Lattner lattner at cs.uiuc.edu
Thu Aug 18 10:17:04 PDT 2005



Changes in directory llvm/lib/Target/PowerPC:

PPC32ISelPattern.cpp updated: 1.150 -> 1.151
---
Log message:

replace switch stmt with an assert, generate li 0 instead of lis 0 for 0,
to make the code follow people's expectations better.


---
Diffs of the changes:  (+15 -18)

 PPC32ISelPattern.cpp |   33 +++++++++++++++------------------
 1 files changed, 15 insertions(+), 18 deletions(-)


Index: llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp
diff -u llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp:1.150 llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp:1.151
--- llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp:1.150	Thu Aug 18 10:52:30 2005
+++ llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp	Thu Aug 18 12:16:52 2005
@@ -1732,26 +1732,23 @@
     return Result;
   }
 
-  case ISD::Constant:
-    switch (N.getValueType()) {
-    default: assert(0 && "Cannot use constants of this type!");
-    case MVT::i32:
-      {
-        int v = (int)cast<ConstantSDNode>(N)->getSignExtended();
-        unsigned Hi = Hi16(v);
-        unsigned Lo = Lo16(v);
-        if (Hi && Lo) {
-          Tmp1 = MakeIntReg();
-          BuildMI(BB, PPC::LIS, 1, Tmp1).addSImm(Hi);
-          BuildMI(BB, PPC::ORI, 2, Result).addReg(Tmp1).addImm(Lo);
-        } else if (Lo) {
-          BuildMI(BB, PPC::LI, 1, Result).addSImm(Lo);
-        } else {
-          BuildMI(BB, PPC::LIS, 1, Result).addSImm(Hi);
-        }
-      }
+  case ISD::Constant: {
+    assert(N.getValueType() == MVT::i32 &&
+           "Only i32 constants are legal on this target!");
+    int v = (int)cast<ConstantSDNode>(N)->getValue();
+    unsigned Hi = Hi16(v);
+    unsigned Lo = Lo16(v);
+    if (Hi && Lo) {
+      Tmp1 = MakeIntReg();
+      BuildMI(BB, PPC::LIS, 1, Tmp1).addSImm(Hi);
+      BuildMI(BB, PPC::ORI, 2, Result).addReg(Tmp1).addImm(Lo);
+    } else if (Hi) {
+      BuildMI(BB, PPC::LIS, 1, Result).addSImm(Hi);
+    } else {
+      BuildMI(BB, PPC::LI, 1, Result).addSImm(Lo);
     }
     return Result;
+  }
 
   case ISD::ConstantFP: {
     ConstantFPSDNode *CN = cast<ConstantFPSDNode>(N);






More information about the llvm-commits mailing list