This is another cleanup patch for 64-bit PowerPC TLS processing. I had
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Thu, 13 Dec 2012 20:57:10 +0000 (20:57 +0000)
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>
Thu, 13 Dec 2012 20:57:10 +0000 (20:57 +0000)
some hackery in place that hid my poor use of TblGen, which I've now sorted
out and cleaned up.  No change in observable behavior, so no new test cases.

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

lib/Target/PowerPC/PPCISelDAGToDAG.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCInstr64Bit.td

index 806c44492705f8c1e65a749ee35696c303bb9d54..c7c265ce783917dcd11309af04d0e79ad120454a 100644 (file)
@@ -1311,53 +1311,6 @@ SDNode *PPCDAGToDAGISel::Select(SDNode *N) {
     return CurDAG->getMachineNode(PPC::ADDItocL, dl, MVT::i64,
                                   SDValue(Tmp, 0), GA);
   }
-  case PPCISD::LD_GOT_TPREL: {
-    assert (PPCSubTarget.isPPC64() && "Only supported for 64-bit ABI");
-    return CurDAG->getMachineNode(PPC::LDgotTPREL, dl, MVT::i64, 
-                                  N->getOperand(0), N->getOperand(1));
-  }
-  // FIXME: Try without these.  Doesn't seem necessary.
-  case PPCISD::ADDIS_TLSGD_HA: {
-    assert (PPCSubTarget.isPPC64() && "Only supported for 64-bit ABI");
-    return CurDAG->getMachineNode(PPC::ADDIStlsgdHA, dl, MVT::i64,
-                                  N->getOperand(0), N->getOperand(1));
-  }
-  case PPCISD::ADDI_TLSGD_L: {
-    assert (PPCSubTarget.isPPC64() && "Only supported for 64-bit ABI");
-    return CurDAG->getMachineNode(PPC::ADDItlsgdL, dl, MVT::i64,
-                                  N->getOperand(0), N->getOperand(1));
-  }
-  case PPCISD::GET_TLS_ADDR: {
-    assert (PPCSubTarget.isPPC64() && "Only supported for 64-bit ABI");
-    return CurDAG->getMachineNode(PPC::GETtlsADDR, dl, MVT::i64,
-                                  N->getOperand(0), N->getOperand(1));
-  }
-  case PPCISD::ADDIS_TLSLD_HA: {
-    assert (PPCSubTarget.isPPC64() && "Only supported for 64-bit ABI");
-    return CurDAG->getMachineNode(PPC::ADDIStlsldHA, dl, MVT::i64,
-                                  N->getOperand(0), N->getOperand(1));
-  }
-  case PPCISD::ADDI_TLSLD_L: {
-    assert (PPCSubTarget.isPPC64() && "Only supported for 64-bit ABI");
-    return CurDAG->getMachineNode(PPC::ADDItlsldL, dl, MVT::i64,
-                                  N->getOperand(0), N->getOperand(1));
-  }
-  case PPCISD::GET_TLSLD_ADDR: {
-    assert (PPCSubTarget.isPPC64() && "Only supported for 64-bit ABI");
-    return CurDAG->getMachineNode(PPC::GETtlsldADDR, dl, MVT::i64,
-                                  N->getOperand(0), N->getOperand(1));
-  }
-  case PPCISD::ADDIS_DTPREL_HA: {
-    assert (PPCSubTarget.isPPC64() && "Only supported for 64-bit ABI");
-    return CurDAG->getMachineNode(PPC::ADDISdtprelHA, dl, MVT::i64,
-                                  N->getOperand(0), N->getOperand(1),
-                                  N->getOperand(2));
-  }
-  case PPCISD::ADDI_DTPREL_L: {
-    assert (PPCSubTarget.isPPC64() && "Only supported for 64-bit ABI");
-    return CurDAG->getMachineNode(PPC::ADDIdtprelL, dl, MVT::i64,
-                                  N->getOperand(0), N->getOperand(1));
-  }
   }
 
   return SelectCode(N);
index 0748bd53a8c6f10b4d0f7045a988583a4c0edd86..110ed6ef1106372f901afb4fe0d8091dcc9e8a54 100644 (file)
@@ -1402,7 +1402,7 @@ SDValue PPCTargetLowering::LowerGlobalTLSAddress(SDValue Op,
     // copies dissolve during subsequent transforms.
     Chain = DAG.getCopyToReg(Chain, dl, PPC::X3, TLSAddr);
     SDValue DtvOffsetHi = DAG.getNode(PPCISD::ADDIS_DTPREL_HA, dl, PtrVT,
-                                      ParmReg, TGA, Chain);
+                                      Chain, ParmReg, TGA);
     return DAG.getNode(PPCISD::ADDI_DTPREL_L, dl, PtrVT, DtvOffsetHi, TGA);
   }
 
index 429c60b742a58b880216d1fb549cb8af38a019ce..06520b19f9a488833b94d9b940af09bd26d70c13 100644 (file)
@@ -723,49 +723,50 @@ def ADDItocL: Pseudo<(outs G8RC:$rD), (ins G8RC:$reg, tocentry:$disp),
 def LDgotTPREL: Pseudo<(outs G8RC:$rD), (ins tlsaddr:$disp, G8RC:$reg),
                        "#LDgotTPREL",
                        [(set G8RC:$rD,
-                         (PPCldGotTprel G8RC:$reg, tglobaltlsaddr:$disp))]>,
+                         (PPCldGotTprel tglobaltlsaddr:$disp, G8RC:$reg))]>,
                       isPPC64;
 def : Pat<(PPCaddTls G8RC:$in, tglobaltlsaddr:$g),
           (ADD8TLS G8RC:$in, tglobaltlsaddr:$g)>;
 def ADDIStlsgdHA: Pseudo<(outs G8RC:$rD), (ins G8RC:$reg, symbolHi64:$disp),
                          "#ADDIStlsgdHA",
                          [(set G8RC:$rD,
-                           (PPCaddisTlsgdHA G8RC:$reg, tglobaladdr:$disp))]>,
+                           (PPCaddisTlsgdHA G8RC:$reg, tglobaltlsaddr:$disp))]>,
                   isPPC64;
 def ADDItlsgdL : Pseudo<(outs G8RC:$rD), (ins G8RC:$reg, symbolLo64:$disp),
                        "#ADDItlsgdL",
                        [(set G8RC:$rD,
-                         (PPCaddiTlsgdL G8RC:$reg, tglobaladdr:$disp))]>,
+                         (PPCaddiTlsgdL G8RC:$reg, tglobaltlsaddr:$disp))]>,
                  isPPC64;
 def GETtlsADDR : Pseudo<(outs G8RC:$rD), (ins G8RC:$reg, tlsgd:$sym),
                         "#GETtlsADDR",
                         [(set G8RC:$rD,
-                          (PPCgetTlsAddr G8RC:$reg, tglobaladdr:$sym))]>,
+                          (PPCgetTlsAddr G8RC:$reg, tglobaltlsaddr:$sym))]>,
                  isPPC64;
 def ADDIStlsldHA: Pseudo<(outs G8RC:$rD), (ins G8RC:$reg, symbolHi64:$disp),
                          "#ADDIStlsldHA",
                          [(set G8RC:$rD,
-                           (PPCaddisTlsldHA G8RC:$reg, tglobaladdr:$disp))]>,
+                           (PPCaddisTlsldHA G8RC:$reg, tglobaltlsaddr:$disp))]>,
                   isPPC64;
 def ADDItlsldL : Pseudo<(outs G8RC:$rD), (ins G8RC:$reg, symbolLo64:$disp),
                        "#ADDItlsldL",
                        [(set G8RC:$rD,
-                         (PPCaddiTlsldL G8RC:$reg, tglobaladdr:$disp))]>,
+                         (PPCaddiTlsldL G8RC:$reg, tglobaltlsaddr:$disp))]>,
                  isPPC64;
 def GETtlsldADDR : Pseudo<(outs G8RC:$rD), (ins G8RC:$reg, tlsgd:$sym),
                           "#GETtlsldADDR",
                           [(set G8RC:$rD,
-                            (PPCgetTlsldAddr G8RC:$reg, tglobaladdr:$sym))]>,
+                            (PPCgetTlsldAddr G8RC:$reg, tglobaltlsaddr:$sym))]>,
                    isPPC64;
 def ADDISdtprelHA: Pseudo<(outs G8RC:$rD), (ins G8RC:$reg, symbolHi64:$disp),
                           "#ADDISdtprelHA",
                           [(set G8RC:$rD,
-                            (PPCaddisDtprelHA G8RC:$reg, tglobaladdr:$disp))]>,
+                            (PPCaddisDtprelHA G8RC:$reg,
+                                              tglobaltlsaddr:$disp))]>,
                    isPPC64;
 def ADDIdtprelL : Pseudo<(outs G8RC:$rD), (ins G8RC:$reg, symbolLo64:$disp),
                          "#ADDIdtprelL",
                          [(set G8RC:$rD,
-                           (PPCaddiDtprelL G8RC:$reg, tglobaladdr:$disp))]>,
+                           (PPCaddiDtprelL G8RC:$reg, tglobaltlsaddr:$disp))]>,
                   isPPC64;
 
 let PPC970_Unit = 2 in {