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.10-155-g55c4ce6
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 16 Jul 2009 14:19:56 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.10-155-g55c4ce6
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 55c4ce6885b577e2b29a4de674d4062a6882afe8 (commit)
via c8027cced1d3e7803c440cb13d4294754d8791e2 (commit)
from 24a12a5a5f7ea63bc349f219b9fbb722c009a719 (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=55c4ce6885b577e2b29a4de674d4062a6882afe8
commit 55c4ce6885b577e2b29a4de674d4062a6882afe8
Author: Ulrich Drepper <drepper@redhat.com>
Date: Thu Jul 16 07:18:53 2009 -0700
Remove warning and little optimization.
The prototype for _dl_higher_prime_number was missing. While at it,
the function is now marked with internal_function.
diff --git a/ChangeLog b/ChangeLog
index 1bfdd7b..48b5d02 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2009-07-16 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/generic/ldsodefs.h: Add prototype for
+ _dl_higher_prime_number.
+ * elf/dl-misc.c (_dl_higher_prime_number): Mark with internal_function.
+
* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Optimize
restoring of ymm registers a bit.
diff --git a/elf/dl-misc.c b/elf/dl-misc.c
index 7d4e1a1..d50537a 100644
--- a/elf/dl-misc.c
+++ b/elf/dl-misc.c
@@ -315,6 +315,7 @@ _dl_name_match_p (const char *name, const struct link_map *map)
unsigned long int
+internal_function
_dl_higher_prime_number (unsigned long int n)
{
/* These are primes that are near, but slightly smaller than, a
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 1e1bb4c..30f9d23 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -335,6 +335,10 @@ struct audit_ifaces
extern int _dl_name_match_p (const char *__name, const struct link_map *__map)
internal_function;
+/* Compute next higher prime number. */
+extern unsigned long int _dl_higher_prime_number (unsigned long int n)
+ internal_function;
+
/* Function used as argument for `_dl_receive_error' function. The
arguments are the error code, error string, and the objname the
error occurred in. */
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c8027cced1d3e7803c440cb13d4294754d8791e2
commit c8027cced1d3e7803c440cb13d4294754d8791e2
Author: Ulrich Drepper <drepper@redhat.com>
Date: Thu Jul 16 07:15:15 2009 -0700
Optimize restoring of ymm registers on x86-64.
The patch mainly reduces the code size but also avoids some jumps.
diff --git a/ChangeLog b/ChangeLog
index 87db19e..1bfdd7b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-07-16 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Optimize
+ restoring of ymm registers a bit.
+
2009-07-15 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/x86_64/memcmp.S: New file.
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index 7f20491..49d239f 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -185,81 +185,73 @@ L(no_avx1):
movq LR_R8_OFFSET(%rsp), %r8
movq LR_R9_OFFSET(%rsp), %r9
+ movaps (LR_XMM_OFFSET)(%rsp), %xmm0
+ movaps (LR_XMM_OFFSET + XMM_SIZE)(%rsp), %xmm1
+ movaps (LR_XMM_OFFSET + XMM_SIZE*2)(%rsp), %xmm2
+ movaps (LR_XMM_OFFSET + XMM_SIZE*3)(%rsp), %xmm3
+ movaps (LR_XMM_OFFSET + XMM_SIZE*4)(%rsp), %xmm4
+ movaps (LR_XMM_OFFSET + XMM_SIZE*5)(%rsp), %xmm5
+ movaps (LR_XMM_OFFSET + XMM_SIZE*6)(%rsp), %xmm6
+ movaps (LR_XMM_OFFSET + XMM_SIZE*7)(%rsp), %xmm7
+
# ifdef HAVE_AVX_SUPPORT
cmpl $0, L(have_avx)(%rip)
js L(no_avx2)
/* Check if any xmm0-xmm7 registers are changed by audit
module. */
- vmovdqa (LR_XMM_OFFSET)(%rsp), %xmm0
- vpcmpeqq (LR_SIZE)(%rsp), %xmm0, %xmm1
- vpmovmskb %xmm1, %esi
+ vpcmpeqq (LR_SIZE)(%rsp), %xmm0, %xmm8
+ vpmovmskb %xmm8, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu (LR_VECTOR_OFFSET)(%rsp), %ymm0
-1: vmovdqa (LR_XMM_OFFSET + XMM_SIZE)(%rsp), %xmm1
- vpcmpeqq (LR_SIZE + XMM_SIZE)(%rsp), %xmm1, %xmm2
- vpmovmskb %xmm2, %esi
+1: vpcmpeqq (LR_SIZE + XMM_SIZE)(%rsp), %xmm1, %xmm8
+ vpmovmskb %xmm8, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE)(%rsp), %ymm1
-1: vmovdqa (LR_XMM_OFFSET + XMM_SIZE*2)(%rsp), %xmm2
- vpcmpeqq (LR_SIZE + XMM_SIZE*2)(%rsp), %xmm2, %xmm3
- vpmovmskb %xmm3, %esi
+1: vpcmpeqq (LR_SIZE + XMM_SIZE*2)(%rsp), %xmm2, %xmm8
+ vpmovmskb %xmm8, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*2)(%rsp), %ymm2
-1: vmovdqa (LR_XMM_OFFSET + XMM_SIZE*3)(%rsp), %xmm3
- vpcmpeqq (LR_SIZE + XMM_SIZE*3)(%rsp), %xmm3, %xmm4
- vpmovmskb %xmm4, %esi
+1: vpcmpeqq (LR_SIZE + XMM_SIZE*3)(%rsp), %xmm3, %xmm8
+ vpmovmskb %xmm8, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*3)(%rsp), %ymm3
-1: vmovdqa (LR_XMM_OFFSET + XMM_SIZE*4)(%rsp), %xmm4
- vpcmpeqq (LR_SIZE + XMM_SIZE*4)(%rsp), %xmm4, %xmm5
- vpmovmskb %xmm5, %esi
+1: vpcmpeqq (LR_SIZE + XMM_SIZE*4)(%rsp), %xmm4, %xmm8
+ vpmovmskb %xmm8, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*4)(%rsp), %ymm4
-1: vmovdqa (LR_XMM_OFFSET + XMM_SIZE*5)(%rsp), %xmm5
- vpcmpeqq (LR_SIZE + XMM_SIZE*5)(%rsp), %xmm5, %xmm6
- vpmovmskb %xmm6, %esi
+1: vpcmpeqq (LR_SIZE + XMM_SIZE*5)(%rsp), %xmm5, %xmm8
+ vpmovmskb %xmm8, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*5)(%rsp), %ymm5
-1: vmovdqa (LR_XMM_OFFSET + XMM_SIZE*6)(%rsp), %xmm6
- vpcmpeqq (LR_SIZE + XMM_SIZE*6)(%rsp), %xmm6, %xmm7
- vpmovmskb %xmm7, %esi
+1: vpcmpeqq (LR_SIZE + XMM_SIZE*6)(%rsp), %xmm6, %xmm8
+ vpmovmskb %xmm8, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*6)(%rsp), %ymm6
-1: vmovdqa (LR_XMM_OFFSET + XMM_SIZE*7)(%rsp), %xmm7
- vpcmpeqq (LR_SIZE + XMM_SIZE*7)(%rsp), %xmm7, %xmm8
+1: vpcmpeqq (LR_SIZE + XMM_SIZE*7)(%rsp), %xmm7, %xmm8
vpmovmskb %xmm8, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*7)(%rsp), %ymm7
- jmp 1f
L(no_avx2):
+1:
# endif
- movaps (LR_XMM_OFFSET)(%rsp), %xmm0
- movaps (LR_XMM_OFFSET + XMM_SIZE)(%rsp), %xmm1
- movaps (LR_XMM_OFFSET + XMM_SIZE*2)(%rsp), %xmm2
- movaps (LR_XMM_OFFSET + XMM_SIZE*3)(%rsp), %xmm3
- movaps (LR_XMM_OFFSET + XMM_SIZE*4)(%rsp), %xmm4
- movaps (LR_XMM_OFFSET + XMM_SIZE*5)(%rsp), %xmm5
- movaps (LR_XMM_OFFSET + XMM_SIZE*6)(%rsp), %xmm6
- movaps (LR_XMM_OFFSET + XMM_SIZE*7)(%rsp), %xmm7
-
-1: movq 16(%rbx), %r10 # Anything in framesize?
+ movq 16(%rbx), %r10 # Anything in framesize?
testq %r10, %r10
jns 3f
@@ -358,32 +350,31 @@ L(no_avx3):
movq LRV_RAX_OFFSET(%rsp), %rax
movq LRV_RDX_OFFSET(%rsp), %rdx
+ movaps LRV_XMM0_OFFSET(%rsp), %xmm0
+ movaps LRV_XMM1_OFFSET(%rsp), %xmm1
+
# ifdef HAVE_AVX_SUPPORT
cmpl $0, L(have_avx)(%rip)
js L(no_avx4)
/* Check if xmm0/xmm1 registers are changed by audit module. */
- vmovdqa LRV_XMM0_OFFSET(%rsp), %xmm0
- vpcmpeqq (LRV_SIZE)(%rsp), %xmm0, %xmm1
- vpmovmskb %xmm1, %esi
+ vpcmpeqq (LRV_SIZE)(%rsp), %xmm0, %xmm2
+ vpmovmskb %xmm2, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu LRV_VECTOR0_OFFSET(%rsp), %ymm0
-1: vmovdqa LRV_XMM1_OFFSET(%rsp), %xmm1
- vpcmpeqq (LRV_SIZE + XMM_SIZE)(%rsp), %xmm1, %xmm2
+1: vpcmpeqq (LRV_SIZE + XMM_SIZE)(%rsp), %xmm1, %xmm2
vpmovmskb %xmm2, %esi
cmpl $0xffff, %esi
je 1f
vmovdqu LRV_VECTOR1_OFFSET(%rsp), %ymm1
- jmp 1f
L(no_avx4):
+1:
# endif
- movaps LRV_XMM0_OFFSET(%rsp), %xmm0
- movaps LRV_XMM1_OFFSET(%rsp), %xmm1
-1: fldt LRV_ST1_OFFSET(%rsp)
+ fldt LRV_ST1_OFFSET(%rsp)
fldt LRV_ST0_OFFSET(%rsp)
movq %rbx, %rsp
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 9 +++++
elf/dl-misc.c | 1 +
sysdeps/generic/ldsodefs.h | 4 ++
sysdeps/x86_64/dl-trampoline.S | 77 +++++++++++++++++----------------------
4 files changed, 48 insertions(+), 43 deletions(-)
hooks/post-receive
--
GNU C Library master sources