This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.16-ports-merge-534-gf303f97
- From: davem at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 25 Oct 2012 23:41:52 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.16-ports-merge-534-gf303f97
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via f303f97c2934288f6314c59564e6630925731f41 (commit)
from e2211bed12912a57e3ff9b2c42b0d85a949354bc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f303f97c2934288f6314c59564e6630925731f41
commit f303f97c2934288f6314c59564e6630925731f41
Author: David S. Miller <davem@davemloft.net>
Date: Thu Oct 25 15:51:43 2012 -0700
Add IFUNC test lists for memcpy/mempcpy/memset on sparc.
* sysdeps/sparc/sparc64/multiarch/memcpy.S: Add comments for
ifunc-impl-list.c
* sysdeps/sparc/sparc64/multiarch/memset.S: Likewise.
* sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/ifunc-impl-list.c: New
file.
diff --git a/ChangeLog b/ChangeLog
index f812784..a43b583 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,13 @@
(__get_clockfreq_via_proc_openprom): Use strtoumax instead
of strtoull.
+ * sysdeps/sparc/sparc64/multiarch/memcpy.S: Add comments for
+ ifunc-impl-list.c
+ * sysdeps/sparc/sparc64/multiarch/memset.S: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c: New file.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/ifunc-impl-list.c: New
+ file.
+
2012-10-25 Roland McGrath <roland@hack.frob.com>
* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
diff --git a/sysdeps/sparc/sparc32/sparcv9/multiarch/ifunc-impl-list.c b/sysdeps/sparc/sparc32/sparcv9/multiarch/ifunc-impl-list.c
new file mode 100644
index 0000000..a04aa0f
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/multiarch/ifunc-impl-list.c
@@ -0,0 +1 @@
+#include <sparc64/multiarch/ifunc-impl-list.c>
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c b/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
new file mode 100644
index 0000000..65a8a9a
--- /dev/null
+++ b/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
@@ -0,0 +1,75 @@
+/* Enumerate available IFUNC implementations of a function. sparc version.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <string.h>
+#include <wchar.h>
+#include <ldsodefs.h>
+#include <sysdep.h>
+#include <ifunc-impl-list.h>
+
+/* Fill ARRAY of MAX elements with IFUNC implementations for function
+ NAME and return the number of valid entries. */
+
+size_t
+__libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
+ size_t max)
+{
+ size_t i = 0;
+ int hwcap;
+
+ hwcap = GLRO(dl_hwcap);
+
+ IFUNC_IMPL (i, name, memcpy,
+ IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_SPARC_CRYPTO,
+ __memcpy_niagara4)
+ IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_SPARC_N2,
+ __memcpy_niagara2)
+ IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_SPARC_BLKINIT,
+ __memcpy_niagara1)
+ IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_SPARC_ULTRA3,
+ __memcpy_ultra3)
+ IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_ultra1));
+
+ IFUNC_IMPL (i, name, mempcpy,
+ IFUNC_IMPL_ADD (array, i, mempcpy, hwcap & HWCAP_SPARC_CRYPTO,
+ __mempcpy_niagara4)
+ IFUNC_IMPL_ADD (array, i, mempcpy, hwcap & HWCAP_SPARC_N2,
+ __mempcpy_niagara2)
+ IFUNC_IMPL_ADD (array, i, mempcpy, hwcap & HWCAP_SPARC_BLKINIT,
+ __mempcpy_niagara1)
+ IFUNC_IMPL_ADD (array, i, mempcpy, hwcap & HWCAP_SPARC_ULTRA3,
+ __mempcpy_ultra3)
+ IFUNC_IMPL_ADD (array, i, mempcpy, 1, __mempcpy_ultra1));
+
+ IFUNC_IMPL (i, name, bzero,
+ IFUNC_IMPL_ADD (array, i, bzero, hwcap & HWCAP_SPARC_CRYPTO,
+ __bzero_niagara4)
+ IFUNC_IMPL_ADD (array, i, bzero, hwcap & HWCAP_SPARC_BLKINIT,
+ __bzero_niagara1)
+ IFUNC_IMPL_ADD (array, i, bzero, 1, __bzero_ultra1));
+
+ IFUNC_IMPL (i, name, memset,
+ IFUNC_IMPL_ADD (array, i, memset, hwcap & HWCAP_SPARC_CRYPTO,
+ __memset_niagara4)
+ IFUNC_IMPL_ADD (array, i, memset, hwcap & HWCAP_SPARC_BLKINIT,
+ __memset_niagara1)
+ IFUNC_IMPL_ADD (array, i, memset, 1, __memset_ultra1));
+
+ return i;
+}
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy.S b/sysdeps/sparc/sparc64/multiarch/memcpy.S
index 50a4088..51cb88c 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy.S
@@ -1,4 +1,5 @@
/* Multiple versions of memcpy
+ All versions must be listed in ifunc-impl-list.c.
Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
Contributed by David S. Miller (davem@davemloft.net)
This file is part of the GNU C Library.
diff --git a/sysdeps/sparc/sparc64/multiarch/memset.S b/sysdeps/sparc/sparc64/multiarch/memset.S
index 8b3faee..3a637c7 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset.S
@@ -1,4 +1,5 @@
/* Multiple versions of memset and bzero
+ All versions must be listed in ifunc-impl-list.c.
Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
Contributed by David S. Miller (davem@davemloft.net)
This file is part of the GNU C Library.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 ++
.../sparc32/sparcv9/multiarch/ifunc-impl-list.c | 1 +
sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c | 75 ++++++++++++++++++++
sysdeps/sparc/sparc64/multiarch/memcpy.S | 1 +
sysdeps/sparc/sparc64/multiarch/memset.S | 1 +
5 files changed, 85 insertions(+), 0 deletions(-)
create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/ifunc-impl-list.c
create mode 100644 sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
hooks/post-receive
--
GNU C Library master sources