2929#error "HANDLE_LIBCALL must be defined"
3030#endif
3131
32+ #ifndef HANDLE_NAMELESS_LIBCALL
33+ #define HANDLE_NAMELESS_LIBCALL (code ) HANDLE_LIBCALL(code, nullptr )
34+ #endif
35+
3236// Integer
3337HANDLE_LIBCALL (SHL_I16, " __ashlhi3" )
3438HANDLE_LIBCALL(SHL_I32, " __ashlsi3" )
@@ -70,16 +74,16 @@ HANDLE_LIBCALL(UREM_I16, "__umodhi3")
7074HANDLE_LIBCALL(UREM_I32, " __umodsi3" )
7175HANDLE_LIBCALL(UREM_I64, " __umoddi3" )
7276HANDLE_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 )
77+ HANDLE_NAMELESS_LIBCALL (SDIVREM_I8)
78+ HANDLE_NAMELESS_LIBCALL (SDIVREM_I16)
79+ HANDLE_NAMELESS_LIBCALL (SDIVREM_I32)
80+ HANDLE_NAMELESS_LIBCALL (SDIVREM_I64)
81+ HANDLE_NAMELESS_LIBCALL (SDIVREM_I128)
82+ HANDLE_NAMELESS_LIBCALL (UDIVREM_I8)
83+ HANDLE_NAMELESS_LIBCALL (UDIVREM_I16)
84+ HANDLE_NAMELESS_LIBCALL (UDIVREM_I32)
85+ HANDLE_NAMELESS_LIBCALL (UDIVREM_I64)
86+ HANDLE_NAMELESS_LIBCALL (UDIVREM_I128)
8387HANDLE_LIBCALL(NEG_I32, " __negsi2" )
8488HANDLE_LIBCALL(NEG_I64, " __negdi2" )
8589HANDLE_LIBCALL(CTLZ_I32, " __clzsi2" )
@@ -240,13 +244,13 @@ HANDLE_LIBCALL(ATAN2_F64, "atan2")
240244HANDLE_LIBCALL(ATAN2_F80, " atan2l" )
241245HANDLE_LIBCALL(ATAN2_F128," atan2l" )
242246HANDLE_LIBCALL(ATAN2_PPCF128, " atan2l" )
243- HANDLE_LIBCALL (SINCOS_F32, nullptr )
244- HANDLE_LIBCALL (SINCOS_F64, nullptr )
245- HANDLE_LIBCALL (SINCOS_F80, nullptr )
246- HANDLE_LIBCALL (SINCOS_F128, nullptr )
247- HANDLE_LIBCALL (SINCOS_PPCF128, nullptr )
248- HANDLE_LIBCALL (SINCOS_STRET_F32, nullptr )
249- HANDLE_LIBCALL (SINCOS_STRET_F64, nullptr )
247+ HANDLE_NAMELESS_LIBCALL (SINCOS_F32)
248+ HANDLE_NAMELESS_LIBCALL (SINCOS_F64)
249+ HANDLE_NAMELESS_LIBCALL (SINCOS_F80)
250+ HANDLE_NAMELESS_LIBCALL (SINCOS_F128)
251+ HANDLE_NAMELESS_LIBCALL (SINCOS_PPCF128)
252+ HANDLE_NAMELESS_LIBCALL (SINCOS_STRET_F32)
253+ HANDLE_NAMELESS_LIBCALL (SINCOS_STRET_F64)
250254HANDLE_LIBCALL(POW_F32, " powf" )
251255HANDLE_LIBCALL(POW_F64, " pow" )
252256HANDLE_LIBCALL(POW_F80, " powl" )
@@ -518,7 +522,7 @@ HANDLE_LIBCALL(MEMMOVE, "memmove")
518522HANDLE_LIBCALL(MEMSET, " memset" )
519523// DSEPass can emit calloc if it finds a pair of malloc/memset
520524HANDLE_LIBCALL(CALLOC, " calloc" )
521- HANDLE_LIBCALL (BZERO, nullptr )
525+ HANDLE_NAMELESS_LIBCALL (BZERO)
522526
523527// Element-wise unordered-atomic memory of different sizes
524528HANDLE_LIBCALL(MEMCPY_ELEMENT_UNORDERED_ATOMIC_1, " __llvm_memcpy_element_unordered_atomic_1" )
@@ -669,10 +673,10 @@ HANDLE_LIBCALL(ATOMIC_FETCH_NAND_16, "__atomic_fetch_nand_16")
669673
670674// Out-of-line atomics libcalls
671675#define HLCALLS (A, N ) \
672- HANDLE_LIBCALL (A##N##_RELAX, nullptr ) \
673- HANDLE_LIBCALL (A##N##_ACQ, nullptr ) \
674- HANDLE_LIBCALL (A##N##_REL, nullptr ) \
675- HANDLE_LIBCALL (A##N##_ACQ_REL, nullptr )
676+ HANDLE_NAMELESS_LIBCALL (A##N##_RELAX) \
677+ HANDLE_NAMELESS_LIBCALL (A##N##_ACQ) \
678+ HANDLE_NAMELESS_LIBCALL (A##N##_REL) \
679+ HANDLE_NAMELESS_LIBCALL (A##N##_ACQ_REL)
676680#define HLCALL5 (A ) \
677681 HLCALLS (A, 1 ) HLCALLS(A, 2 ) HLCALLS(A, 4 ) HLCALLS(A, 8 ) HLCALLS(A, 16 )
678682HLCALL5(OUTLINE_ATOMIC_CAS)
@@ -691,11 +695,12 @@ HANDLE_LIBCALL(STACKPROTECTOR_CHECK_FAIL, "__stack_chk_fail")
691695HANDLE_LIBCALL(DEOPTIMIZE, " __llvm_deoptimize" )
692696
693697// Return address
694- HANDLE_LIBCALL (RETURN_ADDRESS, nullptr )
698+ HANDLE_NAMELESS_LIBCALL (RETURN_ADDRESS)
695699
696700// Clear cache
697701HANDLE_LIBCALL(CLEAR_CACHE, " __clear_cache" )
698702HANDLE_LIBCALL(RISCV_FLUSH_ICACHE, " __riscv_flush_icache" )
699703
700- HANDLE_LIBCALL (UNKNOWN_LIBCALL, nullptr )
704+ HANDLE_NAMELESS_LIBCALL (UNKNOWN_LIBCALL)
701705
706+ #undef HANDLE_NAMELESS_LIBCALL
0 commit comments