diff options
26 files changed, 13 insertions, 46 deletions
diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt index ad9059c33..3f648dcb3 100644 --- a/lib/builtins/CMakeLists.txt +++ b/lib/builtins/CMakeLists.txt @@ -499,7 +499,7 @@ else () # 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 diff --git a/lib/builtins/int_lib.h b/lib/builtins/int_lib.h index 39eee18d9..8a202dde7 100644 --- a/lib/builtins/int_lib.h +++ b/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 diff --git a/test/builtins/CMakeLists.txt b/test/builtins/CMakeLists.txt index fa7a0f4ad..f37e46d3a 100644 --- a/test/builtins/CMakeLists.txt +++ b/test/builtins/CMakeLists.txt @@ -19,6 +19,11 @@ foreach(arch ${BUILTIN_SUPPORTED_ARCH}) 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( diff --git a/test/builtins/Unit/comparedf2_test.c b/test/builtins/Unit/comparedf2_test.c index a7db7a433..844690197 100644 --- a/test/builtins/Unit/comparedf2_test.c +++ b/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 -------------------------------------===// // diff --git a/test/builtins/Unit/comparesf2_test.c b/test/builtins/Unit/comparesf2_test.c index 9f42d9784..1b5902f37 100644 --- a/test/builtins/Unit/comparesf2_test.c +++ b/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 -------------------------------------===// // diff --git a/test/builtins/Unit/eqdf2vfp_test.c b/test/builtins/Unit/eqdf2vfp_test.c index 549c37e1a..69dd37b8f 100644 --- a/test/builtins/Unit/eqdf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/eqsf2vfp_test.c b/test/builtins/Unit/eqsf2vfp_test.c index 628b0fd75..9c8dc1659 100644 --- a/test/builtins/Unit/eqsf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/fixdfsivfp_test.c b/test/builtins/Unit/fixdfsivfp_test.c index 3cd420aa6..33b4d2408 100644 --- a/test/builtins/Unit/fixdfsivfp_test.c +++ b/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 -----------------------------===// // diff --git a/test/builtins/Unit/fixsfsivfp_test.c b/test/builtins/Unit/fixsfsivfp_test.c index 0e233a5f8..ee33a1dc9 100644 --- a/test/builtins/Unit/fixsfsivfp_test.c +++ b/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 -----------------------------===// // diff --git a/test/builtins/Unit/fixunssfsivfp_test.c b/test/builtins/Unit/fixunssfsivfp_test.c index f745d6f55..c1d8ed77f 100644 --- a/test/builtins/Unit/fixunssfsivfp_test.c +++ b/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 -----------------------===// // diff --git a/test/builtins/Unit/gedf2vfp_test.c b/test/builtins/Unit/gedf2vfp_test.c index 17cca9f22..ad72083b4 100644 --- a/test/builtins/Unit/gedf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/gesf2vfp_test.c b/test/builtins/Unit/gesf2vfp_test.c index 240880acb..8a855e12f 100644 --- a/test/builtins/Unit/gesf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/gtdf2vfp_test.c b/test/builtins/Unit/gtdf2vfp_test.c index 9180ec248..e6eb545db 100644 --- a/test/builtins/Unit/gtdf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/gtsf2vfp_test.c b/test/builtins/Unit/gtsf2vfp_test.c index 52e77fee2..e0442c6cd 100644 --- a/test/builtins/Unit/gtsf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/ledf2vfp_test.c b/test/builtins/Unit/ledf2vfp_test.c index b24832377..f0cd56eab 100644 --- a/test/builtins/Unit/ledf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/lesf2vfp_test.c b/test/builtins/Unit/lesf2vfp_test.c index c8ca59045..02ae182e6 100644 --- a/test/builtins/Unit/lesf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/ltdf2vfp_test.c b/test/builtins/Unit/ltdf2vfp_test.c index 238a6f07c..1edb319d4 100644 --- a/test/builtins/Unit/ltdf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/ltsf2vfp_test.c b/test/builtins/Unit/ltsf2vfp_test.c index 837e0a800..2fc0c1127 100644 --- a/test/builtins/Unit/ltsf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/mulsc3_test.c b/test/builtins/Unit/mulsc3_test.c index 4eac07e8d..6b38908fc 100644 --- a/test/builtins/Unit/mulsc3_test.c +++ b/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 diff --git a/test/builtins/Unit/nedf2vfp_test.c b/test/builtins/Unit/nedf2vfp_test.c index 46bca5ae9..536917af3 100644 --- a/test/builtins/Unit/nedf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/nesf2vfp_test.c b/test/builtins/Unit/nesf2vfp_test.c index b6491700a..bb0149087 100644 --- a/test/builtins/Unit/nesf2vfp_test.c +++ b/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 ---------------------------------===// // diff --git a/test/builtins/Unit/truncdfhf2_test.c b/test/builtins/Unit/truncdfhf2_test.c index 94595fc97..b172811a1 100644 --- a/test/builtins/Unit/truncdfhf2_test.c +++ b/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 ----------------===// // diff --git a/test/builtins/Unit/truncdfsf2_test.c b/test/builtins/Unit/truncdfsf2_test.c index a692edee8..04bebf4c6 100644 --- a/test/builtins/Unit/truncdfsf2_test.c +++ b/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 ----------------===// // diff --git a/test/builtins/Unit/truncsfhf2_test.c b/test/builtins/Unit/truncsfhf2_test.c index b83d8fd8a..2240c14a5 100644 --- a/test/builtins/Unit/truncsfhf2_test.c +++ b/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 ----------------===// // diff --git a/test/builtins/Unit/unorddf2vfp_test.c b/test/builtins/Unit/unorddf2vfp_test.c index 7fe3894bc..21938d044 100644 --- a/test/builtins/Unit/unorddf2vfp_test.c +++ b/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 ---------------------------===// // diff --git a/test/builtins/Unit/unordsf2vfp_test.c b/test/builtins/Unit/unordsf2vfp_test.c index 670d3351b..712665294 100644 --- a/test/builtins/Unit/unordsf2vfp_test.c +++ b/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 ---------------------------===// // |