Lines Matching refs:DL

587   SDLoc DL(N);  in performDivRemCombine()  local
589 SDValue DivRem = DAG.getNode(Opc, DL, MVT::Glue, in performDivRemCombine()
596 SDValue CopyFromLo = DAG.getCopyFromReg(InChain, DL, LO, Ty, in performDivRemCombine()
605 SDValue CopyFromHi = DAG.getCopyFromReg(InChain, DL, in performDivRemCombine()
664 SDLoc DL(Op); in createFPCmp() local
670 return DAG.getNode(MipsISD::FPCmp, DL, MVT::Glue, LHS, RHS, in createFPCmp()
671 DAG.getConstant(condCodeToFCC(CC), DL, MVT::i32)); in createFPCmp()
676 SDValue False, const SDLoc &DL) { in createCMovFP() argument
681 return DAG.getNode((invert ? MipsISD::CMovFP_F : MipsISD::CMovFP_T), DL, in createCMovFP()
715 const SDLoc DL(N); in performSELECTCombine() local
721 SetCC = DAG.getSetCC(DL, SetCC.getValueType(), SetCC.getOperand(0), in performSELECTCombine()
725 return DAG.getNode(ISD::SELECT, DL, FalseTy, SetCC, False, True); in performSELECTCombine()
748 return DAG.getNode(ISD::ADD, DL, SetCC.getValueType(), SetCC, False); in performSELECTCombine()
756 SetCC = DAG.getSetCC(DL, SetCC.getValueType(), SetCC.getOperand(0), in performSELECTCombine()
759 return DAG.getNode(ISD::ADD, DL, SetCC.getValueType(), SetCC, True); in performSELECTCombine()
803 SDLoc DL(N); in performANDCombine() local
871 return DAG.getNode(Opc, DL, ValTy, NewOperand, in performANDCombine()
872 DAG.getConstant(Pos, DL, MVT::i32), in performANDCombine()
873 DAG.getConstant(SMSize, DL, MVT::i32)); in performANDCombine()
923 SDLoc DL(N); in performORCombine() local
924 return DAG.getNode(MipsISD::Ins, DL, ValTy, Shl.getOperand(0), in performORCombine()
925 DAG.getConstant(SMPos0, DL, MVT::i32), in performORCombine()
926 DAG.getConstant(SMSize0, DL, MVT::i32), in performORCombine()
950 SDLoc DL(N); in performORCombine() local
955 Const1 = DAG.getConstant(SMPos0, DL, MVT::i32); in performORCombine()
956 SrlX = DAG.getNode(ISD::SRL, DL, And1->getValueType(0), And1, Const1); in performORCombine()
959 MipsISD::Ins, DL, N->getValueType(0), in performORCombine()
961 ? DAG.getConstant(CN1->getSExtValue() >> SMPos0, DL, ValTy) in performORCombine()
963 DAG.getConstant(SMPos0, DL, MVT::i32), in performORCombine()
966 DL, MVT::i32), in performORCombine()
1046 SDLoc DL(ROOTNode); in performMADD_MSUBCombine() local
1049 CurDAG.SplitScalar(AddOperand, DL, MVT::i32, MVT::i32); in performMADD_MSUBCombine()
1051 CurDAG.getNode(MipsISD::MTLOHI, DL, MVT::Untyped, BottomHalf, TopHalf); in performMADD_MSUBCombine()
1058 CurDAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Mult->getOperand(0)), in performMADD_MSUBCombine()
1059 CurDAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Mult->getOperand(1)), ACCIn}; in performMADD_MSUBCombine()
1061 SDValue MAdd = CurDAG.getNode(Opcode, DL, VTs, MAddOps); in performMADD_MSUBCombine()
1063 SDValue ResLo = CurDAG.getNode(MipsISD::MFLO, DL, MVT::i32, MAdd); in performMADD_MSUBCombine()
1064 SDValue ResHi = CurDAG.getNode(MipsISD::MFHI, DL, MVT::i32, MAdd); in performMADD_MSUBCombine()
1066 CurDAG.getNode(ISD::BUILD_PAIR, DL, MVT::i64, ResLo, ResHi); in performMADD_MSUBCombine()
1110 SDLoc DL(N); in performADDCombine() local
1112 SDValue Add1 = DAG.getNode(ISD::ADD, DL, ValTy, N->getOperand(0), in performADDCombine()
1114 return DAG.getNode(ISD::ADD, DL, ValTy, Add1, Lo); in performADDCombine()
1131 SDLoc DL(N); in performSHLCombine() local
1164 return DAG.getNode(MipsISD::CIns, DL, ValTy, NewOperand, in performSHLCombine()
1165 DAG.getConstant(Pos, DL, MVT::i32), in performSHLCombine()
1166 DAG.getConstant(SMSize, DL, MVT::i32)); in performSHLCombine()
1494 DebugLoc DL = MI.getDebugLoc(); in emitAtomicBinary() local
1622 BuildMI(*BB, II, DL, TII->get(Mips::COPY), IncrCopy).addReg(Incr); in emitAtomicBinary()
1623 BuildMI(*BB, II, DL, TII->get(Mips::COPY), PtrCopy).addReg(Ptr); in emitAtomicBinary()
1626 BuildMI(*BB, II, DL, TII->get(AtomicOp)) in emitAtomicBinary()
1648 const DebugLoc &DL = MI.getDebugLoc(); in emitSignExtendToI32InReg() local
1651 BuildMI(BB, DL, TII->get(Mips::SEB), DstReg).addReg(SrcReg); in emitSignExtendToI32InReg()
1656 BuildMI(BB, DL, TII->get(Mips::SEH), DstReg).addReg(SrcReg); in emitSignExtendToI32InReg()
1668 BuildMI(BB, DL, TII->get(Mips::SLL), ScrReg).addReg(SrcReg).addImm(ShiftImm); in emitSignExtendToI32InReg()
1669 BuildMI(BB, DL, TII->get(Mips::SRA), DstReg).addReg(ScrReg).addImm(ShiftImm); in emitSignExtendToI32InReg()
1686 DebugLoc DL = MI.getDebugLoc(); in emitAtomicBinaryPartword() local
1809 BuildMI(BB, DL, TII->get(ABI.GetPtrAddiuOp()), MaskLSB2) in emitAtomicBinaryPartword()
1811 BuildMI(BB, DL, TII->get(ABI.GetPtrAndOp()), AlignedAddr) in emitAtomicBinaryPartword()
1813 BuildMI(BB, DL, TII->get(Mips::ANDi), PtrLSB2) in emitAtomicBinaryPartword()
1816 BuildMI(BB, DL, TII->get(Mips::SLL), ShiftAmt).addReg(PtrLSB2).addImm(3); in emitAtomicBinaryPartword()
1819 BuildMI(BB, DL, TII->get(Mips::XORi), Off) in emitAtomicBinaryPartword()
1821 BuildMI(BB, DL, TII->get(Mips::SLL), ShiftAmt).addReg(Off).addImm(3); in emitAtomicBinaryPartword()
1823 BuildMI(BB, DL, TII->get(Mips::ORi), MaskUpper) in emitAtomicBinaryPartword()
1825 BuildMI(BB, DL, TII->get(Mips::SLLV), Mask) in emitAtomicBinaryPartword()
1827 BuildMI(BB, DL, TII->get(Mips::NOR), Mask2).addReg(Mips::ZERO).addReg(Mask); in emitAtomicBinaryPartword()
1828 BuildMI(BB, DL, TII->get(Mips::SLLV), Incr2).addReg(Incr).addReg(ShiftAmt); in emitAtomicBinaryPartword()
1836 BuildMI(BB, DL, TII->get(AtomicOp)) in emitAtomicBinaryPartword()
1879 DebugLoc DL = MI.getDebugLoc(); in emitAtomicCmpSwap() local
1901 BuildMI(*BB, II, DL, TII->get(Mips::COPY), PtrCopy).addReg(Ptr); in emitAtomicCmpSwap()
1902 BuildMI(*BB, II, DL, TII->get(Mips::COPY), OldValCopy).addReg(OldVal); in emitAtomicCmpSwap()
1903 BuildMI(*BB, II, DL, TII->get(Mips::COPY), NewValCopy).addReg(NewVal); in emitAtomicCmpSwap()
1909 BuildMI(*BB, II, DL, TII->get(AtomicOp)) in emitAtomicCmpSwap()
1934 DebugLoc DL = MI.getDebugLoc(); in emitAtomicCmpSwapPartword() local
1996 BuildMI(BB, DL, TII->get(ArePtrs64bit ? Mips::DADDiu : Mips::ADDiu), MaskLSB2) in emitAtomicCmpSwapPartword()
1998 BuildMI(BB, DL, TII->get(ArePtrs64bit ? Mips::AND64 : Mips::AND), AlignedAddr) in emitAtomicCmpSwapPartword()
2000 BuildMI(BB, DL, TII->get(Mips::ANDi), PtrLSB2) in emitAtomicCmpSwapPartword()
2003 BuildMI(BB, DL, TII->get(Mips::SLL), ShiftAmt).addReg(PtrLSB2).addImm(3); in emitAtomicCmpSwapPartword()
2006 BuildMI(BB, DL, TII->get(Mips::XORi), Off) in emitAtomicCmpSwapPartword()
2008 BuildMI(BB, DL, TII->get(Mips::SLL), ShiftAmt).addReg(Off).addImm(3); in emitAtomicCmpSwapPartword()
2010 BuildMI(BB, DL, TII->get(Mips::ORi), MaskUpper) in emitAtomicCmpSwapPartword()
2012 BuildMI(BB, DL, TII->get(Mips::SLLV), Mask) in emitAtomicCmpSwapPartword()
2014 BuildMI(BB, DL, TII->get(Mips::NOR), Mask2).addReg(Mips::ZERO).addReg(Mask); in emitAtomicCmpSwapPartword()
2015 BuildMI(BB, DL, TII->get(Mips::ANDi), MaskedCmpVal) in emitAtomicCmpSwapPartword()
2017 BuildMI(BB, DL, TII->get(Mips::SLLV), ShiftedCmpVal) in emitAtomicCmpSwapPartword()
2019 BuildMI(BB, DL, TII->get(Mips::ANDi), MaskedNewVal) in emitAtomicCmpSwapPartword()
2021 BuildMI(BB, DL, TII->get(Mips::SLLV), ShiftedNewVal) in emitAtomicCmpSwapPartword()
2028 BuildMI(BB, DL, TII->get(AtomicOp)) in emitAtomicCmpSwapPartword()
2051 SDLoc DL(Op); in lowerBRCOND() local
2063 SDValue BrCode = DAG.getConstant(Opc, DL, MVT::i32); in lowerBRCOND()
2065 return DAG.getNode(MipsISD::FPBrcond, DL, Op.getValueType(), Chain, BrCode, in lowerBRCOND()
2090 SDLoc DL(Op); in lowerSETCC() local
2091 SDValue True = DAG.getConstant(1, DL, MVT::i32); in lowerSETCC()
2092 SDValue False = DAG.getConstant(0, DL, MVT::i32); in lowerSETCC()
2094 return createCMovFP(DAG, Cond, True, False, DL); in lowerSETCC()
2167 SDLoc DL(GA); in lowerGlobalTLSAddress() local
2178 SDValue TGA = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, Flag); in lowerGlobalTLSAddress()
2179 SDValue Argument = DAG.getNode(MipsISD::Wrapper, DL, PtrVT, in lowerGlobalTLSAddress()
2193 CLI.setDebugLoc(DL) in lowerGlobalTLSAddress()
2203 SDValue TGAHi = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, in lowerGlobalTLSAddress()
2205 SDValue Hi = DAG.getNode(MipsISD::TlsHi, DL, PtrVT, TGAHi); in lowerGlobalTLSAddress()
2206 SDValue TGALo = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, in lowerGlobalTLSAddress()
2208 SDValue Lo = DAG.getNode(MipsISD::Lo, DL, PtrVT, TGALo); in lowerGlobalTLSAddress()
2209 SDValue Add = DAG.getNode(ISD::ADD, DL, PtrVT, Hi, Ret); in lowerGlobalTLSAddress()
2210 return DAG.getNode(ISD::ADD, DL, PtrVT, Add, Lo); in lowerGlobalTLSAddress()
2216 SDValue TGA = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, in lowerGlobalTLSAddress()
2218 TGA = DAG.getNode(MipsISD::Wrapper, DL, PtrVT, getGlobalReg(DAG, PtrVT), in lowerGlobalTLSAddress()
2221 DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), TGA, MachinePointerInfo()); in lowerGlobalTLSAddress()
2225 SDValue TGAHi = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, in lowerGlobalTLSAddress()
2227 SDValue TGALo = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, in lowerGlobalTLSAddress()
2229 SDValue Hi = DAG.getNode(MipsISD::TlsHi, DL, PtrVT, TGAHi); in lowerGlobalTLSAddress()
2230 SDValue Lo = DAG.getNode(MipsISD::Lo, DL, PtrVT, TGALo); in lowerGlobalTLSAddress()
2231 Offset = DAG.getNode(ISD::ADD, DL, PtrVT, Hi, Lo); in lowerGlobalTLSAddress()
2234 SDValue ThreadPointer = DAG.getNode(MipsISD::ThreadPointer, DL, PtrVT); in lowerGlobalTLSAddress()
2235 return DAG.getNode(ISD::ADD, DL, PtrVT, ThreadPointer, Offset); in lowerGlobalTLSAddress()
2278 SDLoc DL(Op); in lowerVASTART() local
2285 return DAG.getStore(Op.getOperand(0), DL, FI, Op.getOperand(1), in lowerVASTART()
2297 SDLoc DL(Node); in lowerVAARG() local
2300 SDValue VAListLoad = DAG.getLoad(getPointerTy(DAG.getDataLayout()), DL, Chain, in lowerVAARG()
2313 ISD::ADD, DL, VAList.getValueType(), VAList, in lowerVAARG()
2314 DAG.getConstant(Align.value() - 1, DL, VAList.getValueType())); in lowerVAARG()
2317 ISD::AND, DL, VAList.getValueType(), VAList, in lowerVAARG()
2318 DAG.getConstant(-(int64_t)Align.value(), DL, VAList.getValueType())); in lowerVAARG()
2326 DAG.getNode(ISD::ADD, DL, VAList.getValueType(), VAList, in lowerVAARG()
2328 DL, VAList.getValueType())); in lowerVAARG()
2330 Chain = DAG.getStore(VAListLoad.getValue(1), DL, Tmp3, VAListPtr, in lowerVAARG()
2340 VAList = DAG.getNode(ISD::ADD, DL, VAListPtr.getValueType(), VAList, in lowerVAARG()
2341 DAG.getIntPtrConstant(Adjustment, DL)); in lowerVAARG()
2344 return DAG.getLoad(VT, DL, Chain, VAList, MachinePointerInfo()); in lowerVAARG()
2351 SDLoc DL(Op); in lowerFCOPYSIGN32() local
2352 SDValue Const1 = DAG.getConstant(1, DL, MVT::i32); in lowerFCOPYSIGN32()
2353 SDValue Const31 = DAG.getConstant(31, DL, MVT::i32); in lowerFCOPYSIGN32()
2359 DAG.getNode(ISD::BITCAST, DL, MVT::i32, Op.getOperand(0)) : in lowerFCOPYSIGN32()
2360 DAG.getNode(MipsISD::ExtractElementF64, DL, MVT::i32, Op.getOperand(0), in lowerFCOPYSIGN32()
2363 DAG.getNode(ISD::BITCAST, DL, MVT::i32, Op.getOperand(1)) : in lowerFCOPYSIGN32()
2364 DAG.getNode(MipsISD::ExtractElementF64, DL, MVT::i32, Op.getOperand(1), in lowerFCOPYSIGN32()
2370 SDValue E = DAG.getNode(MipsISD::Ext, DL, MVT::i32, Y, Const31, Const1); in lowerFCOPYSIGN32()
2371 Res = DAG.getNode(MipsISD::Ins, DL, MVT::i32, E, Const31, Const1, X); in lowerFCOPYSIGN32()
2378 SDValue SllX = DAG.getNode(ISD::SHL, DL, MVT::i32, X, Const1); in lowerFCOPYSIGN32()
2379 SDValue SrlX = DAG.getNode(ISD::SRL, DL, MVT::i32, SllX, Const1); in lowerFCOPYSIGN32()
2380 SDValue SrlY = DAG.getNode(ISD::SRL, DL, MVT::i32, Y, Const31); in lowerFCOPYSIGN32()
2381 SDValue SllY = DAG.getNode(ISD::SHL, DL, MVT::i32, SrlY, Const31); in lowerFCOPYSIGN32()
2382 Res = DAG.getNode(ISD::OR, DL, MVT::i32, SrlX, SllY); in lowerFCOPYSIGN32()
2386 return DAG.getNode(ISD::BITCAST, DL, Op.getOperand(0).getValueType(), Res); in lowerFCOPYSIGN32()
2388 SDValue LowX = DAG.getNode(MipsISD::ExtractElementF64, DL, MVT::i32, in lowerFCOPYSIGN32()
2390 DAG.getConstant(0, DL, MVT::i32)); in lowerFCOPYSIGN32()
2391 return DAG.getNode(MipsISD::BuildPairF64, DL, MVT::f64, LowX, Res); in lowerFCOPYSIGN32()
2399 SDLoc DL(Op); in lowerFCOPYSIGN64() local
2400 SDValue Const1 = DAG.getConstant(1, DL, MVT::i32); in lowerFCOPYSIGN64()
2403 SDValue X = DAG.getNode(ISD::BITCAST, DL, TyX, Op.getOperand(0)); in lowerFCOPYSIGN64()
2404 SDValue Y = DAG.getNode(ISD::BITCAST, DL, TyY, Op.getOperand(1)); in lowerFCOPYSIGN64()
2409 SDValue E = DAG.getNode(MipsISD::Ext, DL, TyY, Y, in lowerFCOPYSIGN64()
2410 DAG.getConstant(WidthY - 1, DL, MVT::i32), Const1); in lowerFCOPYSIGN64()
2413 E = DAG.getNode(ISD::ZERO_EXTEND, DL, TyX, E); in lowerFCOPYSIGN64()
2415 E = DAG.getNode(ISD::TRUNCATE, DL, TyX, E); in lowerFCOPYSIGN64()
2417 SDValue I = DAG.getNode(MipsISD::Ins, DL, TyX, E, in lowerFCOPYSIGN64()
2418 DAG.getConstant(WidthX - 1, DL, MVT::i32), Const1, in lowerFCOPYSIGN64()
2420 return DAG.getNode(ISD::BITCAST, DL, Op.getOperand(0).getValueType(), I); in lowerFCOPYSIGN64()
2428 SDValue SllX = DAG.getNode(ISD::SHL, DL, TyX, X, Const1); in lowerFCOPYSIGN64()
2429 SDValue SrlX = DAG.getNode(ISD::SRL, DL, TyX, SllX, Const1); in lowerFCOPYSIGN64()
2430 SDValue SrlY = DAG.getNode(ISD::SRL, DL, TyY, Y, in lowerFCOPYSIGN64()
2431 DAG.getConstant(WidthY - 1, DL, MVT::i32)); in lowerFCOPYSIGN64()
2434 SrlY = DAG.getNode(ISD::ZERO_EXTEND, DL, TyX, SrlY); in lowerFCOPYSIGN64()
2436 SrlY = DAG.getNode(ISD::TRUNCATE, DL, TyX, SrlY); in lowerFCOPYSIGN64()
2438 SDValue SllY = DAG.getNode(ISD::SHL, DL, TyX, SrlY, in lowerFCOPYSIGN64()
2439 DAG.getConstant(WidthX - 1, DL, MVT::i32)); in lowerFCOPYSIGN64()
2440 SDValue Or = DAG.getNode(ISD::OR, DL, TyX, SrlX, SllY); in lowerFCOPYSIGN64()
2441 return DAG.getNode(ISD::BITCAST, DL, Op.getOperand(0).getValueType(), Or); in lowerFCOPYSIGN64()
2454 SDLoc DL(Op); in lowerFABS32() local
2455 SDValue Res, Const1 = DAG.getConstant(1, DL, MVT::i32); in lowerFABS32()
2458 return DAG.getNode(MipsISD::FAbs, DL, Op.getValueType(), Op.getOperand(0)); in lowerFABS32()
2463 ? DAG.getNode(ISD::BITCAST, DL, MVT::i32, Op.getOperand(0)) in lowerFABS32()
2464 : DAG.getNode(MipsISD::ExtractElementF64, DL, MVT::i32, in lowerFABS32()
2469 Res = DAG.getNode(MipsISD::Ins, DL, MVT::i32, in lowerFABS32()
2471 DAG.getConstant(31, DL, MVT::i32), Const1, X); in lowerFABS32()
2475 SDValue SllX = DAG.getNode(ISD::SHL, DL, MVT::i32, X, Const1); in lowerFABS32()
2476 Res = DAG.getNode(ISD::SRL, DL, MVT::i32, SllX, Const1); in lowerFABS32()
2480 return DAG.getNode(ISD::BITCAST, DL, MVT::f32, Res); in lowerFABS32()
2487 DAG.getNode(MipsISD::ExtractElementF64, DL, MVT::i32, Op.getOperand(0), in lowerFABS32()
2488 DAG.getConstant(0, DL, MVT::i32)); in lowerFABS32()
2489 return DAG.getNode(MipsISD::BuildPairF64, DL, MVT::f64, LowX, Res); in lowerFABS32()
2494 SDLoc DL(Op); in lowerFABS64() local
2495 SDValue Res, Const1 = DAG.getConstant(1, DL, MVT::i32); in lowerFABS64()
2498 return DAG.getNode(MipsISD::FAbs, DL, Op.getValueType(), Op.getOperand(0)); in lowerFABS64()
2501 SDValue X = DAG.getNode(ISD::BITCAST, DL, MVT::i64, Op.getOperand(0)); in lowerFABS64()
2505 Res = DAG.getNode(MipsISD::Ins, DL, MVT::i64, in lowerFABS64()
2507 DAG.getConstant(63, DL, MVT::i32), Const1, X); in lowerFABS64()
2509 SDValue SllX = DAG.getNode(ISD::SHL, DL, MVT::i64, X, Const1); in lowerFABS64()
2510 Res = DAG.getNode(ISD::SRL, DL, MVT::i64, SllX, Const1); in lowerFABS64()
2513 return DAG.getNode(ISD::BITCAST, DL, MVT::f64, Res); in lowerFABS64()
2535 SDLoc DL(Op); in lowerFRAMEADDR() local
2537 DAG.getEntryNode(), DL, ABI.IsN64() ? Mips::FP_64 : Mips::FP, VT); in lowerFRAMEADDR()
2577 SDLoc DL(Op); in lowerEH_RETURN() local
2584 Chain = DAG.getCopyToReg(Chain, DL, OffsetReg, Offset, SDValue()); in lowerEH_RETURN()
2585 Chain = DAG.getCopyToReg(Chain, DL, AddrReg, Handler, Chain.getValue(1)); in lowerEH_RETURN()
2586 return DAG.getNode(MipsISD::EH_RETURN, DL, MVT::Other, Chain, in lowerEH_RETURN()
2597 SDLoc DL(Op); in lowerATOMIC_FENCE() local
2598 return DAG.getNode(MipsISD::Sync, DL, MVT::Other, Op.getOperand(0), in lowerATOMIC_FENCE()
2599 DAG.getConstant(SType, DL, MVT::i32)); in lowerATOMIC_FENCE()
2604 SDLoc DL(Op); in lowerShiftLeftParts() local
2616 DAG.getNode(ISD::XOR, DL, MVT::i32, Shamt, in lowerShiftLeftParts()
2617 DAG.getConstant(VT.getSizeInBits() - 1, DL, MVT::i32)); in lowerShiftLeftParts()
2618 SDValue ShiftRight1Lo = DAG.getNode(ISD::SRL, DL, VT, Lo, in lowerShiftLeftParts()
2619 DAG.getConstant(1, DL, VT)); in lowerShiftLeftParts()
2620 SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, VT, ShiftRight1Lo, Not); in lowerShiftLeftParts()
2621 SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, VT, Hi, Shamt); in lowerShiftLeftParts()
2622 SDValue Or = DAG.getNode(ISD::OR, DL, VT, ShiftLeftHi, ShiftRightLo); in lowerShiftLeftParts()
2623 SDValue ShiftLeftLo = DAG.getNode(ISD::SHL, DL, VT, Lo, Shamt); in lowerShiftLeftParts()
2624 SDValue Cond = DAG.getNode(ISD::AND, DL, MVT::i32, Shamt, in lowerShiftLeftParts()
2625 DAG.getConstant(VT.getSizeInBits(), DL, MVT::i32)); in lowerShiftLeftParts()
2626 Lo = DAG.getNode(ISD::SELECT, DL, VT, Cond, in lowerShiftLeftParts()
2627 DAG.getConstant(0, DL, VT), ShiftLeftLo); in lowerShiftLeftParts()
2628 Hi = DAG.getNode(ISD::SELECT, DL, VT, Cond, ShiftLeftLo, Or); in lowerShiftLeftParts()
2631 return DAG.getMergeValues(Ops, DL); in lowerShiftLeftParts()
2636 SDLoc DL(Op); in lowerShiftRightParts() local
2655 DAG.getNode(ISD::XOR, DL, MVT::i32, Shamt, in lowerShiftRightParts()
2656 DAG.getConstant(VT.getSizeInBits() - 1, DL, MVT::i32)); in lowerShiftRightParts()
2657 SDValue ShiftLeft1Hi = DAG.getNode(ISD::SHL, DL, VT, Hi, in lowerShiftRightParts()
2658 DAG.getConstant(1, DL, VT)); in lowerShiftRightParts()
2659 SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, VT, ShiftLeft1Hi, Not); in lowerShiftRightParts()
2660 SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, VT, Lo, Shamt); in lowerShiftRightParts()
2661 SDValue Or = DAG.getNode(ISD::OR, DL, VT, ShiftLeftHi, ShiftRightLo); in lowerShiftRightParts()
2663 DL, VT, Hi, Shamt); in lowerShiftRightParts()
2664 SDValue Cond = DAG.getNode(ISD::AND, DL, MVT::i32, Shamt, in lowerShiftRightParts()
2665 DAG.getConstant(VT.getSizeInBits(), DL, MVT::i32)); in lowerShiftRightParts()
2666 SDValue Ext = DAG.getNode(ISD::SRA, DL, VT, Hi, in lowerShiftRightParts()
2667 DAG.getConstant(VT.getSizeInBits() - 1, DL, VT)); in lowerShiftRightParts()
2673 DL, VTList, Cond, ShiftRightHi, in lowerShiftRightParts()
2674 IsSRA ? Ext : DAG.getConstant(0, DL, VT), Or, in lowerShiftRightParts()
2678 Lo = DAG.getNode(ISD::SELECT, DL, VT, Cond, ShiftRightHi, Or); in lowerShiftRightParts()
2679 Hi = DAG.getNode(ISD::SELECT, DL, VT, Cond, in lowerShiftRightParts()
2680 IsSRA ? Ext : DAG.getConstant(0, DL, VT), ShiftRightHi); in lowerShiftRightParts()
2683 return DAG.getMergeValues(Ops, DL); in lowerShiftRightParts()
2691 SDLoc DL(LD); in createLoadLR() local
2695 Ptr = DAG.getNode(ISD::ADD, DL, BasePtrVT, Ptr, in createLoadLR()
2696 DAG.getConstant(Offset, DL, BasePtrVT)); in createLoadLR()
2699 return DAG.getMemIntrinsicNode(Opc, DL, VTList, Ops, MemVT, in createLoadLR()
2760 SDLoc DL(LD); in lowerLOAD() local
2761 SDValue Const32 = DAG.getConstant(32, DL, MVT::i32); in lowerLOAD()
2762 SDValue SLL = DAG.getNode(ISD::SHL, DL, MVT::i64, LWR, Const32); in lowerLOAD()
2763 SDValue SRL = DAG.getNode(ISD::SRL, DL, MVT::i64, SLL, Const32); in lowerLOAD()
2765 return DAG.getMergeValues(Ops, DL); in lowerLOAD()
2772 SDLoc DL(SD); in createStoreLR() local
2776 Ptr = DAG.getNode(ISD::ADD, DL, BasePtrVT, Ptr, in createStoreLR()
2777 DAG.getConstant(Offset, DL, BasePtrVT)); in createStoreLR()
2780 return DAG.getMemIntrinsicNode(Opc, DL, VTList, Ops, MemVT, in createStoreLR()
3046 const SDLoc &DL, bool IsTailCall, in passArgOnStack() argument
3050 DAG.getNode(ISD::ADD, DL, getPointerTy(DAG.getDataLayout()), StackPtr, in passArgOnStack()
3051 DAG.getIntPtrConstant(Offset, DL)); in passArgOnStack()
3052 return DAG.getStore(Chain, DL, Arg, PtrOff, MachinePointerInfo()); in passArgOnStack()
3058 return DAG.getStore(Chain, DL, Arg, FIN, MachinePointerInfo(), MaybeAlign(), in passArgOnStack()
3091 Chain = CLI.DAG.getCopyToReg(Chain, CLI.DL, R.first, R.second, InGlue); in getOpndList()
3183 SDLoc DL = CLI.DL; in LowerCall() local
3279 Chain = DAG.getCALLSEQ_START(Chain, StackSize, 0, DL); in LowerCall()
3282 DAG.getCopyFromReg(Chain, DL, ABI.IsN64() ? Mips::SP_64 : Mips::SP, in LowerCall()
3309 passByValArg(Chain, DL, RegsToPass, MemOpChains, StackPtr, MFI, DAG, Arg, in LowerCall()
3325 Arg = DAG.getNode(ISD::BITCAST, DL, LocVT, Arg); in LowerCall()
3327 SDValue Lo = DAG.getNode(MipsISD::ExtractElementF64, DL, MVT::i32, in LowerCall()
3328 Arg, DAG.getConstant(0, DL, MVT::i32)); in LowerCall()
3329 SDValue Hi = DAG.getNode(MipsISD::ExtractElementF64, DL, MVT::i32, in LowerCall()
3330 Arg, DAG.getConstant(1, DL, MVT::i32)); in LowerCall()
3345 Arg = DAG.getNode(ISD::BITCAST, DL, LocVT, Arg); in LowerCall()
3351 Arg = DAG.getNode(ISD::SIGN_EXTEND, DL, LocVT, Arg); in LowerCall()
3357 Arg = DAG.getNode(ISD::ZERO_EXTEND, DL, LocVT, Arg); in LowerCall()
3363 Arg = DAG.getNode(ISD::ANY_EXTEND, DL, LocVT, Arg); in LowerCall()
3371 ISD::SHL, DL, VA.getLocVT(), Arg, in LowerCall()
3372 DAG.getConstant(LocSizeInBits - ValSizeInBits, DL, VA.getLocVT())); in LowerCall()
3399 Chain, Arg, DL, IsTailCall, DAG)); in LowerCall()
3405 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOpChains); in LowerCall()
3449 Callee = getAddrLocal(G, DL, Ty, DAG, ABI.IsN32() || ABI.IsN64()); in LowerCall()
3451 Callee = getAddrGlobalLargeGOT(G, DL, Ty, DAG, MipsII::MO_CALL_HI16, in LowerCall()
3456 Callee = getAddrGlobal(G, DL, Ty, DAG, MipsII::MO_GOT_CALL, Chain, in LowerCall()
3461 Callee = DAG.getTargetGlobalAddress(G->getGlobal(), DL, in LowerCall()
3473 Callee = getAddrGlobalLargeGOT(S, DL, Ty, DAG, MipsII::MO_CALL_HI16, in LowerCall()
3478 Callee = getAddrGlobal(S, DL, Ty, DAG, MipsII::MO_GOT_CALL, Chain, in LowerCall()
3494 SDValue Ret = DAG.getNode(MipsISD::TailCall, DL, MVT::Other, Ops); in LowerCall()
3499 Chain = DAG.getNode(MipsISD::JmpLink, DL, NodeTys, Ops); in LowerCall()
3507 Chain = DAG.getCALLSEQ_END(Chain, StackSize, 0, InGlue, DL); in LowerCall()
3513 return LowerCallResult(Chain, InGlue, CallConv, IsVarArg, Ins, DL, DAG, in LowerCall()
3521 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &DL, in LowerCallResult() argument
3539 SDValue Val = DAG.getCopyFromReg(Chain, DL, RVLocs[i].getLocReg(), in LowerCallResult()
3550 Shift, DL, VA.getLocVT(), Val, in LowerCallResult()
3551 DAG.getConstant(LocSizeInBits - ValSizeInBits, DL, VA.getLocVT())); in LowerCallResult()
3560 Val = DAG.getNode(ISD::BITCAST, DL, VA.getValVT(), Val); in LowerCallResult()
3564 Val = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Val); in LowerCallResult()
3568 Val = DAG.getNode(ISD::AssertZext, DL, VA.getLocVT(), Val, in LowerCallResult()
3570 Val = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Val); in LowerCallResult()
3574 Val = DAG.getNode(ISD::AssertSext, DL, VA.getLocVT(), Val, in LowerCallResult()
3576 Val = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Val); in LowerCallResult()
3587 EVT ArgVT, const SDLoc &DL, in UnpackFromArgumentSlot() argument
3604 Opcode, DL, VA.getLocVT(), Val, in UnpackFromArgumentSlot()
3605 DAG.getConstant(LocSizeInBits - ValSizeInBits, DL, VA.getLocVT())); in UnpackFromArgumentSlot()
3621 Val = DAG.getNode(ISD::TRUNCATE, DL, ValVT, Val); in UnpackFromArgumentSlot()
3625 Val = DAG.getNode(ISD::AssertSext, DL, LocVT, Val, DAG.getValueType(ValVT)); in UnpackFromArgumentSlot()
3626 Val = DAG.getNode(ISD::TRUNCATE, DL, ValVT, Val); in UnpackFromArgumentSlot()
3630 Val = DAG.getNode(ISD::AssertZext, DL, LocVT, Val, DAG.getValueType(ValVT)); in UnpackFromArgumentSlot()
3631 Val = DAG.getNode(ISD::TRUNCATE, DL, ValVT, Val); in UnpackFromArgumentSlot()
3634 Val = DAG.getNode(ISD::BITCAST, DL, ValVT, Val); in UnpackFromArgumentSlot()
3648 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &DL, in LowerFormalArguments() argument
3697 copyByValRegs(Chain, DL, OutChains, DAG, Flags, InVals, &*FuncArg, in LowerFormalArguments()
3712 SDValue ArgValue = DAG.getCopyFromReg(Chain, DL, Reg, RegVT); in LowerFormalArguments()
3715 UnpackFromArgumentSlot(ArgValue, VA, Ins[InsIdx].ArgVT, DL, DAG); in LowerFormalArguments()
3722 ArgValue = DAG.getNode(ISD::BITCAST, DL, ValVT, ArgValue); in LowerFormalArguments()
3729 SDValue ArgValue2 = DAG.getCopyFromReg(Chain, DL, Reg2, RegVT); in LowerFormalArguments()
3732 ArgValue = DAG.getNode(MipsISD::BuildPairF64, DL, MVT::f64, in LowerFormalArguments()
3752 LocVT, DL, Chain, FIN, in LowerFormalArguments()
3757 UnpackFromArgumentSlot(ArgValue, VA, Ins[InsIdx].ArgVT, DL, DAG); in LowerFormalArguments()
3780 SDValue Copy = DAG.getCopyToReg(DAG.getEntryNode(), DL, Reg, InVals[i]); in LowerFormalArguments()
3781 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Copy, Chain); in LowerFormalArguments()
3787 writeVarArgRegs(OutChains, Chain, DL, DAG, CCInfo); in LowerFormalArguments()
3793 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, OutChains); in LowerFormalArguments()
3823 const SDLoc &DL, in LowerInterruptReturn() argument
3830 return DAG.getNode(MipsISD::ERet, DL, MVT::Other, RetOps); in LowerInterruptReturn()
3838 const SDLoc &DL, SelectionDAG &DAG) const { in LowerReturn() argument
3866 Val = DAG.getNode(ISD::BITCAST, DL, VA.getLocVT(), Val); in LowerReturn()
3872 Val = DAG.getNode(ISD::ANY_EXTEND, DL, VA.getLocVT(), Val); in LowerReturn()
3878 Val = DAG.getNode(ISD::ZERO_EXTEND, DL, VA.getLocVT(), Val); in LowerReturn()
3884 Val = DAG.getNode(ISD::SIGN_EXTEND, DL, VA.getLocVT(), Val); in LowerReturn()
3892 ISD::SHL, DL, VA.getLocVT(), Val, in LowerReturn()
3893 DAG.getConstant(LocSizeInBits - ValSizeInBits, DL, VA.getLocVT())); in LowerReturn()
3896 Chain = DAG.getCopyToReg(Chain, DL, VA.getLocReg(), Val, Glue); in LowerReturn()
3914 DAG.getCopyFromReg(Chain, DL, Reg, getPointerTy(DAG.getDataLayout())); in LowerReturn()
3917 Chain = DAG.getCopyToReg(Chain, DL, V0, Val, Glue); in LowerReturn()
3930 return LowerInterruptReturn(RetOps, DL, DAG); in LowerReturn()
3933 return DAG.getNode(MipsISD::Ret, DL, MVT::Other, RetOps); in LowerReturn()
4215 SDLoc DL(Op); in LowerAsmOperandForConstraint() local
4231 Result = DAG.getTargetConstant(Val, DL, Type); in LowerAsmOperandForConstraint()
4241 Result = DAG.getTargetConstant(0, DL, Type); in LowerAsmOperandForConstraint()
4251 Result = DAG.getTargetConstant(Val, DL, Type); in LowerAsmOperandForConstraint()
4261 Result = DAG.getTargetConstant(Val, DL, Type); in LowerAsmOperandForConstraint()
4271 Result = DAG.getTargetConstant(Val, DL, Type); in LowerAsmOperandForConstraint()
4281 Result = DAG.getTargetConstant(Val, DL, Type); in LowerAsmOperandForConstraint()
4291 Result = DAG.getTargetConstant(Val, DL, Type); in LowerAsmOperandForConstraint()
4306 bool MipsTargetLowering::isLegalAddressingMode(const DataLayout &DL, in isLegalAddressingMode() argument
4365 SDValue Chain, const SDLoc &DL, std::vector<SDValue> &OutChains, in copyByValRegs() argument
4408 SDValue StorePtr = DAG.getNode(ISD::ADD, DL, PtrTy, FIN, in copyByValRegs()
4409 DAG.getConstant(Offset, DL, PtrTy)); in copyByValRegs()
4410 SDValue Store = DAG.getStore(Chain, DL, DAG.getRegister(VReg, RegTy), in copyByValRegs()
4418 SDValue Chain, const SDLoc &DL, in passByValArg() argument
4440 SDValue LoadPtr = DAG.getNode(ISD::ADD, DL, PtrTy, Arg, in passByValArg()
4441 DAG.getConstant(OffsetInBytes, DL, PtrTy)); in passByValArg()
4442 SDValue LoadVal = DAG.getLoad(RegTy, DL, Chain, LoadPtr, in passByValArg()
4465 SDValue LoadPtr = DAG.getNode(ISD::ADD, DL, PtrTy, Arg, in passByValArg()
4466 DAG.getConstant(OffsetInBytes, DL, in passByValArg()
4469 ISD::ZEXTLOAD, DL, RegTy, Chain, LoadPtr, MachinePointerInfo(), in passByValArg()
4481 SDValue Shift = DAG.getNode(ISD::SHL, DL, RegTy, LoadVal, in passByValArg()
4482 DAG.getConstant(Shamt, DL, MVT::i32)); in passByValArg()
4485 Val = DAG.getNode(ISD::OR, DL, RegTy, Val, Shift); in passByValArg()
4502 SDValue Src = DAG.getNode(ISD::ADD, DL, PtrTy, Arg, in passByValArg()
4503 DAG.getConstant(OffsetInBytes, DL, PtrTy)); in passByValArg()
4504 SDValue Dst = DAG.getNode(ISD::ADD, DL, PtrTy, StackPtr, in passByValArg()
4505 DAG.getIntPtrConstant(VA.getLocMemOffset(), DL)); in passByValArg()
4507 Chain, DL, Dst, Src, DAG.getConstant(MemCpySize, DL, PtrTy), in passByValArg()
4514 SDValue Chain, const SDLoc &DL, in writeVarArgRegs() argument
4549 SDValue ArgValue = DAG.getCopyFromReg(Chain, DL, Reg, RegTy); in writeVarArgRegs()
4553 DAG.getStore(Chain, DL, ArgValue, PtrOff, MachinePointerInfo()); in writeVarArgRegs()
4615 DebugLoc DL = MI.getDebugLoc(); in emitPseudoSELECT() local
4648 BuildMI(BB, DL, TII->get(Opc)) in emitPseudoSELECT()
4653 BuildMI(BB, DL, TII->get(Opc)) in emitPseudoSELECT()
4672 BuildMI(*BB, BB->begin(), DL, TII->get(Mips::PHI), MI.getOperand(0).getReg()) in emitPseudoSELECT()
4691 DebugLoc DL = MI.getDebugLoc(); in emitPseudoD_SELECT() local
4724 BuildMI(BB, DL, TII->get(Mips::BNE)) in emitPseudoD_SELECT()
4743 BuildMI(*BB, BB->begin(), DL, TII->get(Mips::PHI), MI.getOperand(0).getReg()) in emitPseudoD_SELECT()
4748 BuildMI(*BB, BB->begin(), DL, TII->get(Mips::PHI), MI.getOperand(1).getReg()) in emitPseudoD_SELECT()
4789 DebugLoc DL = MI.getDebugLoc(); in emitLDR_W() local
4800 BuildMI(*BB, I, DL, TII->get(Mips::LW)) in emitLDR_W()
4804 BuildMI(*BB, I, DL, TII->get(Mips::FILL_W)).addDef(Dest).addUse(Temp); in emitLDR_W()
4811 BuildMI(*BB, I, DL, TII->get(Mips::IMPLICIT_DEF)).addDef(Undef); in emitLDR_W()
4812 BuildMI(*BB, I, DL, TII->get(Mips::LWR)) in emitLDR_W()
4817 BuildMI(*BB, I, DL, TII->get(Mips::LWL)) in emitLDR_W()
4822 BuildMI(*BB, I, DL, TII->get(Mips::FILL_W)).addDef(Dest).addUse(LoadFull); in emitLDR_W()
4835 DebugLoc DL = MI.getDebugLoc(); in emitLDR_D() local
4847 BuildMI(*BB, I, DL, TII->get(Mips::LD)) in emitLDR_D()
4851 BuildMI(*BB, I, DL, TII->get(Mips::FILL_D)).addDef(Dest).addUse(Temp); in emitLDR_D()
4856 BuildMI(*BB, I, DL, TII->get(Mips::LW)) in emitLDR_D()
4860 BuildMI(*BB, I, DL, TII->get(Mips::LW)) in emitLDR_D()
4864 BuildMI(*BB, I, DL, TII->get(Mips::FILL_W)).addDef(Wtemp).addUse(Lo); in emitLDR_D()
4865 BuildMI(*BB, I, DL, TII->get(Mips::INSERT_W), Dest) in emitLDR_D()
4880 BuildMI(*BB, I, DL, TII->get(Mips::IMPLICIT_DEF)).addDef(LoUndef); in emitLDR_D()
4881 BuildMI(*BB, I, DL, TII->get(Mips::LWR)) in emitLDR_D()
4886 BuildMI(*BB, I, DL, TII->get(Mips::LWL)) in emitLDR_D()
4891 BuildMI(*BB, I, DL, TII->get(Mips::IMPLICIT_DEF)).addDef(HiUndef); in emitLDR_D()
4892 BuildMI(*BB, I, DL, TII->get(Mips::LWR)) in emitLDR_D()
4897 BuildMI(*BB, I, DL, TII->get(Mips::LWL)) in emitLDR_D()
4902 BuildMI(*BB, I, DL, TII->get(Mips::FILL_W)).addDef(Wtemp).addUse(LoFull); in emitLDR_D()
4903 BuildMI(*BB, I, DL, TII->get(Mips::INSERT_W), Dest) in emitLDR_D()
4919 DebugLoc DL = MI.getDebugLoc(); in emitSTR_W() local
4931 BuildMI(*BB, I, DL, TII->get(Mips::COPY)).addDef(BitcastW).addUse(StoreVal); in emitSTR_W()
4932 BuildMI(*BB, I, DL, TII->get(Mips::COPY_S_W)) in emitSTR_W()
4936 BuildMI(*BB, I, DL, TII->get(Mips::SW)) in emitSTR_W()
4944 BuildMI(*BB, I, DL, TII->get(Mips::COPY_S_W)) in emitSTR_W()
4948 BuildMI(*BB, I, DL, TII->get(Mips::SWR)) in emitSTR_W()
4952 BuildMI(*BB, I, DL, TII->get(Mips::SWL)) in emitSTR_W()
4969 DebugLoc DL = MI.getDebugLoc(); in emitSTR_D() local
4982 BuildMI(*BB, I, DL, TII->get(Mips::COPY)) in emitSTR_D()
4985 BuildMI(*BB, I, DL, TII->get(Mips::COPY_S_D)) in emitSTR_D()
4989 BuildMI(*BB, I, DL, TII->get(Mips::SD)) in emitSTR_D()
4997 BuildMI(*BB, I, DL, TII->get(Mips::COPY)) in emitSTR_D()
5000 BuildMI(*BB, I, DL, TII->get(Mips::COPY_S_W)) in emitSTR_D()
5004 BuildMI(*BB, I, DL, TII->get(Mips::COPY_S_W)) in emitSTR_D()
5008 BuildMI(*BB, I, DL, TII->get(Mips::SW)) in emitSTR_D()
5012 BuildMI(*BB, I, DL, TII->get(Mips::SW)) in emitSTR_D()
5023 BuildMI(*BB, I, DL, TII->get(Mips::COPY)).addDef(Bitcast).addUse(StoreVal); in emitSTR_D()
5024 BuildMI(*BB, I, DL, TII->get(Mips::COPY_S_W)) in emitSTR_D()
5028 BuildMI(*BB, I, DL, TII->get(Mips::COPY_S_W)) in emitSTR_D()
5032 BuildMI(*BB, I, DL, TII->get(Mips::SWR)) in emitSTR_D()
5036 BuildMI(*BB, I, DL, TII->get(Mips::SWL)) in emitSTR_D()
5040 BuildMI(*BB, I, DL, TII->get(Mips::SWR)) in emitSTR_D()
5044 BuildMI(*BB, I, DL, TII->get(Mips::SWL)) in emitSTR_D()