This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/18661] Some x86-64 assembly codes don't align stack to 16 bytes
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Sat, 01 Aug 2015 15:54:53 +0000
- Subject: [Bug libc/18661] Some x86-64 assembly codes don't align stack to 16 bytes
- Auto-submitted: auto-generated
- References: <bug-18661-131 at http dot sourceware dot org/bugzilla/>
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.