@@ -439,26 +439,21 @@ let IsDefault = true in {
439439def __ashlhi3 : RuntimeLibcallImpl<SHL_I16>;
440440def __ashlsi3 : RuntimeLibcallImpl<SHL_I32>;
441441def __ashldi3 : RuntimeLibcallImpl<SHL_I64>;
442- def __ashlti3 : RuntimeLibcallImpl<SHL_I128>;
443442
444443def __lshrhi3 : RuntimeLibcallImpl<SRL_I16>;
445444def __lshrsi3 : RuntimeLibcallImpl<SRL_I32>;
446445def __lshrdi3 : RuntimeLibcallImpl<SRL_I64>;
447- def __lshrti3 : RuntimeLibcallImpl<SRL_I128>;
448446
449447def __ashrhi3 : RuntimeLibcallImpl<SRA_I16>;
450448def __ashrsi3 : RuntimeLibcallImpl<SRA_I32>;
451449def __ashrdi3 : RuntimeLibcallImpl<SRA_I64>;
452- def __ashrti3 : RuntimeLibcallImpl<SRA_I128>;
453450
454451def __mulqi3 : RuntimeLibcallImpl<MUL_I8>;
455452def __mulhi3 : RuntimeLibcallImpl<MUL_I16>;
456453def __mulsi3 : RuntimeLibcallImpl<MUL_I32>;
457454def __muldi3 : RuntimeLibcallImpl<MUL_I64>;
458- def __multi3 : RuntimeLibcallImpl<MUL_I128>;
459455
460456def __mulosi4 : RuntimeLibcallImpl<MULO_I32>;
461- def __mulodi4 : RuntimeLibcallImpl<MULO_I64>;
462457
463458def __divqi3 : RuntimeLibcallImpl<SDIV_I8>;
464459def __divhi3 : RuntimeLibcallImpl<SDIV_I16>;
@@ -935,10 +930,29 @@ def calloc : RuntimeLibcallImpl<CALLOC>;
935930} // End let IsDefault = true
936931
937932//--------------------------------------------------------------------
938- // compiler-rt, not available for most architectures 
933+ // compiler-rt/libgcc but 64-bit only , not available by default 
939934//--------------------------------------------------------------------
940935
941- def __muloti4 : RuntimeLibcallImpl<MULO_I128>;
936+ // Exist in libgcc and compiler-rt for 64-bit targets, or if
937+ // COMPILER_RT_ENABLE_SOFTWARE_INT128.
938+ defset list<RuntimeLibcallImpl> Int128RTLibcalls = {
939+   def __ashlti3 : RuntimeLibcallImpl<SHL_I128>;
940+   def __lshrti3 : RuntimeLibcallImpl<SRL_I128>;
941+   def __ashrti3 : RuntimeLibcallImpl<SRA_I128>;
942+   def __multi3 : RuntimeLibcallImpl<MUL_I128>;
943+ }
944+ 
945+ //--------------------------------------------------------------------
946+ // compiler-rt only, not available by default
947+ //--------------------------------------------------------------------
948+ 
949+ defset list<RuntimeLibcallImpl> CompilerRTOnlyInt64Libcalls = {
950+   def __mulodi4 : RuntimeLibcallImpl<MULO_I64>;
951+ }
952+ 
953+ defset list<RuntimeLibcallImpl> CompilerRTOnlyInt128Libcalls = {
954+   def __muloti4 : RuntimeLibcallImpl<MULO_I128>;
955+ }
942956
943957//--------------------------------------------------------------------
944958// Define implementation other libcalls
@@ -1034,21 +1048,6 @@ defset list<RuntimeLibcallImpl> LibmF128FiniteLibcalls = {
10341048defvar AllDefaultRuntimeLibcallImpls
10351049  = !filter(entry, !instances<RuntimeLibcallImpl>(), entry.IsDefault);
10361050
1037- // Exist in libgcc and compiler-rt for 64-bit targets, or if
1038- // COMPILER_RT_ENABLE_SOFTWARE_INT128.
1039- defvar Int128RTLibcalls = [
1040-    __ashlti3, __lshrti3, __ashrti3, __multi3
1041- ];
1042- 
1043- // Only available in compiler-rt
1044- defvar CompilerRTOnlyInt64Libcalls = [
1045-   __mulodi4
1046- ];
1047- 
1048- defvar CompilerRTOnlyInt128Libcalls = [
1049-   __muloti4
1050- ];
1051- 
10521051defvar DefaultRuntimeLibcallImpls_f80 =
10531052    !filter(entry, AllDefaultRuntimeLibcallImpls,
10541053            !match(!cast<string>(entry.Provides), "F80"));
@@ -1064,12 +1063,9 @@ defvar DefaultRuntimeLibcallImpls_f128 =
10641063defvar DefaultRuntimeLibcallImpls =
10651064!listremove(
10661065  !listremove(
1067-     !listremove(
1068-         !listremove(AllDefaultRuntimeLibcallImpls, Int128RTLibcalls),
1069-                     !listconcat(CompilerRTOnlyInt64Libcalls,
1070-                                 CompilerRTOnlyInt128Libcalls)),
1071-                     DefaultRuntimeLibcallImpls_f80),
1072-                     DefaultRuntimeLibcallImpls_ppcf128);
1066+     !listremove(AllDefaultRuntimeLibcallImpls, Int128RTLibcalls),
1067+                 DefaultRuntimeLibcallImpls_f80),
1068+                 DefaultRuntimeLibcallImpls_ppcf128);
10731069
10741070/// Default set of libcall impls for 32-bit architectures.
10751071defvar DefaultLibcallImpls32 = DefaultRuntimeLibcallImpls;
0 commit comments