This is the mail archive of the glibc-bugs@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]

[Bug libc/19745] Avoid extra branch to PLT entry when calling external function


https://sourceware.org/bugzilla/show_bug.cgi?id=19745

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
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  16b23e03632623cd81a21fc5a24db546595addac (commit)
       via  21683b5a7d9b8460e120e061f66a6ad84fa47e98 (commit)
      from  684ce7e0fc57830ff7c5909e5794f571631ee83f (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 -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=16b23e03632623cd81a21fc5a24db546595addac

commit 16b23e03632623cd81a21fc5a24db546595addac
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Mar 4 15:36:18 2016 -0800

    Replace PREINIT_FUNCTION@PLT with *%rax in call

    Since we have loaded address of PREINIT_FUNCTION into %rax, we can
    avoid extra branch to PLT slot.

        [BZ #19745]
        * sysdeps/x86_64/crti.S (_init): Replace PREINIT_FUNCTION@PLT
        with *%rax in call.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=21683b5a7d9b8460e120e061f66a6ad84fa47e98

commit 21683b5a7d9b8460e120e061f66a6ad84fa47e98
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Mar 4 15:28:59 2016 -0800

    Replace @PLT with @GOTPCREL(%rip) in call

    Since __libc_start_main is called very early, lazy binding isn't relevant
    here.  Use indirect branch via GOT to avoid extra branch to PLT slot.

        [BZ #19745]
        * sysdeps/x86_64/start.S (_start): __libc_start_main@PLT
        with *__libc_start_main@GOTPCREL(%rip) in call.

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

Summary of changes:
 ChangeLog              |   12 ++++++++++++
 sysdeps/x86_64/crti.S  |    2 +-
 sysdeps/x86_64/start.S |    6 ++++--
 3 files changed, 17 insertions(+), 3 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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