Index: llvm/lib/Target/SystemZ/SystemZISelLowering.cpp =================================================================== --- llvm/lib/Target/SystemZ/SystemZISelLowering.cpp +++ llvm/lib/Target/SystemZ/SystemZISelLowering.cpp @@ -3094,12 +3094,14 @@ EVT PtrVT = getPointerTy(DAG.getDataLayout()); // The high part of the thread pointer is in access register 0. - SDValue TPHi = DAG.getCopyFromReg(Chain, DL, SystemZ::A0, MVT::i32); - TPHi = DAG.getNode(ISD::ANY_EXTEND, DL, PtrVT, TPHi); + SDNode *AR0 = DAG.getMachineNode(SystemZ::EAR, DL, MVT::i32, + DAG.getRegister(SystemZ::A0, MVT::i32)); + SDValue TPHi = DAG.getNode(ISD::ANY_EXTEND, DL, PtrVT, SDValue(AR0, 0)); // The low part of the thread pointer is in access register 1. - SDValue TPLo = DAG.getCopyFromReg(Chain, DL, SystemZ::A1, MVT::i32); - TPLo = DAG.getNode(ISD::ZERO_EXTEND, DL, PtrVT, TPLo); + SDNode *AR1 = DAG.getMachineNode(SystemZ::EAR, DL, MVT::i32, + DAG.getRegister(SystemZ::A1, MVT::i32)); + SDValue TPLo = DAG.getNode(ISD::ZERO_EXTEND, DL, PtrVT, SDValue(AR1, 0)); // Merge them into a single 64-bit address. SDValue TPHiShifted = DAG.getNode(ISD::SHL, DL, PtrVT, TPHi,