From 54d5123a56011f805500a8d18e178874300be1f7 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Sun, 27 Jul 2014 22:28:53 -0400 Subject: [PATCH] configurator: add BUILTIN_CTZ*, BUILTIN_FFS, and ICCARM_INTRINSICS Realistically, the ICCARM_INTRINSICS probably won't ever be generated by configurator, but will show up in manually created or alternately generated config.h's. Signed-off-by: Cody P Schafer --- tools/configurator/configurator.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tools/configurator/configurator.c b/tools/configurator/configurator.c index 5ccc8c91..d1aa5c61 100644 --- a/tools/configurator/configurator.c +++ b/tools/configurator/configurator.c @@ -114,10 +114,18 @@ static struct test tests[] = { "return __builtin_clzl(1) == (sizeof(long)*8 - 1) ? 0 : 1;" }, { "HAVE_BUILTIN_CLZLL", INSIDE_MAIN, NULL, NULL, "return __builtin_clzll(1) == (sizeof(long long)*8 - 1) ? 0 : 1;" }, + { "HAVE_BUILTIN_CTZ", INSIDE_MAIN, NULL, NULL, + "return __builtin_ctz(1 << (sizeof(int)*8 - 1)) == (sizeof(int)*8 - 1) ? 0 : 1;" }, + { "HAVE_BUILTIN_CTZL", INSIDE_MAIN, NULL, NULL, + "return __builtin_ctzl(1 << (sizeof(long)*8 - 1)) == (sizeof(long)*8 - 1) ? 0 : 1;" }, + { "HAVE_BUILTIN_CTZLL", INSIDE_MAIN, NULL, NULL, + "return __builtin_ctzll(1 << (sizeof(long long)*8 - 1) == (sizeof(long long)*8 - 1) ? 0 : 1;" }, { "HAVE_BUILTIN_CONSTANT_P", INSIDE_MAIN, NULL, NULL, "return __builtin_constant_p(1) ? 0 : 1;" }, { "HAVE_BUILTIN_EXPECT", INSIDE_MAIN, NULL, NULL, "return __builtin_expect(argc == 1, 1) ? 0 : 1;" }, + { "HAVE_BUILTIN_FFS", INSIDE_MAIN, NULL, NULL, + "return __builtin_ffs(0) == 0 ? 0 : 1;" }, { "HAVE_BUILTIN_FFSL", INSIDE_MAIN, NULL, NULL, "return __builtin_ffsl(0L) == 0 ? 0 : 1;" }, { "HAVE_BUILTIN_FFSLL", INSIDE_MAIN, NULL, NULL, @@ -126,6 +134,11 @@ static struct test tests[] = { "return __builtin_popcountl(255L) == 8 ? 0 : 1;" }, { "HAVE_BUILTIN_TYPES_COMPATIBLE_P", INSIDE_MAIN, NULL, NULL, "return __builtin_types_compatible_p(char *, int) ? 1 : 0;" }, + { "HAVE_ICCARM_INTRINSICS", DEFINES_FUNC, NULL, NULL, + "#include \n" + "int func(int v) {\n" + " return __CLZ(__RBIT(v));\n" + "}" }, { "HAVE_BYTESWAP_H", OUTSIDE_MAIN, NULL, NULL, "#include \n" }, { "HAVE_CLOCK_GETTIME", -- 2.39.2