@@ -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
}
@@ -361,10 +375,10 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT,
361
375
setLibcallImpl (RTLIB::SINCOS_STRET_F32, RTLIB::__sincosf_stret);
362
376
setLibcallImpl (RTLIB::SINCOS_STRET_F64, RTLIB::__sincos_stret);
363
377
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);
368
382
}
369
383
}
370
384
@@ -453,18 +467,18 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT,
453
467
454
468
for (const auto &LC : LibraryCalls) {
455
469
setLibcallImpl (LC.Op , LC.Impl );
456
- setLibcallCallingConv (LC.Op , LC.CC );
470
+ setLibcallImplCallingConv (LC.Impl , LC.CC );
457
471
}
458
472
}
459
473
460
474
if (TT.isARM () || TT.isThumb ())
461
475
setARMLibcallNames (*this , TT, FloatABI, EABIVersion);
462
476
else if (TT.getArch () == Triple::ArchType::avr) {
463
477
// 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);
468
482
}
469
483
470
484
if (!TT.isWasm ()) {
0 commit comments