diff options
author | 2011-06-08 22:00:34 +0000 | |
---|---|---|
committer | 2011-06-08 22:00:34 +0000 | |
commit | 62d98928b165013517fd53454d2d03ca1898972f (patch) | |
tree | b43906d9141e1d36fe9441c86c0e42ed78283002 | |
parent | do not document the -c flag: it was added for posix compliance, (diff) | |
download | wireguard-openbsd-62d98928b165013517fd53454d2d03ca1898972f.tar.xz wireguard-openbsd-62d98928b165013517fd53454d2d03ca1898972f.zip |
On ARM, make GCC generate code which uses our library fabs, fabsf,
and fabsl calls, instead of inlining its builtins implemented with
__gedf2 & __negdf2 softfloat calls which is wrong and actually
slower.
Looked over by miod@. Also kettenis@ noted, that GCC4 has this fixed.
-rw-r--r-- | gnu/usr.bin/gcc/gcc/builtins.def | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gnu/usr.bin/gcc/gcc/builtins.def b/gnu/usr.bin/gcc/gcc/builtins.def index 39279a1e514..e8bef49bdd0 100644 --- a/gnu/usr.bin/gcc/gcc/builtins.def +++ b/gnu/usr.bin/gcc/gcc/builtins.def @@ -159,6 +159,20 @@ DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_LABS, "__builtin_labs", BT_FN_LONG_LONG) +#ifdef __arm__ +DEF_FALLBACK_BUILTIN(BUILT_IN_FABS, + "__builtin_fabs", + BT_FN_DOUBLE_DOUBLE, + ATTR_CONST_NOTHROW_LIST) +DEF_FALLBACK_BUILTIN(BUILT_IN_FABSF, + "__builtin_fabsf", + BT_FN_FLOAT_FLOAT, + ATTR_CONST_NOTHROW_LIST) +DEF_FALLBACK_BUILTIN(BUILT_IN_FABSL, + "__builtin_fabsl", + BT_FN_LONG_DOUBLE_LONG_DOUBLE, + ATTR_CONST_NOTHROW_LIST) +#else /* __arm__ */ DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_FABS, "__builtin_fabs", BT_FN_DOUBLE_DOUBLE) @@ -168,6 +182,7 @@ DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_FABSF, DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_FABSL, "__builtin_fabsl", BT_FN_LONG_DOUBLE_LONG_DOUBLE) +#endif /* __arm__ */ DEF_C99_BUILTIN(BUILT_IN_LLABS, "__builtin_llabs", |