1//===-- llvm/RuntimeLibcalls.def - File that describes libcalls -*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This file defines all of the runtime library calls the backend can emit. 10// The various long double types cannot be merged, because 80-bit library 11// functions use "xf" and 128-bit use "tf". 12// 13// When adding PPCF128 functions here, note that their names generally need 14// to be overridden for Darwin with the xxx$LDBL128 form. See 15// PPCISelLowering.cpp. 16// 17//===----------------------------------------------------------------------===// 18 19// NOTE: NO INCLUDE GUARD DESIRED! 20 21// Provide definitions of macros so that users of this file do not have to 22// define everything to use it... 23 24// Declare the enumerator for each libcall, along with its default name. Some 25// libcalls have different names on particular OSes or architectures. These 26// are set in InitLibcalls() in TargetLoweringBase.cpp and/or by targets 27// using TargetLoweringBase::setLibcallName() 28#ifndef HANDLE_LIBCALL 29#error "HANDLE_LIBCALL must be defined" 30#endif 31 32// Integer 33HANDLE_LIBCALL(SHL_I16, "__ashlhi3") 34HANDLE_LIBCALL(SHL_I32, "__ashlsi3") 35HANDLE_LIBCALL(SHL_I64, "__ashldi3") 36HANDLE_LIBCALL(SHL_I128, "__ashlti3") 37HANDLE_LIBCALL(SRL_I16, "__lshrhi3") 38HANDLE_LIBCALL(SRL_I32, "__lshrsi3") 39HANDLE_LIBCALL(SRL_I64, "__lshrdi3") 40HANDLE_LIBCALL(SRL_I128, "__lshrti3") 41HANDLE_LIBCALL(SRA_I16, "__ashrhi3") 42HANDLE_LIBCALL(SRA_I32, "__ashrsi3") 43HANDLE_LIBCALL(SRA_I64, "__ashrdi3") 44HANDLE_LIBCALL(SRA_I128, "__ashrti3") 45HANDLE_LIBCALL(MUL_I8, "__mulqi3") 46HANDLE_LIBCALL(MUL_I16, "__mulhi3") 47HANDLE_LIBCALL(MUL_I32, "__mulsi3") 48HANDLE_LIBCALL(MUL_I64, "__muldi3") 49HANDLE_LIBCALL(MUL_I128, "__multi3") 50HANDLE_LIBCALL(MULO_I32, "__mulosi4") 51HANDLE_LIBCALL(MULO_I64, "__mulodi4") 52HANDLE_LIBCALL(MULO_I128, "__muloti4") 53HANDLE_LIBCALL(SDIV_I8, "__divqi3") 54HANDLE_LIBCALL(SDIV_I16, "__divhi3") 55HANDLE_LIBCALL(SDIV_I32, "__divsi3") 56HANDLE_LIBCALL(SDIV_I64, "__divdi3") 57HANDLE_LIBCALL(SDIV_I128, "__divti3") 58HANDLE_LIBCALL(UDIV_I8, "__udivqi3") 59HANDLE_LIBCALL(UDIV_I16, "__udivhi3") 60HANDLE_LIBCALL(UDIV_I32, "__udivsi3") 61HANDLE_LIBCALL(UDIV_I64, "__udivdi3") 62HANDLE_LIBCALL(UDIV_I128, "__udivti3") 63HANDLE_LIBCALL(SREM_I8, "__modqi3") 64HANDLE_LIBCALL(SREM_I16, "__modhi3") 65HANDLE_LIBCALL(SREM_I32, "__modsi3") 66HANDLE_LIBCALL(SREM_I64, "__moddi3") 67HANDLE_LIBCALL(SREM_I128, "__modti3") 68HANDLE_LIBCALL(UREM_I8, "__umodqi3") 69HANDLE_LIBCALL(UREM_I16, "__umodhi3") 70HANDLE_LIBCALL(UREM_I32, "__umodsi3") 71HANDLE_LIBCALL(UREM_I64, "__umoddi3") 72HANDLE_LIBCALL(UREM_I128, "__umodti3") 73HANDLE_LIBCALL(SDIVREM_I8, nullptr) 74HANDLE_LIBCALL(SDIVREM_I16, nullptr) 75HANDLE_LIBCALL(SDIVREM_I32, nullptr) 76HANDLE_LIBCALL(SDIVREM_I64, nullptr) 77HANDLE_LIBCALL(SDIVREM_I128, nullptr) 78HANDLE_LIBCALL(UDIVREM_I8, nullptr) 79HANDLE_LIBCALL(UDIVREM_I16, nullptr) 80HANDLE_LIBCALL(UDIVREM_I32, nullptr) 81HANDLE_LIBCALL(UDIVREM_I64, nullptr) 82HANDLE_LIBCALL(UDIVREM_I128, nullptr) 83HANDLE_LIBCALL(NEG_I32, "__negsi2") 84HANDLE_LIBCALL(NEG_I64, "__negdi2") 85HANDLE_LIBCALL(CTLZ_I32, "__clzsi2") 86HANDLE_LIBCALL(CTLZ_I64, "__clzdi2") 87HANDLE_LIBCALL(CTLZ_I128, "__clzti2") 88 89// Floating-point 90HANDLE_LIBCALL(ADD_F32, "__addsf3") 91HANDLE_LIBCALL(ADD_F64, "__adddf3") 92HANDLE_LIBCALL(ADD_F80, "__addxf3") 93HANDLE_LIBCALL(ADD_F128, "__addtf3") 94HANDLE_LIBCALL(ADD_PPCF128, "__gcc_qadd") 95HANDLE_LIBCALL(SUB_F32, "__subsf3") 96HANDLE_LIBCALL(SUB_F64, "__subdf3") 97HANDLE_LIBCALL(SUB_F80, "__subxf3") 98HANDLE_LIBCALL(SUB_F128, "__subtf3") 99HANDLE_LIBCALL(SUB_PPCF128, "__gcc_qsub") 100HANDLE_LIBCALL(MUL_F32, "__mulsf3") 101HANDLE_LIBCALL(MUL_F64, "__muldf3") 102HANDLE_LIBCALL(MUL_F80, "__mulxf3") 103HANDLE_LIBCALL(MUL_F128, "__multf3") 104HANDLE_LIBCALL(MUL_PPCF128, "__gcc_qmul") 105HANDLE_LIBCALL(DIV_F32, "__divsf3") 106HANDLE_LIBCALL(DIV_F64, "__divdf3") 107HANDLE_LIBCALL(DIV_F80, "__divxf3") 108HANDLE_LIBCALL(DIV_F128, "__divtf3") 109HANDLE_LIBCALL(DIV_PPCF128, "__gcc_qdiv") 110HANDLE_LIBCALL(REM_F32, "fmodf") 111HANDLE_LIBCALL(REM_F64, "fmod") 112HANDLE_LIBCALL(REM_F80, "fmodl") 113HANDLE_LIBCALL(REM_F128, "fmodl") 114HANDLE_LIBCALL(REM_PPCF128, "fmodl") 115HANDLE_LIBCALL(FMA_F32, "fmaf") 116HANDLE_LIBCALL(FMA_F64, "fma") 117HANDLE_LIBCALL(FMA_F80, "fmal") 118HANDLE_LIBCALL(FMA_F128, "fmal") 119HANDLE_LIBCALL(FMA_PPCF128, "fmal") 120HANDLE_LIBCALL(POWI_F32, "__powisf2") 121HANDLE_LIBCALL(POWI_F64, "__powidf2") 122HANDLE_LIBCALL(POWI_F80, "__powixf2") 123HANDLE_LIBCALL(POWI_F128, "__powitf2") 124HANDLE_LIBCALL(POWI_PPCF128, "__powitf2") 125HANDLE_LIBCALL(SQRT_F32, "sqrtf") 126HANDLE_LIBCALL(SQRT_F64, "sqrt") 127HANDLE_LIBCALL(SQRT_F80, "sqrtl") 128HANDLE_LIBCALL(SQRT_F128, "sqrtl") 129HANDLE_LIBCALL(SQRT_PPCF128, "sqrtl") 130HANDLE_LIBCALL(CBRT_F32, "cbrtf") 131HANDLE_LIBCALL(CBRT_F64, "cbrt") 132HANDLE_LIBCALL(CBRT_F80, "cbrtl") 133HANDLE_LIBCALL(CBRT_F128, "cbrtl") 134HANDLE_LIBCALL(CBRT_PPCF128, "cbrtl") 135HANDLE_LIBCALL(LOG_F32, "logf") 136HANDLE_LIBCALL(LOG_F64, "log") 137HANDLE_LIBCALL(LOG_F80, "logl") 138HANDLE_LIBCALL(LOG_F128, "logl") 139HANDLE_LIBCALL(LOG_PPCF128, "logl") 140HANDLE_LIBCALL(LOG_FINITE_F32, "__logf_finite") 141HANDLE_LIBCALL(LOG_FINITE_F64, "__log_finite") 142HANDLE_LIBCALL(LOG_FINITE_F80, "__logl_finite") 143HANDLE_LIBCALL(LOG_FINITE_F128, "__logl_finite") 144HANDLE_LIBCALL(LOG_FINITE_PPCF128, "__logl_finite") 145HANDLE_LIBCALL(LOG2_F32, "log2f") 146HANDLE_LIBCALL(LOG2_F64, "log2") 147HANDLE_LIBCALL(LOG2_F80, "log2l") 148HANDLE_LIBCALL(LOG2_F128, "log2l") 149HANDLE_LIBCALL(LOG2_PPCF128, "log2l") 150HANDLE_LIBCALL(LOG2_FINITE_F32, "__log2f_finite") 151HANDLE_LIBCALL(LOG2_FINITE_F64, "__log2_finite") 152HANDLE_LIBCALL(LOG2_FINITE_F80, "__log2l_finite") 153HANDLE_LIBCALL(LOG2_FINITE_F128, "__log2l_finite") 154HANDLE_LIBCALL(LOG2_FINITE_PPCF128, "__log2l_finite") 155HANDLE_LIBCALL(LOG10_F32, "log10f") 156HANDLE_LIBCALL(LOG10_F64, "log10") 157HANDLE_LIBCALL(LOG10_F80, "log10l") 158HANDLE_LIBCALL(LOG10_F128, "log10l") 159HANDLE_LIBCALL(LOG10_PPCF128, "log10l") 160HANDLE_LIBCALL(LOG10_FINITE_F32, "__log10f_finite") 161HANDLE_LIBCALL(LOG10_FINITE_F64, "__log10_finite") 162HANDLE_LIBCALL(LOG10_FINITE_F80, "__log10l_finite") 163HANDLE_LIBCALL(LOG10_FINITE_F128, "__log10l_finite") 164HANDLE_LIBCALL(LOG10_FINITE_PPCF128, "__log10l_finite") 165HANDLE_LIBCALL(EXP_F32, "expf") 166HANDLE_LIBCALL(EXP_F64, "exp") 167HANDLE_LIBCALL(EXP_F80, "expl") 168HANDLE_LIBCALL(EXP_F128, "expl") 169HANDLE_LIBCALL(EXP_PPCF128, "expl") 170HANDLE_LIBCALL(EXP_FINITE_F32, "__expf_finite") 171HANDLE_LIBCALL(EXP_FINITE_F64, "__exp_finite") 172HANDLE_LIBCALL(EXP_FINITE_F80, "__expl_finite") 173HANDLE_LIBCALL(EXP_FINITE_F128, "__expl_finite") 174HANDLE_LIBCALL(EXP_FINITE_PPCF128, "__expl_finite") 175HANDLE_LIBCALL(EXP2_F32, "exp2f") 176HANDLE_LIBCALL(EXP2_F64, "exp2") 177HANDLE_LIBCALL(EXP2_F80, "exp2l") 178HANDLE_LIBCALL(EXP2_F128, "exp2l") 179HANDLE_LIBCALL(EXP2_PPCF128, "exp2l") 180HANDLE_LIBCALL(EXP2_FINITE_F32, "__exp2f_finite") 181HANDLE_LIBCALL(EXP2_FINITE_F64, "__exp2_finite") 182HANDLE_LIBCALL(EXP2_FINITE_F80, "__exp2l_finite") 183HANDLE_LIBCALL(EXP2_FINITE_F128, "__exp2l_finite") 184HANDLE_LIBCALL(EXP2_FINITE_PPCF128, "__exp2l_finite") 185HANDLE_LIBCALL(EXP10_F32, "exp10f") 186HANDLE_LIBCALL(EXP10_F64, "exp10") 187HANDLE_LIBCALL(EXP10_F80, "exp10l") 188HANDLE_LIBCALL(EXP10_F128, "exp10l") 189HANDLE_LIBCALL(EXP10_PPCF128, "exp10l") 190HANDLE_LIBCALL(SIN_F32, "sinf") 191HANDLE_LIBCALL(SIN_F64, "sin") 192HANDLE_LIBCALL(SIN_F80, "sinl") 193HANDLE_LIBCALL(SIN_F128, "sinl") 194HANDLE_LIBCALL(SIN_PPCF128, "sinl") 195HANDLE_LIBCALL(COS_F32, "cosf") 196HANDLE_LIBCALL(COS_F64, "cos") 197HANDLE_LIBCALL(COS_F80, "cosl") 198HANDLE_LIBCALL(COS_F128, "cosl") 199HANDLE_LIBCALL(COS_PPCF128, "cosl") 200HANDLE_LIBCALL(SINCOS_F32, nullptr) 201HANDLE_LIBCALL(SINCOS_F64, nullptr) 202HANDLE_LIBCALL(SINCOS_F80, nullptr) 203HANDLE_LIBCALL(SINCOS_F128, nullptr) 204HANDLE_LIBCALL(SINCOS_PPCF128, nullptr) 205HANDLE_LIBCALL(SINCOS_STRET_F32, nullptr) 206HANDLE_LIBCALL(SINCOS_STRET_F64, nullptr) 207HANDLE_LIBCALL(POW_F32, "powf") 208HANDLE_LIBCALL(POW_F64, "pow") 209HANDLE_LIBCALL(POW_F80, "powl") 210HANDLE_LIBCALL(POW_F128, "powl") 211HANDLE_LIBCALL(POW_PPCF128, "powl") 212HANDLE_LIBCALL(POW_FINITE_F32, "__powf_finite") 213HANDLE_LIBCALL(POW_FINITE_F64, "__pow_finite") 214HANDLE_LIBCALL(POW_FINITE_F80, "__powl_finite") 215HANDLE_LIBCALL(POW_FINITE_F128, "__powl_finite") 216HANDLE_LIBCALL(POW_FINITE_PPCF128, "__powl_finite") 217HANDLE_LIBCALL(CEIL_F32, "ceilf") 218HANDLE_LIBCALL(CEIL_F64, "ceil") 219HANDLE_LIBCALL(CEIL_F80, "ceill") 220HANDLE_LIBCALL(CEIL_F128, "ceill") 221HANDLE_LIBCALL(CEIL_PPCF128, "ceill") 222HANDLE_LIBCALL(TRUNC_F32, "truncf") 223HANDLE_LIBCALL(TRUNC_F64, "trunc") 224HANDLE_LIBCALL(TRUNC_F80, "truncl") 225HANDLE_LIBCALL(TRUNC_F128, "truncl") 226HANDLE_LIBCALL(TRUNC_PPCF128, "truncl") 227HANDLE_LIBCALL(RINT_F32, "rintf") 228HANDLE_LIBCALL(RINT_F64, "rint") 229HANDLE_LIBCALL(RINT_F80, "rintl") 230HANDLE_LIBCALL(RINT_F128, "rintl") 231HANDLE_LIBCALL(RINT_PPCF128, "rintl") 232HANDLE_LIBCALL(NEARBYINT_F32, "nearbyintf") 233HANDLE_LIBCALL(NEARBYINT_F64, "nearbyint") 234HANDLE_LIBCALL(NEARBYINT_F80, "nearbyintl") 235HANDLE_LIBCALL(NEARBYINT_F128, "nearbyintl") 236HANDLE_LIBCALL(NEARBYINT_PPCF128, "nearbyintl") 237HANDLE_LIBCALL(ROUND_F32, "roundf") 238HANDLE_LIBCALL(ROUND_F64, "round") 239HANDLE_LIBCALL(ROUND_F80, "roundl") 240HANDLE_LIBCALL(ROUND_F128, "roundl") 241HANDLE_LIBCALL(ROUND_PPCF128, "roundl") 242HANDLE_LIBCALL(ROUNDEVEN_F32, "roundevenf") 243HANDLE_LIBCALL(ROUNDEVEN_F64, "roundeven") 244HANDLE_LIBCALL(ROUNDEVEN_F80, "roundevenl") 245HANDLE_LIBCALL(ROUNDEVEN_F128, "roundevenl") 246HANDLE_LIBCALL(ROUNDEVEN_PPCF128, "roundevenl") 247HANDLE_LIBCALL(FLOOR_F32, "floorf") 248HANDLE_LIBCALL(FLOOR_F64, "floor") 249HANDLE_LIBCALL(FLOOR_F80, "floorl") 250HANDLE_LIBCALL(FLOOR_F128, "floorl") 251HANDLE_LIBCALL(FLOOR_PPCF128, "floorl") 252HANDLE_LIBCALL(COPYSIGN_F32, "copysignf") 253HANDLE_LIBCALL(COPYSIGN_F64, "copysign") 254HANDLE_LIBCALL(COPYSIGN_F80, "copysignl") 255HANDLE_LIBCALL(COPYSIGN_F128, "copysignl") 256HANDLE_LIBCALL(COPYSIGN_PPCF128, "copysignl") 257HANDLE_LIBCALL(FMIN_F32, "fminf") 258HANDLE_LIBCALL(FMIN_F64, "fmin") 259HANDLE_LIBCALL(FMIN_F80, "fminl") 260HANDLE_LIBCALL(FMIN_F128, "fminl") 261HANDLE_LIBCALL(FMIN_PPCF128, "fminl") 262HANDLE_LIBCALL(FMAX_F32, "fmaxf") 263HANDLE_LIBCALL(FMAX_F64, "fmax") 264HANDLE_LIBCALL(FMAX_F80, "fmaxl") 265HANDLE_LIBCALL(FMAX_F128, "fmaxl") 266HANDLE_LIBCALL(FMAX_PPCF128, "fmaxl") 267HANDLE_LIBCALL(LROUND_F32, "lroundf") 268HANDLE_LIBCALL(LROUND_F64, "lround") 269HANDLE_LIBCALL(LROUND_F80, "lroundl") 270HANDLE_LIBCALL(LROUND_F128, "lroundl") 271HANDLE_LIBCALL(LROUND_PPCF128, "lroundl") 272HANDLE_LIBCALL(LLROUND_F32, "llroundf") 273HANDLE_LIBCALL(LLROUND_F64, "llround") 274HANDLE_LIBCALL(LLROUND_F80, "llroundl") 275HANDLE_LIBCALL(LLROUND_F128, "llroundl") 276HANDLE_LIBCALL(LLROUND_PPCF128, "llroundl") 277HANDLE_LIBCALL(LRINT_F32, "lrintf") 278HANDLE_LIBCALL(LRINT_F64, "lrint") 279HANDLE_LIBCALL(LRINT_F80, "lrintl") 280HANDLE_LIBCALL(LRINT_F128, "lrintl") 281HANDLE_LIBCALL(LRINT_PPCF128, "lrintl") 282HANDLE_LIBCALL(LLRINT_F32, "llrintf") 283HANDLE_LIBCALL(LLRINT_F64, "llrint") 284HANDLE_LIBCALL(LLRINT_F80, "llrintl") 285HANDLE_LIBCALL(LLRINT_F128, "llrintl") 286HANDLE_LIBCALL(LLRINT_PPCF128, "llrintl") 287HANDLE_LIBCALL(LDEXP_F32, "ldexpf") 288HANDLE_LIBCALL(LDEXP_F64, "ldexp") 289HANDLE_LIBCALL(LDEXP_F80, "ldexpl") 290HANDLE_LIBCALL(LDEXP_F128, "ldexpl") 291HANDLE_LIBCALL(LDEXP_PPCF128, "ldexpl") 292HANDLE_LIBCALL(FREXP_F32, "frexpf") 293HANDLE_LIBCALL(FREXP_F64, "frexp") 294HANDLE_LIBCALL(FREXP_F80, "frexpl") 295HANDLE_LIBCALL(FREXP_F128, "frexpl") 296HANDLE_LIBCALL(FREXP_PPCF128, "frexpl") 297 298// Floating point environment 299HANDLE_LIBCALL(FEGETENV, "fegetenv") 300HANDLE_LIBCALL(FESETENV, "fesetenv") 301 302// Floating point control modes 303HANDLE_LIBCALL(FEGETMODE, "fegetmode") 304HANDLE_LIBCALL(FESETMODE, "fesetmode") 305 306// Conversion 307HANDLE_LIBCALL(FPEXT_BF16_F32, "__extendbfsf2") 308HANDLE_LIBCALL(FPEXT_F32_PPCF128, "__gcc_stoq") 309HANDLE_LIBCALL(FPEXT_F64_PPCF128, "__gcc_dtoq") 310HANDLE_LIBCALL(FPEXT_F80_F128, "__extendxftf2") 311HANDLE_LIBCALL(FPEXT_F64_F128, "__extenddftf2") 312HANDLE_LIBCALL(FPEXT_F32_F128, "__extendsftf2") 313HANDLE_LIBCALL(FPEXT_F16_F128, "__extendhftf2") 314HANDLE_LIBCALL(FPEXT_F16_F80, "__extendhfxf2") 315HANDLE_LIBCALL(FPEXT_F32_F64, "__extendsfdf2") 316HANDLE_LIBCALL(FPEXT_F16_F64, "__extendhfdf2") 317HANDLE_LIBCALL(FPEXT_F16_F32, "__gnu_h2f_ieee") 318HANDLE_LIBCALL(FPROUND_F32_F16, "__gnu_f2h_ieee") 319HANDLE_LIBCALL(FPROUND_F64_F16, "__truncdfhf2") 320HANDLE_LIBCALL(FPROUND_F80_F16, "__truncxfhf2") 321HANDLE_LIBCALL(FPROUND_F128_F16, "__trunctfhf2") 322HANDLE_LIBCALL(FPROUND_PPCF128_F16, "__trunctfhf2") 323HANDLE_LIBCALL(FPROUND_F32_BF16, "__truncsfbf2") 324HANDLE_LIBCALL(FPROUND_F64_BF16, "__truncdfbf2") 325HANDLE_LIBCALL(FPROUND_F64_F32, "__truncdfsf2") 326HANDLE_LIBCALL(FPROUND_F80_F32, "__truncxfsf2") 327HANDLE_LIBCALL(FPROUND_F128_F32, "__trunctfsf2") 328HANDLE_LIBCALL(FPROUND_PPCF128_F32, "__gcc_qtos") 329HANDLE_LIBCALL(FPROUND_F80_F64, "__truncxfdf2") 330HANDLE_LIBCALL(FPROUND_F128_F64, "__trunctfdf2") 331HANDLE_LIBCALL(FPROUND_PPCF128_F64, "__gcc_qtod") 332HANDLE_LIBCALL(FPROUND_F128_F80, "__trunctfxf2") 333HANDLE_LIBCALL(FPTOSINT_F16_I32, "__fixhfsi") 334HANDLE_LIBCALL(FPTOSINT_F16_I64, "__fixhfdi") 335HANDLE_LIBCALL(FPTOSINT_F16_I128, "__fixhfti") 336HANDLE_LIBCALL(FPTOSINT_F32_I32, "__fixsfsi") 337HANDLE_LIBCALL(FPTOSINT_F32_I64, "__fixsfdi") 338HANDLE_LIBCALL(FPTOSINT_F32_I128, "__fixsfti") 339HANDLE_LIBCALL(FPTOSINT_F64_I32, "__fixdfsi") 340HANDLE_LIBCALL(FPTOSINT_F64_I64, "__fixdfdi") 341HANDLE_LIBCALL(FPTOSINT_F64_I128, "__fixdfti") 342HANDLE_LIBCALL(FPTOSINT_F80_I32, "__fixxfsi") 343HANDLE_LIBCALL(FPTOSINT_F80_I64, "__fixxfdi") 344HANDLE_LIBCALL(FPTOSINT_F80_I128, "__fixxfti") 345HANDLE_LIBCALL(FPTOSINT_F128_I32, "__fixtfsi") 346HANDLE_LIBCALL(FPTOSINT_F128_I64, "__fixtfdi") 347HANDLE_LIBCALL(FPTOSINT_F128_I128, "__fixtfti") 348HANDLE_LIBCALL(FPTOSINT_PPCF128_I32, "__gcc_qtou") 349HANDLE_LIBCALL(FPTOSINT_PPCF128_I64, "__fixtfdi") 350HANDLE_LIBCALL(FPTOSINT_PPCF128_I128, "__fixtfti") 351HANDLE_LIBCALL(FPTOUINT_F16_I32, "__fixunshfsi") 352HANDLE_LIBCALL(FPTOUINT_F16_I64, "__fixunshfdi") 353HANDLE_LIBCALL(FPTOUINT_F16_I128, "__fixunshfti") 354HANDLE_LIBCALL(FPTOUINT_F32_I32, "__fixunssfsi") 355HANDLE_LIBCALL(FPTOUINT_F32_I64, "__fixunssfdi") 356HANDLE_LIBCALL(FPTOUINT_F32_I128, "__fixunssfti") 357HANDLE_LIBCALL(FPTOUINT_F64_I32, "__fixunsdfsi") 358HANDLE_LIBCALL(FPTOUINT_F64_I64, "__fixunsdfdi") 359HANDLE_LIBCALL(FPTOUINT_F64_I128, "__fixunsdfti") 360HANDLE_LIBCALL(FPTOUINT_F80_I32, "__fixunsxfsi") 361HANDLE_LIBCALL(FPTOUINT_F80_I64, "__fixunsxfdi") 362HANDLE_LIBCALL(FPTOUINT_F80_I128, "__fixunsxfti") 363HANDLE_LIBCALL(FPTOUINT_F128_I32, "__fixunstfsi") 364HANDLE_LIBCALL(FPTOUINT_F128_I64, "__fixunstfdi") 365HANDLE_LIBCALL(FPTOUINT_F128_I128, "__fixunstfti") 366HANDLE_LIBCALL(FPTOUINT_PPCF128_I32, "__fixunstfsi") 367HANDLE_LIBCALL(FPTOUINT_PPCF128_I64, "__fixunstfdi") 368HANDLE_LIBCALL(FPTOUINT_PPCF128_I128, "__fixunstfti") 369HANDLE_LIBCALL(SINTTOFP_I32_F16, "__floatsihf") 370HANDLE_LIBCALL(SINTTOFP_I32_F32, "__floatsisf") 371HANDLE_LIBCALL(SINTTOFP_I32_F64, "__floatsidf") 372HANDLE_LIBCALL(SINTTOFP_I32_F80, "__floatsixf") 373HANDLE_LIBCALL(SINTTOFP_I32_F128, "__floatsitf") 374HANDLE_LIBCALL(SINTTOFP_I32_PPCF128, "__gcc_itoq") 375HANDLE_LIBCALL(SINTTOFP_I64_F16, "__floatdihf") 376HANDLE_LIBCALL(SINTTOFP_I64_F32, "__floatdisf") 377HANDLE_LIBCALL(SINTTOFP_I64_F64, "__floatdidf") 378HANDLE_LIBCALL(SINTTOFP_I64_F80, "__floatdixf") 379HANDLE_LIBCALL(SINTTOFP_I64_F128, "__floatditf") 380HANDLE_LIBCALL(SINTTOFP_I64_PPCF128, "__floatditf") 381HANDLE_LIBCALL(SINTTOFP_I128_F16, "__floattihf") 382HANDLE_LIBCALL(SINTTOFP_I128_F32, "__floattisf") 383HANDLE_LIBCALL(SINTTOFP_I128_F64, "__floattidf") 384HANDLE_LIBCALL(SINTTOFP_I128_F80, "__floattixf") 385HANDLE_LIBCALL(SINTTOFP_I128_F128, "__floattitf") 386HANDLE_LIBCALL(SINTTOFP_I128_PPCF128, "__floattitf") 387HANDLE_LIBCALL(UINTTOFP_I32_F16, "__floatunsihf") 388HANDLE_LIBCALL(UINTTOFP_I32_F32, "__floatunsisf") 389HANDLE_LIBCALL(UINTTOFP_I32_F64, "__floatunsidf") 390HANDLE_LIBCALL(UINTTOFP_I32_F80, "__floatunsixf") 391HANDLE_LIBCALL(UINTTOFP_I32_F128, "__floatunsitf") 392HANDLE_LIBCALL(UINTTOFP_I32_PPCF128, "__gcc_utoq") 393HANDLE_LIBCALL(UINTTOFP_I64_F16, "__floatundihf") 394HANDLE_LIBCALL(UINTTOFP_I64_F32, "__floatundisf") 395HANDLE_LIBCALL(UINTTOFP_I64_F64, "__floatundidf") 396HANDLE_LIBCALL(UINTTOFP_I64_F80, "__floatundixf") 397HANDLE_LIBCALL(UINTTOFP_I64_F128, "__floatunditf") 398HANDLE_LIBCALL(UINTTOFP_I64_PPCF128, "__floatunditf") 399HANDLE_LIBCALL(UINTTOFP_I128_F16, "__floatuntihf") 400HANDLE_LIBCALL(UINTTOFP_I128_F32, "__floatuntisf") 401HANDLE_LIBCALL(UINTTOFP_I128_F64, "__floatuntidf") 402HANDLE_LIBCALL(UINTTOFP_I128_F80, "__floatuntixf") 403HANDLE_LIBCALL(UINTTOFP_I128_F128, "__floatuntitf") 404HANDLE_LIBCALL(UINTTOFP_I128_PPCF128, "__floatuntitf") 405HANDLE_LIBCALL(CONVERT_F128_PPCF128, "__extendkftf2") 406HANDLE_LIBCALL(CONVERT_PPCF128_F128, "__trunctfkf2") 407 408// Comparison 409HANDLE_LIBCALL(OEQ_F32, "__eqsf2") 410HANDLE_LIBCALL(OEQ_F64, "__eqdf2") 411HANDLE_LIBCALL(OEQ_F128, "__eqtf2") 412HANDLE_LIBCALL(OEQ_PPCF128, "__gcc_qeq") 413HANDLE_LIBCALL(UNE_F32, "__nesf2") 414HANDLE_LIBCALL(UNE_F64, "__nedf2") 415HANDLE_LIBCALL(UNE_F128, "__netf2") 416HANDLE_LIBCALL(UNE_PPCF128, "__gcc_qne") 417HANDLE_LIBCALL(OGE_F32, "__gesf2") 418HANDLE_LIBCALL(OGE_F64, "__gedf2") 419HANDLE_LIBCALL(OGE_F128, "__getf2") 420HANDLE_LIBCALL(OGE_PPCF128, "__gcc_qge") 421HANDLE_LIBCALL(OLT_F32, "__ltsf2") 422HANDLE_LIBCALL(OLT_F64, "__ltdf2") 423HANDLE_LIBCALL(OLT_F128, "__lttf2") 424HANDLE_LIBCALL(OLT_PPCF128, "__gcc_qlt") 425HANDLE_LIBCALL(OLE_F32, "__lesf2") 426HANDLE_LIBCALL(OLE_F64, "__ledf2") 427HANDLE_LIBCALL(OLE_F128, "__letf2") 428HANDLE_LIBCALL(OLE_PPCF128, "__gcc_qle") 429HANDLE_LIBCALL(OGT_F32, "__gtsf2") 430HANDLE_LIBCALL(OGT_F64, "__gtdf2") 431HANDLE_LIBCALL(OGT_F128, "__gttf2") 432HANDLE_LIBCALL(OGT_PPCF128, "__gcc_qgt") 433HANDLE_LIBCALL(UO_F32, "__unordsf2") 434HANDLE_LIBCALL(UO_F64, "__unorddf2") 435HANDLE_LIBCALL(UO_F128, "__unordtf2") 436HANDLE_LIBCALL(UO_PPCF128, "__gcc_qunord") 437 438// Memory 439HANDLE_LIBCALL(MEMCPY, "memcpy") 440HANDLE_LIBCALL(MEMMOVE, "memmove") 441HANDLE_LIBCALL(MEMSET, "memset") 442// DSEPass can emit calloc if it finds a pair of malloc/memset 443HANDLE_LIBCALL(CALLOC, "calloc") 444HANDLE_LIBCALL(BZERO, nullptr) 445 446// Element-wise unordered-atomic memory of different sizes 447HANDLE_LIBCALL(MEMCPY_ELEMENT_UNORDERED_ATOMIC_1, "__llvm_memcpy_element_unordered_atomic_1") 448HANDLE_LIBCALL(MEMCPY_ELEMENT_UNORDERED_ATOMIC_2, "__llvm_memcpy_element_unordered_atomic_2") 449HANDLE_LIBCALL(MEMCPY_ELEMENT_UNORDERED_ATOMIC_4, "__llvm_memcpy_element_unordered_atomic_4") 450HANDLE_LIBCALL(MEMCPY_ELEMENT_UNORDERED_ATOMIC_8, "__llvm_memcpy_element_unordered_atomic_8") 451HANDLE_LIBCALL(MEMCPY_ELEMENT_UNORDERED_ATOMIC_16, "__llvm_memcpy_element_unordered_atomic_16") 452HANDLE_LIBCALL(MEMMOVE_ELEMENT_UNORDERED_ATOMIC_1, "__llvm_memmove_element_unordered_atomic_1") 453HANDLE_LIBCALL(MEMMOVE_ELEMENT_UNORDERED_ATOMIC_2, "__llvm_memmove_element_unordered_atomic_2") 454HANDLE_LIBCALL(MEMMOVE_ELEMENT_UNORDERED_ATOMIC_4, "__llvm_memmove_element_unordered_atomic_4") 455HANDLE_LIBCALL(MEMMOVE_ELEMENT_UNORDERED_ATOMIC_8, "__llvm_memmove_element_unordered_atomic_8") 456HANDLE_LIBCALL(MEMMOVE_ELEMENT_UNORDERED_ATOMIC_16, "__llvm_memmove_element_unordered_atomic_16") 457HANDLE_LIBCALL(MEMSET_ELEMENT_UNORDERED_ATOMIC_1, "__llvm_memset_element_unordered_atomic_1") 458HANDLE_LIBCALL(MEMSET_ELEMENT_UNORDERED_ATOMIC_2, "__llvm_memset_element_unordered_atomic_2") 459HANDLE_LIBCALL(MEMSET_ELEMENT_UNORDERED_ATOMIC_4, "__llvm_memset_element_unordered_atomic_4") 460HANDLE_LIBCALL(MEMSET_ELEMENT_UNORDERED_ATOMIC_8, "__llvm_memset_element_unordered_atomic_8") 461HANDLE_LIBCALL(MEMSET_ELEMENT_UNORDERED_ATOMIC_16, "__llvm_memset_element_unordered_atomic_16") 462 463// Exception handling 464HANDLE_LIBCALL(UNWIND_RESUME, "_Unwind_Resume") 465HANDLE_LIBCALL(CXA_END_CLEANUP, "__cxa_end_cleanup") 466 467// Note: there are two sets of atomics libcalls; see 468// <https://llvm.org/docs/Atomics.html> for more info on the 469// difference between them. 470 471// Atomic '__sync_*' libcalls. 472HANDLE_LIBCALL(SYNC_VAL_COMPARE_AND_SWAP_1, "__sync_val_compare_and_swap_1") 473HANDLE_LIBCALL(SYNC_VAL_COMPARE_AND_SWAP_2, "__sync_val_compare_and_swap_2") 474HANDLE_LIBCALL(SYNC_VAL_COMPARE_AND_SWAP_4, "__sync_val_compare_and_swap_4") 475HANDLE_LIBCALL(SYNC_VAL_COMPARE_AND_SWAP_8, "__sync_val_compare_and_swap_8") 476HANDLE_LIBCALL(SYNC_VAL_COMPARE_AND_SWAP_16, "__sync_val_compare_and_swap_16") 477HANDLE_LIBCALL(SYNC_LOCK_TEST_AND_SET_1, "__sync_lock_test_and_set_1") 478HANDLE_LIBCALL(SYNC_LOCK_TEST_AND_SET_2, "__sync_lock_test_and_set_2") 479HANDLE_LIBCALL(SYNC_LOCK_TEST_AND_SET_4, "__sync_lock_test_and_set_4") 480HANDLE_LIBCALL(SYNC_LOCK_TEST_AND_SET_8, "__sync_lock_test_and_set_8") 481HANDLE_LIBCALL(SYNC_LOCK_TEST_AND_SET_16, "__sync_lock_test_and_set_16") 482HANDLE_LIBCALL(SYNC_FETCH_AND_ADD_1, "__sync_fetch_and_add_1") 483HANDLE_LIBCALL(SYNC_FETCH_AND_ADD_2, "__sync_fetch_and_add_2") 484HANDLE_LIBCALL(SYNC_FETCH_AND_ADD_4, "__sync_fetch_and_add_4") 485HANDLE_LIBCALL(SYNC_FETCH_AND_ADD_8, "__sync_fetch_and_add_8") 486HANDLE_LIBCALL(SYNC_FETCH_AND_ADD_16, "__sync_fetch_and_add_16") 487HANDLE_LIBCALL(SYNC_FETCH_AND_SUB_1, "__sync_fetch_and_sub_1") 488HANDLE_LIBCALL(SYNC_FETCH_AND_SUB_2, "__sync_fetch_and_sub_2") 489HANDLE_LIBCALL(SYNC_FETCH_AND_SUB_4, "__sync_fetch_and_sub_4") 490HANDLE_LIBCALL(SYNC_FETCH_AND_SUB_8, "__sync_fetch_and_sub_8") 491HANDLE_LIBCALL(SYNC_FETCH_AND_SUB_16, "__sync_fetch_and_sub_16") 492HANDLE_LIBCALL(SYNC_FETCH_AND_AND_1, "__sync_fetch_and_and_1") 493HANDLE_LIBCALL(SYNC_FETCH_AND_AND_2, "__sync_fetch_and_and_2") 494HANDLE_LIBCALL(SYNC_FETCH_AND_AND_4, "__sync_fetch_and_and_4") 495HANDLE_LIBCALL(SYNC_FETCH_AND_AND_8, "__sync_fetch_and_and_8") 496HANDLE_LIBCALL(SYNC_FETCH_AND_AND_16, "__sync_fetch_and_and_16") 497HANDLE_LIBCALL(SYNC_FETCH_AND_OR_1, "__sync_fetch_and_or_1") 498HANDLE_LIBCALL(SYNC_FETCH_AND_OR_2, "__sync_fetch_and_or_2") 499HANDLE_LIBCALL(SYNC_FETCH_AND_OR_4, "__sync_fetch_and_or_4") 500HANDLE_LIBCALL(SYNC_FETCH_AND_OR_8, "__sync_fetch_and_or_8") 501HANDLE_LIBCALL(SYNC_FETCH_AND_OR_16, "__sync_fetch_and_or_16") 502HANDLE_LIBCALL(SYNC_FETCH_AND_XOR_1, "__sync_fetch_and_xor_1") 503HANDLE_LIBCALL(SYNC_FETCH_AND_XOR_2, "__sync_fetch_and_xor_2") 504HANDLE_LIBCALL(SYNC_FETCH_AND_XOR_4, "__sync_fetch_and_xor_4") 505HANDLE_LIBCALL(SYNC_FETCH_AND_XOR_8, "__sync_fetch_and_xor_8") 506HANDLE_LIBCALL(SYNC_FETCH_AND_XOR_16, "__sync_fetch_and_xor_16") 507HANDLE_LIBCALL(SYNC_FETCH_AND_NAND_1, "__sync_fetch_and_nand_1") 508HANDLE_LIBCALL(SYNC_FETCH_AND_NAND_2, "__sync_fetch_and_nand_2") 509HANDLE_LIBCALL(SYNC_FETCH_AND_NAND_4, "__sync_fetch_and_nand_4") 510HANDLE_LIBCALL(SYNC_FETCH_AND_NAND_8, "__sync_fetch_and_nand_8") 511HANDLE_LIBCALL(SYNC_FETCH_AND_NAND_16, "__sync_fetch_and_nand_16") 512HANDLE_LIBCALL(SYNC_FETCH_AND_MAX_1, "__sync_fetch_and_max_1") 513HANDLE_LIBCALL(SYNC_FETCH_AND_MAX_2, "__sync_fetch_and_max_2") 514HANDLE_LIBCALL(SYNC_FETCH_AND_MAX_4, "__sync_fetch_and_max_4") 515HANDLE_LIBCALL(SYNC_FETCH_AND_MAX_8, "__sync_fetch_and_max_8") 516HANDLE_LIBCALL(SYNC_FETCH_AND_MAX_16, "__sync_fetch_and_max_16") 517HANDLE_LIBCALL(SYNC_FETCH_AND_UMAX_1, "__sync_fetch_and_umax_1") 518HANDLE_LIBCALL(SYNC_FETCH_AND_UMAX_2, "__sync_fetch_and_umax_2") 519HANDLE_LIBCALL(SYNC_FETCH_AND_UMAX_4, "__sync_fetch_and_umax_4") 520HANDLE_LIBCALL(SYNC_FETCH_AND_UMAX_8, "__sync_fetch_and_umax_8") 521HANDLE_LIBCALL(SYNC_FETCH_AND_UMAX_16, "__sync_fetch_and_umax_16") 522HANDLE_LIBCALL(SYNC_FETCH_AND_MIN_1, "__sync_fetch_and_min_1") 523HANDLE_LIBCALL(SYNC_FETCH_AND_MIN_2, "__sync_fetch_and_min_2") 524HANDLE_LIBCALL(SYNC_FETCH_AND_MIN_4, "__sync_fetch_and_min_4") 525HANDLE_LIBCALL(SYNC_FETCH_AND_MIN_8, "__sync_fetch_and_min_8") 526HANDLE_LIBCALL(SYNC_FETCH_AND_MIN_16, "__sync_fetch_and_min_16") 527HANDLE_LIBCALL(SYNC_FETCH_AND_UMIN_1, "__sync_fetch_and_umin_1") 528HANDLE_LIBCALL(SYNC_FETCH_AND_UMIN_2, "__sync_fetch_and_umin_2") 529HANDLE_LIBCALL(SYNC_FETCH_AND_UMIN_4, "__sync_fetch_and_umin_4") 530HANDLE_LIBCALL(SYNC_FETCH_AND_UMIN_8, "__sync_fetch_and_umin_8") 531HANDLE_LIBCALL(SYNC_FETCH_AND_UMIN_16, "__sync_fetch_and_umin_16") 532 533// Atomic `__atomic_*' libcalls. 534HANDLE_LIBCALL(ATOMIC_LOAD, "__atomic_load") 535HANDLE_LIBCALL(ATOMIC_LOAD_1, "__atomic_load_1") 536HANDLE_LIBCALL(ATOMIC_LOAD_2, "__atomic_load_2") 537HANDLE_LIBCALL(ATOMIC_LOAD_4, "__atomic_load_4") 538HANDLE_LIBCALL(ATOMIC_LOAD_8, "__atomic_load_8") 539HANDLE_LIBCALL(ATOMIC_LOAD_16, "__atomic_load_16") 540 541HANDLE_LIBCALL(ATOMIC_STORE, "__atomic_store") 542HANDLE_LIBCALL(ATOMIC_STORE_1, "__atomic_store_1") 543HANDLE_LIBCALL(ATOMIC_STORE_2, "__atomic_store_2") 544HANDLE_LIBCALL(ATOMIC_STORE_4, "__atomic_store_4") 545HANDLE_LIBCALL(ATOMIC_STORE_8, "__atomic_store_8") 546HANDLE_LIBCALL(ATOMIC_STORE_16, "__atomic_store_16") 547 548HANDLE_LIBCALL(ATOMIC_EXCHANGE, "__atomic_exchange") 549HANDLE_LIBCALL(ATOMIC_EXCHANGE_1, "__atomic_exchange_1") 550HANDLE_LIBCALL(ATOMIC_EXCHANGE_2, "__atomic_exchange_2") 551HANDLE_LIBCALL(ATOMIC_EXCHANGE_4, "__atomic_exchange_4") 552HANDLE_LIBCALL(ATOMIC_EXCHANGE_8, "__atomic_exchange_8") 553HANDLE_LIBCALL(ATOMIC_EXCHANGE_16, "__atomic_exchange_16") 554 555HANDLE_LIBCALL(ATOMIC_COMPARE_EXCHANGE, "__atomic_compare_exchange") 556HANDLE_LIBCALL(ATOMIC_COMPARE_EXCHANGE_1, "__atomic_compare_exchange_1") 557HANDLE_LIBCALL(ATOMIC_COMPARE_EXCHANGE_2, "__atomic_compare_exchange_2") 558HANDLE_LIBCALL(ATOMIC_COMPARE_EXCHANGE_4, "__atomic_compare_exchange_4") 559HANDLE_LIBCALL(ATOMIC_COMPARE_EXCHANGE_8, "__atomic_compare_exchange_8") 560HANDLE_LIBCALL(ATOMIC_COMPARE_EXCHANGE_16, "__atomic_compare_exchange_16") 561 562HANDLE_LIBCALL(ATOMIC_FETCH_ADD_1, "__atomic_fetch_add_1") 563HANDLE_LIBCALL(ATOMIC_FETCH_ADD_2, "__atomic_fetch_add_2") 564HANDLE_LIBCALL(ATOMIC_FETCH_ADD_4, "__atomic_fetch_add_4") 565HANDLE_LIBCALL(ATOMIC_FETCH_ADD_8, "__atomic_fetch_add_8") 566HANDLE_LIBCALL(ATOMIC_FETCH_ADD_16, "__atomic_fetch_add_16") 567HANDLE_LIBCALL(ATOMIC_FETCH_SUB_1, "__atomic_fetch_sub_1") 568HANDLE_LIBCALL(ATOMIC_FETCH_SUB_2, "__atomic_fetch_sub_2") 569HANDLE_LIBCALL(ATOMIC_FETCH_SUB_4, "__atomic_fetch_sub_4") 570HANDLE_LIBCALL(ATOMIC_FETCH_SUB_8, "__atomic_fetch_sub_8") 571HANDLE_LIBCALL(ATOMIC_FETCH_SUB_16, "__atomic_fetch_sub_16") 572HANDLE_LIBCALL(ATOMIC_FETCH_AND_1, "__atomic_fetch_and_1") 573HANDLE_LIBCALL(ATOMIC_FETCH_AND_2, "__atomic_fetch_and_2") 574HANDLE_LIBCALL(ATOMIC_FETCH_AND_4, "__atomic_fetch_and_4") 575HANDLE_LIBCALL(ATOMIC_FETCH_AND_8, "__atomic_fetch_and_8") 576HANDLE_LIBCALL(ATOMIC_FETCH_AND_16, "__atomic_fetch_and_16") 577HANDLE_LIBCALL(ATOMIC_FETCH_OR_1, "__atomic_fetch_or_1") 578HANDLE_LIBCALL(ATOMIC_FETCH_OR_2, "__atomic_fetch_or_2") 579HANDLE_LIBCALL(ATOMIC_FETCH_OR_4, "__atomic_fetch_or_4") 580HANDLE_LIBCALL(ATOMIC_FETCH_OR_8, "__atomic_fetch_or_8") 581HANDLE_LIBCALL(ATOMIC_FETCH_OR_16, "__atomic_fetch_or_16") 582HANDLE_LIBCALL(ATOMIC_FETCH_XOR_1, "__atomic_fetch_xor_1") 583HANDLE_LIBCALL(ATOMIC_FETCH_XOR_2, "__atomic_fetch_xor_2") 584HANDLE_LIBCALL(ATOMIC_FETCH_XOR_4, "__atomic_fetch_xor_4") 585HANDLE_LIBCALL(ATOMIC_FETCH_XOR_8, "__atomic_fetch_xor_8") 586HANDLE_LIBCALL(ATOMIC_FETCH_XOR_16, "__atomic_fetch_xor_16") 587HANDLE_LIBCALL(ATOMIC_FETCH_NAND_1, "__atomic_fetch_nand_1") 588HANDLE_LIBCALL(ATOMIC_FETCH_NAND_2, "__atomic_fetch_nand_2") 589HANDLE_LIBCALL(ATOMIC_FETCH_NAND_4, "__atomic_fetch_nand_4") 590HANDLE_LIBCALL(ATOMIC_FETCH_NAND_8, "__atomic_fetch_nand_8") 591HANDLE_LIBCALL(ATOMIC_FETCH_NAND_16, "__atomic_fetch_nand_16") 592 593// Out-of-line atomics libcalls 594#define HLCALLS(A, N) \ 595 HANDLE_LIBCALL(A##N##_RELAX, nullptr) \ 596 HANDLE_LIBCALL(A##N##_ACQ, nullptr) \ 597 HANDLE_LIBCALL(A##N##_REL, nullptr) \ 598 HANDLE_LIBCALL(A##N##_ACQ_REL, nullptr) 599#define HLCALL5(A) \ 600 HLCALLS(A, 1) HLCALLS(A, 2) HLCALLS(A, 4) HLCALLS(A, 8) HLCALLS(A, 16) 601HLCALL5(OUTLINE_ATOMIC_CAS) 602HLCALL5(OUTLINE_ATOMIC_SWP) 603HLCALL5(OUTLINE_ATOMIC_LDADD) 604HLCALL5(OUTLINE_ATOMIC_LDSET) 605HLCALL5(OUTLINE_ATOMIC_LDCLR) 606HLCALL5(OUTLINE_ATOMIC_LDEOR) 607#undef HLCALLS 608#undef HLCALL5 609 610// Stack Protector Fail 611HANDLE_LIBCALL(STACKPROTECTOR_CHECK_FAIL, "__stack_chk_fail") 612 613// Deoptimization 614HANDLE_LIBCALL(DEOPTIMIZE, "__llvm_deoptimize") 615 616// Return address 617HANDLE_LIBCALL(RETURN_ADDRESS, nullptr) 618 619HANDLE_LIBCALL(UNKNOWN_LIBCALL, nullptr) 620 621