summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-09-02 19:43:04 -0700
committerUlrich Drepper <drepper@redhat.com>2009-09-02 19:43:04 -0700
commit22bb992d51903bc8cd5f67a207d00e3a6aa8e1a9 (patch)
tree20b218c6dd450cf694f46e37cbbf4f5d6b4dc00a
parentd840539e1271020600edba752e6ee908c00f66eb (diff)
Fix strstr/strcasestr/fma/fmaf on x86_64.
-rw-r--r--ChangeLog11
-rw-r--r--sysdeps/x86_64/multiarch/s_fma.c4
-rw-r--r--sysdeps/x86_64/multiarch/s_fmaf.c4
-rw-r--r--sysdeps/x86_64/multiarch/strcasestr-c.c3
-rw-r--r--sysdeps/x86_64/multiarch/strstr-c.c3
5 files changed, 19 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 0812312f3f..ef087c7944 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2009-09-02 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/x86_64/multiarch/strstr-c.c (__strstr_sse42, __strstr_sse2):
+ Add attribute_hidden.
+ * sysdeps/x86_64/multiarch/strcasestr-c.c (__strcasestr_sse42,
+ __strcasestr_sse2): Likewise.
+ * sysdeps/x86_64/multiarch/s_fma.c (__fma_sse2): Add attribute_hidden.
+ (__fma_fma): Make static.
+ * sysdeps/x86_64/multiarch/s_fmaf.c (__fmaf_sse2): Add attribute_hidden.
+ (__fmaf_fma): Make static.
+
2009-08-31 Andreas Schwab <schwab@redhat.com>
* libio/wfileops.c (_IO_wfile_seekoff): Remove dead code and
diff --git a/sysdeps/x86_64/multiarch/s_fma.c b/sysdeps/x86_64/multiarch/s_fma.c
index 40601e9a68..cfecf9b41d 100644
--- a/sysdeps/x86_64/multiarch/s_fma.c
+++ b/sysdeps/x86_64/multiarch/s_fma.c
@@ -24,10 +24,10 @@
#ifdef HAVE_AVX_SUPPORT
-extern double __fma_sse2 (double x, double y, double z);
+extern double __fma_sse2 (double x, double y, double z) attribute_hidden;
-double
+static double
__fma_fma (double x, double y, double z)
{
asm ("vfmadd213sd %3, %2, %0" : "=x" (x) : "0" (x), "x" (y), "xm" (z));
diff --git a/sysdeps/x86_64/multiarch/s_fmaf.c b/sysdeps/x86_64/multiarch/s_fmaf.c
index f3d37f8f4a..de1c4b6f41 100644
--- a/sysdeps/x86_64/multiarch/s_fmaf.c
+++ b/sysdeps/x86_64/multiarch/s_fmaf.c
@@ -23,10 +23,10 @@
#ifdef HAVE_AVX_SUPPORT
-extern float __fmaf_sse2 (float x, float y, float z);
+extern float __fmaf_sse2 (float x, float y, float z) attribute_hidden;
-float
+static float
__fmaf_fma (float x, float y, float z)
{
asm ("vfmadd213ss %3, %2, %0" : "=x" (x) : "0" (x), "x" (y), "xm" (z));
diff --git a/sysdeps/x86_64/multiarch/strcasestr-c.c b/sysdeps/x86_64/multiarch/strcasestr-c.c
index e6879531bc..3cb5557b67 100644
--- a/sysdeps/x86_64/multiarch/strcasestr-c.c
+++ b/sysdeps/x86_64/multiarch/strcasestr-c.c
@@ -7,7 +7,8 @@
#include "string/strcasestr.c"
-extern char *__strcasestr_sse42 (const char *, const char *);
+extern char *__strcasestr_sse42 (const char *, const char *) attribute_hidden;
+extern __typeof (__strcasestr_sse2) __strcasestr_sse2 attribute_hidden;
#if 1
libc_ifunc (__strcasestr,
diff --git a/sysdeps/x86_64/multiarch/strstr-c.c b/sysdeps/x86_64/multiarch/strstr-c.c
index cff99b71ef..d593089a87 100644
--- a/sysdeps/x86_64/multiarch/strstr-c.c
+++ b/sysdeps/x86_64/multiarch/strstr-c.c
@@ -7,6 +7,7 @@
#include "string/strstr.c"
-extern char *__strstr_sse42 (const char *, const char *);
+extern char *__strstr_sse42 (const char *, const char *) attribute_hidden;
+extern __typeof (__strstr_sse2) __strstr_sse2 attribute_hidden;
libc_ifunc (strstr, HAS_SSE4_2 ? __strstr_sse42 : __strstr_sse2);