@@ -29,8 +29,8 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
2929 CallingConv::ID DefaultCC = FloatABIType == FloatABI::Hard
3030 ? CallingConv::ARM_AAPCS_VFP
3131 : CallingConv::ARM_AAPCS;
32- for (RTLIB::Libcall LC : RTLIB::libcalls ())
33- Info.setLibcallCallingConv (LC, DefaultCC);
32+ for (RTLIB::LibcallImpl LC : RTLIB::libcall_impls ())
33+ Info.setLibcallImplCallingConv (LC, DefaultCC);
3434 }
3535
3636 // Register based DivRem for AEABI (RTABI 4.2)
@@ -50,7 +50,7 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
5050
5151 for (const auto &LC : LibraryCalls) {
5252 Info.setLibcallImpl (LC.Op , LC.Impl );
53- Info.setLibcallCallingConv (LC.Op , LC.CC );
53+ Info.setLibcallImplCallingConv (LC.Impl , LC.CC );
5454 }
5555 } else {
5656 const struct {
@@ -66,7 +66,7 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
6666
6767 for (const auto &LC : LibraryCalls) {
6868 Info.setLibcallImpl (LC.Op , LC.Impl );
69- Info.setLibcallCallingConv (LC.Op , LC.CC );
69+ Info.setLibcallImplCallingConv (LC.Impl , LC.CC );
7070 }
7171 }
7272 }
@@ -89,7 +89,7 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
8989
9090 for (const auto &LC : LibraryCalls) {
9191 Info.setLibcallImpl (LC.Op , LC.Impl );
92- Info.setLibcallCallingConv (LC.Op , LC.CC );
92+ Info.setLibcallImplCallingConv (LC.Impl , LC.CC );
9393 }
9494 }
9595
@@ -199,20 +199,34 @@ static void setMSP430Libcalls(RuntimeLibcallsInfo &Info, const Triple &TT) {
199199 Info.setLibcallImpl (LC.Op , LC.Impl );
200200
201201 // Several of the runtime library functions use a special calling conv
202- Info.setLibcallCallingConv (RTLIB::UDIV_I64, CallingConv::MSP430_BUILTIN);
203- Info.setLibcallCallingConv (RTLIB::UREM_I64, CallingConv::MSP430_BUILTIN);
204- Info.setLibcallCallingConv (RTLIB::SDIV_I64, CallingConv::MSP430_BUILTIN);
205- Info.setLibcallCallingConv (RTLIB::SREM_I64, CallingConv::MSP430_BUILTIN);
206- Info.setLibcallCallingConv (RTLIB::ADD_F64, CallingConv::MSP430_BUILTIN);
207- Info.setLibcallCallingConv (RTLIB::SUB_F64, CallingConv::MSP430_BUILTIN);
208- Info.setLibcallCallingConv (RTLIB::MUL_F64, CallingConv::MSP430_BUILTIN);
209- Info.setLibcallCallingConv (RTLIB::DIV_F64, CallingConv::MSP430_BUILTIN);
210- Info.setLibcallCallingConv (RTLIB::OEQ_F64, CallingConv::MSP430_BUILTIN);
211- Info.setLibcallCallingConv (RTLIB::UNE_F64, CallingConv::MSP430_BUILTIN);
212- Info.setLibcallCallingConv (RTLIB::OGE_F64, CallingConv::MSP430_BUILTIN);
213- Info.setLibcallCallingConv (RTLIB::OLT_F64, CallingConv::MSP430_BUILTIN);
214- Info.setLibcallCallingConv (RTLIB::OLE_F64, CallingConv::MSP430_BUILTIN);
215- Info.setLibcallCallingConv (RTLIB::OGT_F64, CallingConv::MSP430_BUILTIN);
202+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_divull,
203+ CallingConv::MSP430_BUILTIN);
204+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_remull,
205+ CallingConv::MSP430_BUILTIN);
206+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_divlli,
207+ CallingConv::MSP430_BUILTIN);
208+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_remlli,
209+ CallingConv::MSP430_BUILTIN);
210+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_addd,
211+ CallingConv::MSP430_BUILTIN);
212+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_subd,
213+ CallingConv::MSP430_BUILTIN);
214+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_mpyd,
215+ CallingConv::MSP430_BUILTIN);
216+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_divd,
217+ CallingConv::MSP430_BUILTIN);
218+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_cmpd__oeq,
219+ CallingConv::MSP430_BUILTIN);
220+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_cmpd__une,
221+ CallingConv::MSP430_BUILTIN);
222+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_cmpd__oge,
223+ CallingConv::MSP430_BUILTIN);
224+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_cmpd__olt,
225+ CallingConv::MSP430_BUILTIN);
226+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_cmpd__ole,
227+ CallingConv::MSP430_BUILTIN);
228+ Info.setLibcallImplCallingConv (RTLIB::__mspabi_cmpd__ogt,
229+ CallingConv::MSP430_BUILTIN);
216230
217231 // TODO: __mspabi_srall, __mspabi_srlll, __mspabi_sllll
218232}
@@ -361,10 +375,10 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT,
361375 setLibcallImpl (RTLIB::SINCOS_STRET_F32, RTLIB::__sincosf_stret);
362376 setLibcallImpl (RTLIB::SINCOS_STRET_F64, RTLIB::__sincos_stret);
363377 if (TT.isWatchABI ()) {
364- setLibcallCallingConv (RTLIB::SINCOS_STRET_F32 ,
365- CallingConv::ARM_AAPCS_VFP);
366- setLibcallCallingConv (RTLIB::SINCOS_STRET_F64 ,
367- CallingConv::ARM_AAPCS_VFP);
378+ setLibcallImplCallingConv (RTLIB::__sincosf_stret ,
379+ CallingConv::ARM_AAPCS_VFP);
380+ setLibcallImplCallingConv (RTLIB::__sincos_stret ,
381+ CallingConv::ARM_AAPCS_VFP);
368382 }
369383 }
370384
@@ -453,18 +467,18 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT,
453467
454468 for (const auto &LC : LibraryCalls) {
455469 setLibcallImpl (LC.Op , LC.Impl );
456- setLibcallCallingConv (LC.Op , LC.CC );
470+ setLibcallImplCallingConv (LC.Impl , LC.CC );
457471 }
458472 }
459473
460474 if (TT.isARM () || TT.isThumb ())
461475 setARMLibcallNames (*this , TT, FloatABI, EABIVersion);
462476 else if (TT.getArch () == Triple::ArchType::avr) {
463477 // Several of the runtime library functions use a special calling conv
464- setLibcallCallingConv (RTLIB::SDIVREM_I8 , CallingConv::AVR_BUILTIN);
465- setLibcallCallingConv (RTLIB::SDIVREM_I16 , CallingConv::AVR_BUILTIN);
466- setLibcallCallingConv (RTLIB::UDIVREM_I8 , CallingConv::AVR_BUILTIN);
467- setLibcallCallingConv (RTLIB::UDIVREM_I16 , CallingConv::AVR_BUILTIN);
478+ setLibcallImplCallingConv (RTLIB::__divmodqi4 , CallingConv::AVR_BUILTIN);
479+ setLibcallImplCallingConv (RTLIB::__divmodhi4 , CallingConv::AVR_BUILTIN);
480+ setLibcallImplCallingConv (RTLIB::__udivmodqi4 , CallingConv::AVR_BUILTIN);
481+ setLibcallImplCallingConv (RTLIB::__udivmodhi4 , CallingConv::AVR_BUILTIN);
468482 }
469483
470484 if (!TT.isWasm ()) {
0 commit comments