Index: compiler-rt/trunk/lib/builtins/CMakeLists.txt =================================================================== --- compiler-rt/trunk/lib/builtins/CMakeLists.txt +++ compiler-rt/trunk/lib/builtins/CMakeLists.txt @@ -167,6 +167,26 @@ umodti3.c emutls.c) +set(GENERIC_TF_SOURCES + comparetf2.c + extenddftf2.c + extendsftf2.c + fixtfdi.c + fixtfsi.c + fixtfti.c + fixunstfdi.c + fixunstfsi.c + fixunstfti.c + floatditf.c + floatsitf.c + floattitf.c + floatunditf.c + floatunsitf.c + floatuntitf.c + multc3.c + trunctfdf2.c + trunctfsf2.c) + option(COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN "Skip the atomic builtin (this may be needed if system headers are unavailable)" Off) @@ -404,24 +424,7 @@ endif() set(aarch64_SOURCES - comparetf2.c - extenddftf2.c - extendsftf2.c - fixtfdi.c - fixtfsi.c - fixtfti.c - fixunstfdi.c - fixunstfsi.c - fixunstfti.c - floatditf.c - floatsitf.c - floattitf.c - floatunditf.c - floatunsitf.c - floatuntitf.c - multc3.c - trunctfdf2.c - trunctfsf2.c + ${GENERIC_TF_SOURCES} ${GENERIC_SOURCES}) set(armhf_SOURCES ${arm_SOURCES}) @@ -437,8 +440,10 @@ set(mips_SOURCES ${GENERIC_SOURCES}) set(mipsel_SOURCES ${mips_SOURCES}) -set(mips64_SOURCES ${mips_SOURCES}) -set(mips64el_SOURCES ${mips_SOURCES}) +set(mips64_SOURCES ${GENERIC_TF_SOURCES} + ${mips_SOURCES}) +set(mips64el_SOURCES ${GENERIC_TF_SOURCES} + ${mips_SOURCES}) set(wasm32_SOURCES ${GENERIC_SOURCES}) set(wasm64_SOURCES ${GENERIC_SOURCES}) Index: compiler-rt/trunk/lib/builtins/int_types.h =================================================================== --- compiler-rt/trunk/lib/builtins/int_types.h +++ compiler-rt/trunk/lib/builtins/int_types.h @@ -60,9 +60,7 @@ }s; } udwords; -/* MIPS64 issue: PR 20098 */ -#if (defined(__LP64__) || defined(__wasm__)) && \ - !(defined(__mips__) && defined(__clang__)) +#if (defined(__LP64__) || defined(__wasm__) || defined(__mips64)) #define CRT_HAS_128BIT #endif Index: compiler-rt/trunk/test/builtins/Unit/divxc3_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/divxc3_test.c +++ compiler-rt/trunk/test/builtins/Unit/divxc3_test.c @@ -19,6 +19,7 @@ #include #include +// UNSUPPORTED: mips // REQUIRES: c99-complex // Returns: the quotient of (a + ib) / (c + id) Index: compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c +++ compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c @@ -14,6 +14,8 @@ #include +// UNSUPPORTED: mips + #if __LDBL_MANT_DIG__ == 113 #include "fp_test.h" Index: compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c +++ compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c @@ -2,6 +2,8 @@ // XFAIL: aarch64 // test fails for aarch64 (see pr32260) +// UNSUPPORTED: mips + //===-- fixunsxfti_test.c - Test __fixunsxfti -----------------------------===// // // The LLVM Compiler Infrastructure Index: compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c +++ compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c @@ -2,6 +2,8 @@ // XFAIL: aarch64 // test fails for aarch64 (see pr32260) +// UNSUPPORTED: mips + //===-- fixxfti_test.c - Test __fixxfti -----------------------------------===// // // The LLVM Compiler Infrastructure Index: compiler-rt/trunk/test/builtins/Unit/floattixf_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/floattixf_test.c +++ compiler-rt/trunk/test/builtins/Unit/floattixf_test.c @@ -2,6 +2,8 @@ // XFAIL: aarch64 // test fails for aarch64 (see pr32260) +// UNSUPPORTED: mips + //===-- floattixf.c - Test __floattixf ------------------------------------===// // // The LLVM Compiler Infrastructure Index: compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c +++ compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c @@ -2,6 +2,8 @@ // XFAIL: aarch64 // test fails for aarch64 (see pr32260) +// UNSUPPORTED: mips + //===-- floatuntixf.c - Test __floatuntixf --------------------------------===// // // The LLVM Compiler Infrastructure Index: compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c +++ compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c @@ -19,6 +19,7 @@ #include #include +// UNSUPPORTED: mips // REQUIRES: c99-complex // Returns: the product of a + ib and c + id