This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.26.9000-909-g800a496


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  800a496acbb8c43036b3832460220d4ecbbc22a4 (commit)
      from  d17542d235dd6dd4a83d28997f789543417afe11 (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://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=800a496acbb8c43036b3832460220d4ecbbc22a4

commit 800a496acbb8c43036b3832460220d4ecbbc22a4
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Sat Dec 2 11:04:16 2017 -0500

    Improve PIC pc-relative instruction sequences on hppa.
    
    	* sysdeps/hppa/dl-fptr.c (elf_machine_resolve): Remove unnecessary
    	depi instruction from PIC pc-relative sequence.
    	* sysdeps/hppa/dl-fptr.h (ELF_MACHINE_LOAD_ADDRESS): Likewise.
    	* sysdeps/hppa/dl-machine.h (elf_machine_dynamic): Likewise.
    	(elf_machine_load_address): Likewise.
    	(elf_machine_runtime_setup): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 3354d09..d85007e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2017-12-02  John David Anglin  <danglin@gcc.gnu.org>
+
+	* sysdeps/hppa/dl-fptr.c (elf_machine_resolve): Remove unnecessary
+	depi instruction from PIC pc-relative sequence.
+	* sysdeps/hppa/dl-fptr.h (ELF_MACHINE_LOAD_ADDRESS): Likewise.
+	* sysdeps/hppa/dl-machine.h (elf_machine_dynamic): Likewise.
+	(elf_machine_load_address): Likewise.
+	(elf_machine_runtime_setup): Likewise.
+
 2017-12-02  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/powerpc/power7/fpu/s_logb.c: Include
diff --git a/sysdeps/hppa/dl-fptr.c b/sysdeps/hppa/dl-fptr.c
index 96fd09d..d2cc413 100644
--- a/sysdeps/hppa/dl-fptr.c
+++ b/sysdeps/hppa/dl-fptr.c
@@ -329,9 +329,8 @@ elf_machine_resolve (void)
   Elf32_Addr addr;
 
   asm ("b,l     1f,%0\n"
-"	depi	0,31,2,%0\n"
-"1:	addil	L'_dl_runtime_resolve - ($PIC_pcrel$0 - 8),%0\n"
-"	ldo	R'_dl_runtime_resolve - ($PIC_pcrel$0 - 12)(%%r1),%0\n"
+"	addil	L'_dl_runtime_resolve - ($PIC_pcrel$0 - 1),%0\n"
+"1:	ldo	R'_dl_runtime_resolve - ($PIC_pcrel$0 - 5)(%%r1),%0\n"
        : "=r" (addr) : : "r1");
 
   return addr;
diff --git a/sysdeps/hppa/dl-fptr.h b/sysdeps/hppa/dl-fptr.h
index 0cb5052..3ed86bb 100644
--- a/sysdeps/hppa/dl-fptr.h
+++ b/sysdeps/hppa/dl-fptr.h
@@ -31,9 +31,8 @@ extern void _dl_fptr_init (void);
 #define ELF_MACHINE_LOAD_ADDRESS(var, symbol) \
   asm (								\
 "	b,l	1f,%0\n"					\
-"	depi	0,31,2,%0\n"					\
-"1:	addil	L'" #symbol " - ($PIC_pcrel$0 - 8),%0\n"	\
-"	ldo	R'" #symbol " - ($PIC_pcrel$0 - 12)(%%r1),%0\n"	\
+"	addil	L'" #symbol " - ($PIC_pcrel$0 - 1),%0\n"	\
+"1:	ldo	R'" #symbol " - ($PIC_pcrel$0 - 5)(%%r1),%0\n"	\
    : "=&r" (var) : : "r1");
 
 #endif /* !dl_hppa_fptr_h */
diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
index acfb9fc..11ee9ca 100644
--- a/sysdeps/hppa/dl-machine.h
+++ b/sysdeps/hppa/dl-machine.h
@@ -81,10 +81,9 @@ elf_machine_dynamic (void)
 {
   Elf32_Addr dynamic;
 
-  asm ("b,l	1f,%0\n"
-"	depi	0,31,2,%0\n"
-"1:	addil	L'_GLOBAL_OFFSET_TABLE_ - ($PIC_pcrel$0 - 8),%0\n"
-"	ldw	R'_GLOBAL_OFFSET_TABLE_ - ($PIC_pcrel$0 - 12)(%%r1),%0\n"
+  asm ("bl	1f,%0\n"
+"	addil	L'_GLOBAL_OFFSET_TABLE_ - ($PIC_pcrel$0 - 1),%0\n"
+"1:	ldw	R'_GLOBAL_OFFSET_TABLE_ - ($PIC_pcrel$0 - 5)(%%r1),%0\n"
        : "=r" (dynamic) : : "r1");
 
   return dynamic;
@@ -100,10 +99,9 @@ elf_machine_load_address (void)
   Elf32_Addr dynamic;
 
   asm (
-"	b,l	1f,%0\n"
-"	depi	0,31,2,%0\n"
-"1:	addil	L'_DYNAMIC - ($PIC_pcrel$0 - 8),%0\n"
-"	ldo	R'_DYNAMIC - ($PIC_pcrel$0 - 12)(%%r1),%0\n"
+"	bl	1f,%0\n"
+"	addil	L'_DYNAMIC - ($PIC_pcrel$0 - 1),%0\n"
+"1:	ldo	R'_DYNAMIC - ($PIC_pcrel$0 - 5)(%%r1),%0\n"
    : "=r" (dynamic) : : "r1");
 
   return dynamic - elf_machine_dynamic ();
@@ -339,14 +337,13 @@ asm (									\
 	   just like a branch reloc.  This sequence gets us the		\
 	   runtime address of _DYNAMIC. */				\
 "	bl	0f,%r19\n"						\
-"	depi	0,31,2,%r19\n"	/* clear priviledge bits */		\
-"0:	addil	L'_DYNAMIC - ($PIC_pcrel$0 - 8),%r19\n"			\
-"	ldo	R'_DYNAMIC - ($PIC_pcrel$0 - 12)(%r1),%r26\n"		\
+"	addil	L'_DYNAMIC - ($PIC_pcrel$0 - 1),%r19\n"			\
+"0:	ldo	R'_DYNAMIC - ($PIC_pcrel$0 - 5)(%r1),%r26\n"		\
 									\
 	/* The link time address is stored in the first entry of the	\
 	   GOT.  */							\
-"	addil	L'_GLOBAL_OFFSET_TABLE_ - ($PIC_pcrel$0 - 16),%r19\n"	\
-"	ldw	R'_GLOBAL_OFFSET_TABLE_ - ($PIC_pcrel$0 - 20)(%r1),%r20\n" \
+"	addil	L'_GLOBAL_OFFSET_TABLE_ - ($PIC_pcrel$0 - 9),%r19\n"	\
+"	ldw	R'_GLOBAL_OFFSET_TABLE_ - ($PIC_pcrel$0 - 13)(%r1),%r20\n" \
 									\
 "	sub	%r26,%r20,%r20\n"	/* Calculate load offset */	\
 									\

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                 |    9 +++++++++
 sysdeps/hppa/dl-fptr.c    |    5 ++---
 sysdeps/hppa/dl-fptr.h    |    5 ++---
 sysdeps/hppa/dl-machine.h |   23 ++++++++++-------------
 4 files changed, 23 insertions(+), 19 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]