Index: compiler-rt/trunk/lib/builtins/CMakeLists.txt =================================================================== --- compiler-rt/trunk/lib/builtins/CMakeLists.txt +++ compiler-rt/trunk/lib/builtins/CMakeLists.txt @@ -499,7 +499,7 @@ # Needed for clear_cache on debug mode, due to r7's usage in inline asm. # Release mode already sets it via -O2/3, Debug mode doesn't. if (${arch} STREQUAL "armhf") - list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer) + list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET) endif() add_compiler_rt_runtime(clang_rt.builtins Index: compiler-rt/trunk/lib/builtins/int_lib.h =================================================================== --- compiler-rt/trunk/lib/builtins/int_lib.h +++ compiler-rt/trunk/lib/builtins/int_lib.h @@ -32,7 +32,11 @@ #if __ARM_EABI__ # define ARM_EABI_FNALIAS(aeabi_name, name) \ void __aeabi_##aeabi_name() __attribute__((alias("__" #name))); -# define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) +# ifdef COMPILER_RT_ARMHF_TARGET +# define COMPILER_RT_ABI +# else +# define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) +# endif #else # define ARM_EABI_FNALIAS(aeabi_name, name) # define COMPILER_RT_ABI Index: compiler-rt/trunk/test/builtins/CMakeLists.txt =================================================================== --- compiler-rt/trunk/test/builtins/CMakeLists.txt +++ compiler-rt/trunk/test/builtins/CMakeLists.txt @@ -19,6 +19,11 @@ set(BUILTINS_TEST_TARGET_ARCH ${arch}) string(TOLOWER "-${arch}-${OS_NAME}" BUILTINS_TEST_CONFIG_SUFFIX) get_test_cc_for_arch(${arch} BUILTINS_TEST_TARGET_CC BUILTINS_TEST_TARGET_CFLAGS) + if (${arch} STREQUAL "armhf") + list(APPEND BUILTINS_TEST_TARGET_CFLAGS -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET) + string(REPLACE ";" " " BUILTINS_TEST_TARGET_CFLAGS "${BUILTINS_TEST_TARGET_CFLAGS}") + endif() + string(TOUPPER ${arch} ARCH_UPPER_CASE) set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config) configure_lit_site_cfg( Index: compiler-rt/trunk/test/builtins/Unit/comparedf2_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/comparedf2_test.c +++ compiler-rt/trunk/test/builtins/Unit/comparedf2_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- cmpdf2_test.c - Test __cmpdf2 -------------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/comparesf2_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/comparesf2_test.c +++ compiler-rt/trunk/test/builtins/Unit/comparesf2_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- cmpsf2_test.c - Test __cmpsf2 -------------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/eqdf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/eqdf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/eqdf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- eqdf2vfp_test.c - Test __eqdf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/eqsf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/eqsf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/eqsf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- eqsf2vfp_test.c - Test __eqsf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/fixdfsivfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/fixdfsivfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/fixdfsivfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- fixdfsivfp_test.c - Test __fixdfsivfp -----------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/fixsfsivfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/fixsfsivfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/fixsfsivfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- fixsfsivfp_test.c - Test __fixsfsivfp -----------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/fixunssfsivfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/fixunssfsivfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/fixunssfsivfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- fixunssfsivfp_test.c - Test __fixunssfsivfp -----------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/gedf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/gedf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/gedf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- gedf2vfp_test.c - Test __gedf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/gesf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/gesf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/gesf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- gesf2vfp_test.c - Test __gesf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/gtdf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/gtdf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/gtdf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- gtdf2vfp_test.c - Test __gtdf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/gtsf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/gtsf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/gtsf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- gtsf2vfp_test.c - Test __gtsf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/ledf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/ledf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/ledf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- ledf2vfp_test.c - Test __ledf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/lesf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/lesf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/lesf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- lesf2vfp_test.c - Test __lesf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/ltdf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/ltdf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/ltdf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- ltdf2vfp_test.c - Test __ltdf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/ltsf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/ltsf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/ltsf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- ltsf2vfp_test.c - Test __ltsf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/mulsc3_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/mulsc3_test.c +++ compiler-rt/trunk/test/builtins/Unit/mulsc3_test.c @@ -1,4 +1,6 @@ // RUN: %clang_builtins %s %librt -lm -o %t && %run %t +// XFAIL: armhf-target-arch +// See pr32261 //===-- mulsc3_test.c - Test __mulsc3 -------------------------------------===// // // The LLVM Compiler Infrastructure Index: compiler-rt/trunk/test/builtins/Unit/nedf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/nedf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/nedf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- nedf2vfp_test.c - Test __nedf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/nesf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/nesf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/nesf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- nesf2vfp_test.c - Test __nesf2vfp ---------------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/truncdfhf2_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/truncdfhf2_test.c +++ compiler-rt/trunk/test/builtins/Unit/truncdfhf2_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===--------------- truncdfhf2_test.c - Test __truncdfhf2 ----------------===// // Index: compiler-rt/trunk/test/builtins/Unit/truncdfsf2_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/truncdfsf2_test.c +++ compiler-rt/trunk/test/builtins/Unit/truncdfsf2_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===--------------- truncdfsf2_test.c - Test __truncdfsf2 ----------------===// // Index: compiler-rt/trunk/test/builtins/Unit/truncsfhf2_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/truncsfhf2_test.c +++ compiler-rt/trunk/test/builtins/Unit/truncsfhf2_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===--------------- truncsfhf2_test.c - Test __truncsfhf2 ----------------===// // Index: compiler-rt/trunk/test/builtins/Unit/unorddf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/unorddf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/unorddf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- unorddf2vfp_test.c - Test __unorddf2vfp ---------------------------===// // Index: compiler-rt/trunk/test/builtins/Unit/unordsf2vfp_test.c =================================================================== --- compiler-rt/trunk/test/builtins/Unit/unordsf2vfp_test.c +++ compiler-rt/trunk/test/builtins/Unit/unordsf2vfp_test.c @@ -1,6 +1,4 @@ // RUN: %clang_builtins %s %librt -o %t && %run %t -// XFAIL: armhf-target-arch -// This test fails for armhf (see pr32261) //===-- unordsf2vfp_test.c - Test __unordsf2vfp ---------------------------===// //