@@ -29,8 +29,8 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
29
29
CallingConv::ID DefaultCC = FloatABIType == FloatABI::Hard
30
30
? CallingConv::ARM_AAPCS_VFP
31
31
: 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);
34
34
}
35
35
36
36
// Register based DivRem for AEABI (RTABI 4.2)
@@ -50,7 +50,7 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
50
50
51
51
for (const auto &LC : LibraryCalls) {
52
52
Info.setLibcallImpl (LC.Op , LC.Impl );
53
- Info.setLibcallCallingConv (LC.Op , LC.CC );
53
+ Info.setLibcallImplCallingConv (LC.Impl , LC.CC );
54
54
}
55
55
} else {
56
56
const struct {
@@ -66,7 +66,7 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
66
66
67
67
for (const auto &LC : LibraryCalls) {
68
68
Info.setLibcallImpl (LC.Op , LC.Impl );
69
- Info.setLibcallCallingConv (LC.Op , LC.CC );
69
+ Info.setLibcallImplCallingConv (LC.Impl , LC.CC );
70
70
}
71
71
}
72
72
}
@@ -89,7 +89,7 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
89
89
90
90
for (const auto &LC : LibraryCalls) {
91
91
Info.setLibcallImpl (LC.Op , LC.Impl );
92
- Info.setLibcallCallingConv (LC.Op , LC.CC );
92
+ Info.setLibcallImplCallingConv (LC.Impl , LC.CC );
93
93
}
94
94
}
95
95
@@ -199,20 +199,34 @@ static void setMSP430Libcalls(RuntimeLibcallsInfo &Info, const Triple &TT) {
199
199
Info.setLibcallImpl (LC.Op , LC.Impl );
200
200
201
201
// 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);
216
230
217
231
// TODO: __mspabi_srall, __mspabi_srlll, __mspabi_sllll
218
232
}
@@ -353,10 +367,10 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT,
353
367
setLibcallImpl (RTLIB::SINCOS_STRET_F32, RTLIB::__sincosf_stret);
354
368
setLibcallImpl (RTLIB::SINCOS_STRET_F64, RTLIB::__sincos_stret);
355
369
if (TT.isWatchABI ()) {
356
- setLibcallCallingConv (RTLIB::SINCOS_STRET_F32 ,
357
- CallingConv::ARM_AAPCS_VFP);
358
- setLibcallCallingConv (RTLIB::SINCOS_STRET_F64 ,
359
- CallingConv::ARM_AAPCS_VFP);
370
+ setLibcallImplCallingConv (RTLIB::__sincosf_stret ,
371
+ CallingConv::ARM_AAPCS_VFP);
372
+ setLibcallImplCallingConv (RTLIB::__sincos_stret ,
373
+ CallingConv::ARM_AAPCS_VFP);
360
374
}
361
375
}
362
376
@@ -421,18 +435,18 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT,
421
435
422
436
for (const auto &LC : LibraryCalls) {
423
437
setLibcallImpl (LC.Op , LC.Impl );
424
- setLibcallCallingConv (LC.Op , LC.CC );
438
+ setLibcallImplCallingConv (LC.Impl , LC.CC );
425
439
}
426
440
}
427
441
428
442
if (TT.isARM () || TT.isThumb ())
429
443
setARMLibcallNames (*this , TT, FloatABI, EABIVersion);
430
444
else if (TT.getArch () == Triple::ArchType::avr) {
431
445
// Several of the runtime library functions use a special calling conv
432
- setLibcallCallingConv (RTLIB::SDIVREM_I8 , CallingConv::AVR_BUILTIN);
433
- setLibcallCallingConv (RTLIB::SDIVREM_I16 , CallingConv::AVR_BUILTIN);
434
- setLibcallCallingConv (RTLIB::UDIVREM_I8 , CallingConv::AVR_BUILTIN);
435
- setLibcallCallingConv (RTLIB::UDIVREM_I16 , CallingConv::AVR_BUILTIN);
446
+ setLibcallImplCallingConv (RTLIB::__divmodqi4 , CallingConv::AVR_BUILTIN);
447
+ setLibcallImplCallingConv (RTLIB::__divmodhi4 , CallingConv::AVR_BUILTIN);
448
+ setLibcallImplCallingConv (RTLIB::__udivmodqi4 , CallingConv::AVR_BUILTIN);
449
+ setLibcallImplCallingConv (RTLIB::__udivmodhi4 , CallingConv::AVR_BUILTIN);
436
450
}
437
451
438
452
if (!TT.isWasm ()) {
0 commit comments