diff options
author | John David Anglin <danglin@gcc.gnu.org> | 2017-12-02 11:04:16 -0500 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2017-12-02 11:04:16 -0500 |
commit | 800a496acbb8c43036b3832460220d4ecbbc22a4 (patch) | |
tree | 6b711b1be53e3204c64d2863e827dfc432b46d7b /sysdeps/hppa/dl-fptr.h | |
parent | d17542d235dd6dd4a83d28997f789543417afe11 (diff) | |
download | glibc-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.h')
-rw-r--r-- | sysdeps/hppa/dl-fptr.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sysdeps/hppa/dl-fptr.h b/sysdeps/hppa/dl-fptr.h index 0cb50524fd..3ed86bb230 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 */ |