about summary refs log tree commit diff
path: root/sysdeps/hppa/dl-fptr.c
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2017-12-02 11:04:16 -0500
committerJohn David Anglin <danglin@gcc.gnu.org>2017-12-02 11:04:16 -0500
commit800a496acbb8c43036b3832460220d4ecbbc22a4 (patch)
tree6b711b1be53e3204c64d2863e827dfc432b46d7b /sysdeps/hppa/dl-fptr.c
parentd17542d235dd6dd4a83d28997f789543417afe11 (diff)
downloadglibc-800a496acbb8c43036b3832460220d4ecbbc22a4.tar.gz
glibc-800a496acbb8c43036b3832460220d4ecbbc22a4.tar.xz
glibc-800a496acbb8c43036b3832460220d4ecbbc22a4.zip
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.
Diffstat (limited to 'sysdeps/hppa/dl-fptr.c')
-rw-r--r--sysdeps/hppa/dl-fptr.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sysdeps/hppa/dl-fptr.c b/sysdeps/hppa/dl-fptr.c
index 96fd09d192..d2cc413403 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;