@@ -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}
@@ -352,10 +366,10 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT,
352366 setLibcallImpl (RTLIB::SINCOS_STRET_F32, RTLIB::__sincosf_stret);
353367 setLibcallImpl (RTLIB::SINCOS_STRET_F64, RTLIB::__sincos_stret);
354368 if (TT.isWatchABI ()) {
355- setLibcallCallingConv (RTLIB::SINCOS_STRET_F32 ,
356- CallingConv::ARM_AAPCS_VFP);
357- setLibcallCallingConv (RTLIB::SINCOS_STRET_F64 ,
358- CallingConv::ARM_AAPCS_VFP);
369+ setLibcallImplCallingConv (RTLIB::__sincosf_stret ,
370+ CallingConv::ARM_AAPCS_VFP);
371+ setLibcallImplCallingConv (RTLIB::__sincos_stret ,
372+ CallingConv::ARM_AAPCS_VFP);
359373 }
360374 }
361375
@@ -420,18 +434,18 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT,
420434
421435 for (const auto &LC : LibraryCalls) {
422436 setLibcallImpl (LC.Op , LC.Impl );
423- setLibcallCallingConv (LC.Op , LC.CC );
437+ setLibcallImplCallingConv (LC.Impl , LC.CC );
424438 }
425439 }
426440
427441 if (TT.isARM () || TT.isThumb ())
428442 setARMLibcallNames (*this , TT, FloatABI, EABIVersion);
429443 else if (TT.getArch () == Triple::ArchType::avr) {
430444 // Several of the runtime library functions use a special calling conv
431- setLibcallCallingConv (RTLIB::SDIVREM_I8 , CallingConv::AVR_BUILTIN);
432- setLibcallCallingConv (RTLIB::SDIVREM_I16 , CallingConv::AVR_BUILTIN);
433- setLibcallCallingConv (RTLIB::UDIVREM_I8 , CallingConv::AVR_BUILTIN);
434- setLibcallCallingConv (RTLIB::UDIVREM_I16 , CallingConv::AVR_BUILTIN);
445+ setLibcallImplCallingConv (RTLIB::__divmodqi4 , CallingConv::AVR_BUILTIN);
446+ setLibcallImplCallingConv (RTLIB::__divmodhi4 , CallingConv::AVR_BUILTIN);
447+ setLibcallImplCallingConv (RTLIB::__udivmodqi4 , CallingConv::AVR_BUILTIN);
448+ setLibcallImplCallingConv (RTLIB::__udivmodhi4 , CallingConv::AVR_BUILTIN);
435449 }
436450
437451 if (!TT.isWasm ()) {
0 commit comments