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/18661] Some x86-64 assembly codes don't align stack to 16 bytes


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

--- Comment #2 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, hjl/plt/master has been created
        at  e407c803542127581dee0ecd346ce1b239eeb605 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e407c803542127581dee0ecd346ce1b239eeb605

commit e407c803542127581dee0ecd346ce1b239eeb605
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    Use SSE optimized strcmp in x86-64 ld.so

    Since ld.so preserves vector registers now, we can SSE optimized strcmp
    in x86-64 ld.so.

        * sysdeps/x86_64/strcmp.S: Remove "#if !IS_IN (libc)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9c5e89aae33638ac5507601b60a5b09f2acaafa5

commit 9c5e89aae33638ac5507601b60a5b09f2acaafa5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    Remove x86-64 rtld-xxx.c and rtld-xxx.S

    Since ld.so preserves vector registers now, we can use the regular,
    non-ifunc string and memory functions in ld.so.

        * sysdeps/x86_64/rtld-memcmp.c: Removed.
        * sysdeps/x86_64/rtld-memset.S: Likewise.
        * sysdeps/x86_64/rtld-strchr.S: Likewise.
        * sysdeps/x86_64/rtld-strlen.S: Likewise.
        * sysdeps/x86_64/multiarch/rtld-memcmp.c: Likewise.
        * sysdeps/x86_64/multiarch/rtld-memset.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5fbc29538eb104ca074fb8bab9aae1d34be20ec6

commit 5fbc29538eb104ca074fb8bab9aae1d34be20ec6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    Replace %xmm8 with %xmm0

    Since ld.so preserves vector registers now, we can use %xmm0 to avoid
    the REX prefix.

        * sysdeps/x86_64/memset.S: Replace %xmm8 with %xmm0.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4ca4b1e1266d624e2a018055d29a129a934fd1e6

commit 4ca4b1e1266d624e2a018055d29a129a934fd1e6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    Replace %xmm[8-12] with %xmm[0-4]

    Since ld.so preserves vector registers now, we can use %xmm[0-4] to
    avoid the REX prefix.

        * sysdeps/x86_64/strlen.S: Replace %xmm[8-12] with %xmm[0-4].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=953e8b213c2067664752c02975555c59b80907a8

commit 953e8b213c2067664752c02975555c59b80907a8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    Don't disable SSE in x86-64 ld.so

    Since ld.so preserves vector registers now, we can use SSE in ld.so.

        * sysdeps/i386/Makefile [$(subdir) == elf] (CFLAGS-.os): Add
        -mno-sse -mno-mmx for $(all-rtld-routines).
        [$(subdir) == elf] (tests-special): Add
        $(objpfx)tst-ld-sse-use.out.
        [$(subdir) == elf] ($(objpfx)tst-ld-sse-use.out): New rule.
        * sysdeps/x86/Makefile [$(subdir) == elf] (CFLAGS-.os): Removed.
        [$(subdir) == elf] (tests-special): Likewise.
        [$(subdir) == elf] ($(objpfx)tst-ld-sse-use.out): Likewise.
        * sysdeps/x86_64/Makefile [$(subdir) == elf] (CFLAGS-.os): Add
        -mno-mmx for $(all-rtld-routines).

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

commit dba9bf664566fa3230305bebf02f175eb8b9fb85
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so

    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    We can also retire the rtld_must_xmm_save field and remove the
    rtld_savespace_sse field in tcbhead_t.  It is safe since they are
    internal to glibc.

        [BZ #15128]
        * sysdeps/x86_64/Makefile [$(subdir) == elf] (tests): Add
        ifuncmain8.
        (modules-names): Add ifuncmod8.
        ($(objpfx)ifuncmain8): New rule.
        * sysdeps/x86_64/dl-machine.h: Include <dl-procinfo.h> and
        <cpuid.h>.
        (elf_machine_runtime_setup): Use _dl_runtime_resolve_sse,
        _dl_runtime_resolve_avx, or _dl_runtime_resolve_avx512,
        _dl_runtime_profile_sse, _dl_runtime_profile_avx, or
        _dl_runtime_profile_avx512, based on HAS_ARCH_FEATURE.
        * sysdeps/x86_64/dl-trampoline.S: Rewrite.
        * sysdeps/x86_64/dl-trampoline.h: Likewise.
        * sysdeps/x86_64/ifuncmain8.c: New file.
        * sysdeps/x86_64/ifuncmod8.c: Likewise.
        * sysdeps/x86_64/nptl/tcb-offsets.sym (RTLD_SAVESPACE_SSE):
        Removed.
        * sysdeps/x86_64/nptl/tls.h (__128bits): Removed.
        (tcbhead_t): CHange rtld_must_xmm_save to __glibc_unused1.
        Remove rtld_savespace_sse and __padding.
        (RTLD_CHECK_FOREIGN_CALL): Removed.
        (RTLD_ENABLE_FOREIGN_CALL): Likewise.
        (RTLD_PREPARE_FOREIGN_CALL): Likewise.
        (RTLD_FINALIZE_FOREIGN_CALL): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5e06993a5a4d172d9ab979e98cc0fb5949de16ef

commit 5e06993a5a4d172d9ab979e98cc0fb5949de16ef
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location

    We should align stack to 16 bytes when calling __errno_location.

        [BZ #18661]
        * sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
        when calling __errno_location.
        * sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
        * sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

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

commit e0aa3e3a6f0a2df74265a2219d95624ecf531f81
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday

    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.

        [BZ #18661]
        * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
        (__lll_timedwait_tid): Align stack to 16 bytes when calling
        __gettimeofday.

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

commit bc60509483d3ab0d795745e91bcca13c8bccf89e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext

    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.

        [BZ #18661]
        * sysdeps/unix/sysv/linux/x86_64/__start_context.S
        (__start_context): Don't use pop to restore %rdi so that stack
        is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9644c9267351b4c286c44fa4111a71c4c78b3ec8

commit 9644c9267351b4c286c44fa4111a71c4c78b3ec8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc

    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.

        * sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
        only for libc.
        * sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

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

commit fa437015d9c0a0d4628f8b042dcc865dce1ca335
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update elision-conf.c for cpu-feattures

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=71ed3c9d3f7a099ea19590479edd3fbe41e68a0c

commit 71ed3c9d3f7a099ea19590479edd3fbe41e68a0c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:46:05 2015 -0700

    Use LOAD_RTLD_GLOBAL_RO_RDX and HAS_XXX in libmvec

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8627c662750246f16376104de1cd04fb6f287b9e

commit 8627c662750246f16376104de1cd04fb6f287b9e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 16:52:19 2015 -0700

    Use LOAD_GOT_AND_RTLD_GLOBAL_RO and HAS_XXX in i686/multiarch

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=90fea981859f96b666d8afadd842159fd83d21c7

commit 90fea981859f96b666d8afadd842159fd83d21c7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:41:04 2015 -0700

    Use LOAD_RTLD_GLOBAL_RO_RDX and HAS_XXX in x86_64/multiarch

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7eeb9e24373749686c2757cf95b2273c8ec966e9

commit 7eeb9e24373749686c2757cf95b2273c8ec966e9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    _dl_x86_cpu_features to rtld_global for x86

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

-- 
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]