diff options
Diffstat (limited to 'lib/Target/PowerPC/PPCISelDAGToDAG.cpp')
| -rw-r--r-- | lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index abcaa9c..6a98c3f 100644 --- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -1316,6 +1316,22 @@ SDNode *PPCDAGToDAGISel::Select(SDNode *N) { 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)); + } } return SelectCode(N); |
