Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/libexec/ld.elf_so/arch/x86_64 Eliminate GOT usage in rtld_st...



details:   https://anonhg.NetBSD.org/src/rev/f6b5b912e878
branches:  trunk
changeset: 543604:f6b5b912e878
user:      mycroft <mycroft%NetBSD.org@localhost>
date:      Fri Feb 28 22:37:35 2003 +0000

description:
Eliminate GOT usage in rtld_start() on this platform, too.

diffstat:

 libexec/ld.elf_so/arch/x86_64/rtld_start.S |  12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

diffs (32 lines):

diff -r 4fac77975006 -r f6b5b912e878 libexec/ld.elf_so/arch/x86_64/rtld_start.S
--- a/libexec/ld.elf_so/arch/x86_64/rtld_start.S        Fri Feb 28 22:07:05 2003 +0000
+++ b/libexec/ld.elf_so/arch/x86_64/rtld_start.S        Fri Feb 28 22:37:35 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rtld_start.S,v 1.5 2002/11/24 18:16:45 fvdl Exp $      */
+/*     $NetBSD: rtld_start.S,v 1.6 2003/02/28 22:37:35 mycroft Exp $   */
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -46,18 +46,16 @@
        movq    %rsp,%r12               # stack pointer arg to _rtld
        pushq   %rbx                    # save ps_strings
 
-       leaq    _GLOBAL_OFFSET_TABLE_(%rip),%rbx
-       movq    _GLOBAL_OFFSET_TABLE_@GOTPCREL(%rip),%rdx
-       subq    %rdx,%rbx               # %rbx = relocbase
+       leaq    _GLOBAL_OFFSET_TABLE_(%rip),%rax
+       leaq    _DYNAMIC(%rip),%rdi     # &_DYNAMIC
+       movq    %rdi,%rbx
+       subq    (%rax),%rbx             # relocbase
 
-       movq    _DYNAMIC@GOTPCREL(%rip),%rdi
-       addq    %rbx,%rdi
        movq    %rbx,%rsi
        call    _rtld_relocate_nonplt_self@PLT
 
        movq    %r12,%rdi
        movq    %rbx,%rsi
-
        call    _rtld@PLT               # _rtld(sp, relocbase)
 
        popq    %rbx                    # %rbx = ps_strings



Home | Main Index | Thread Index | Old Index