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.12-128-g8b2b771
- From: roland at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 25 Aug 2010 19:13:59 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.12-128-g8b2b771
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 8b2b77153826547eb9cb204c3d3e0e407b574dba (commit)
from e73015f2d666b66c69f3c6f350e2dcd3df5b075a (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=8b2b77153826547eb9cb204c3d3e0e407b574dba
commit 8b2b77153826547eb9cb204c3d3e0e407b574dba
Author: Roland McGrath <roland@redhat.com>
Date: Wed Aug 25 12:13:08 2010 -0700
Clean up warnings in new x86_64/multiarch code.
diff --git a/ChangeLog b/ChangeLog
index b118a20..33fe899 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-08-25 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/x86_64/multiarch/varshift.S: File removed.
+ * sysdeps/x86_64/multiarch/varshift.c: New file.
+ * sysdeps/x86_64/multiarch/Makefile (CFLAGS-varshift.c): New variable.
+ * sysdeps/x86_64/multiarch/varshift.h: Clean up decls, fix a cast.
+ * sysdeps/x86_64/multiarch/memmove.c: Move decls around.
+ * sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
+
2010-08-25 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile
index 27dc563..ca0040e 100644
--- a/sysdeps/x86_64/multiarch/Makefile
+++ b/sysdeps/x86_64/multiarch/Makefile
@@ -11,6 +11,7 @@ sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
strncase_l-ssse3
ifeq (yes,$(config-cflags-sse4))
sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c varshift
+CFLAGS-varshift.c += -msse4
CFLAGS-strcspn-c.c += -msse4
CFLAGS-strpbrk-c.c += -msse4
CFLAGS-strspn-c.c += -msse4
diff --git a/sysdeps/x86_64/multiarch/memmove.c b/sysdeps/x86_64/multiarch/memmove.c
index bbe9627..3798627 100644
--- a/sysdeps/x86_64/multiarch/memmove.c
+++ b/sysdeps/x86_64/multiarch/memmove.c
@@ -1,3 +1,24 @@
+/* Multiple versions of memmove.
+ Copyright (C) 2010 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, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <string.h>
+
#ifndef NOT_IN_libc
#include "init-arch.h"
@@ -9,13 +30,13 @@
#endif
#endif
+extern __typeof (memmove) __memmove_sse2 attribute_hidden;
+extern __typeof (memmove) __memmove_ssse3 attribute_hidden;
+extern __typeof (memmove) __memmove_ssse3_back attribute_hidden;
+
#include "string/memmove.c"
#ifndef NOT_IN_libc
-extern __typeof (__memmove_sse2) __memmove_sse2 attribute_hidden;
-extern __typeof (__memmove_sse2) __memmove_ssse3 attribute_hidden;
-extern __typeof (__memmove_sse2) __memmove_ssse3_back attribute_hidden;
-
libc_ifunc (memmove,
HAS_SSSE3
? (HAS_FAST_COPY_BACKWARD
diff --git a/sysdeps/x86_64/multiarch/memmove_chk.c b/sysdeps/x86_64/multiarch/memmove_chk.c
index a474f5f..962501d 100644
--- a/sysdeps/x86_64/multiarch/memmove_chk.c
+++ b/sysdeps/x86_64/multiarch/memmove_chk.c
@@ -1,12 +1,32 @@
+/* Multiple versions of __memmove_chk.
+ Copyright (C) 2010 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, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <string.h>
#include "init-arch.h"
#define MEMMOVE_CHK __memmove_chk_sse2
-#include "debug/memmove_chk.c"
+extern __typeof (__memmove_chk) __memmove_chk_sse2 attribute_hidden;
+extern __typeof (__memmove_chk) __memmove_chk_ssse3 attribute_hidden;
+extern __typeof (__memmove_chk) __memmove_chk_ssse3_back attribute_hidden;
-extern __typeof (__memmove_chk_sse2) __memmove_chk_sse2 attribute_hidden;
-extern __typeof (__memmove_chk_sse2) __memmove_chk_ssse3 attribute_hidden;
-extern __typeof (__memmove_chk_sse2) __memmove_chk_ssse3_back attribute_hidden;
+#include "debug/memmove_chk.c"
libc_ifunc (__memmove_chk,
HAS_SSSE3
diff --git a/sysdeps/x86_64/multiarch/varshift.S b/sysdeps/x86_64/multiarch/varshift.c
similarity index 75%
rename from sysdeps/x86_64/multiarch/varshift.S
rename to sysdeps/x86_64/multiarch/varshift.c
index b50f98b..1050613 100644
--- a/sysdeps/x86_64/multiarch/varshift.S
+++ b/sysdeps/x86_64/multiarch/varshift.c
@@ -17,14 +17,10 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-#include <sysdep.h>
+#include "varshift.h"
-
- .section .rodata
- .hidden ___m128i_shift_right
- .globl ___m128i_shift_right
- .size ___m128i_shift_right, 31
-
-___m128i_shift_right:
- .byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- .byte -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+const int8_t ___m128i_shift_right[31] attribute_hidden =
+ {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+ };
diff --git a/sysdeps/x86_64/multiarch/varshift.h b/sysdeps/x86_64/multiarch/varshift.h
index 58f98b0..9554f2d 100644
--- a/sysdeps/x86_64/multiarch/varshift.h
+++ b/sysdeps/x86_64/multiarch/varshift.h
@@ -17,11 +17,15 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <stdint.h>
+#include <tmmintrin.h>
-extern char ___m128i_shift_right[31] __attribute__ ((visibility ("hidden")));
+extern const int8_t ___m128i_shift_right[31] attribute_hidden;
static __inline__ __m128i
-__m128i_shift_right (__m128i value, unsigned long offset)
+__m128i_shift_right (__m128i value, unsigned long int offset)
{
- return _mm_shuffle_epi8 (value, _mm_loadu_si128 ((__m128 *) (___m128i_shift_right + offset)));
+ return _mm_shuffle_epi8 (value,
+ _mm_loadu_si128 ((__m128i *) (___m128i_shift_right
+ + offset)));
}
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 9 ++++++
sysdeps/x86_64/multiarch/Makefile | 1 +
sysdeps/x86_64/multiarch/memmove.c | 29 +++++++++++++++++---
sysdeps/x86_64/multiarch/memmove_chk.c | 28 ++++++++++++++++---
.../x86_64/multiarch/{varshift.S => varshift.c} | 16 ++++-------
sysdeps/x86_64/multiarch/varshift.h | 10 +++++--
6 files changed, 72 insertions(+), 21 deletions(-)
rename sysdeps/x86_64/multiarch/{varshift.S => varshift.c} (75%)
hooks/post-receive
--
GNU C Library master sources