Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

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