CellSPU: Relax constraints on when to generate a X-form address, evidently
authorScott Michel <scottm@aero.org>
Tue, 25 Nov 2008 04:03:47 +0000 (04:03 +0000)
committerScott Michel <scottm@aero.org>
Tue, 25 Nov 2008 04:03:47 +0000 (04:03 +0000)
they were too tight according to bug 3126.

Fix bug 3126.

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

lib/Target/CellSPU/SPUISelDAGToDAG.cpp

index 4fbd5bb467a35dd0b9ef7993f5653f852485d036..159da4639f253d316b3a151359ac9459cb41b016 100644 (file)
@@ -591,6 +591,7 @@ SPUDAGToDAGISel::SelectXFormAddr(SDValue Op, SDValue N, SDValue &Base,
                                  SDValue &Index) {
   if (!SelectAFormAddr(Op, N, Base, Index)
       && !SelectDFormAddr(Op, N, Base, Index)) {
+#if 0
     // Default form of a X-form address is r(r) in operands 0 and 1:
     SDValue Op0 = N.getOperand(0);
     SDValue Op1 = N.getOperand(1);
@@ -611,6 +612,12 @@ SPUDAGToDAGISel::SelectXFormAddr(SDValue Op, SDValue N, SDValue &Base,
 
       return true;
     }
+#else
+    // All else fails, punt and use an X-form address:
+    Base = N.getOperand(0);
+    Index = N.getOperand(1);
+    return true;
+#endif
   }
 
   return false;