]> sourceware.org Git - glibc.git/commit
x86-64: Implement memcmp family IFUNC selectors in C
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 15 Jun 2017 15:49:43 +0000 (08:49 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 15 Jun 2017 15:49:57 +0000 (08:49 -0700)
commitb91a52d0d77d8c532d2cfa13be0db92faa397c4b
tree998f90835230fc8da896e806b5c887a78a66a009
parent93e46f87735e59c15eece22a086948519d129e1c
x86-64: Implement memcmp family IFUNC selectors in C

Implement memcmp family IFUNC selectors in C.

All internal calls within libc.so can use IFUNC on x86-64 since unlike
x86, x86-64 supports PC-relative addressing to access the GOT entry so
that it can call via PLT without using an extra register.  For libc.a,
we can't use IFUNC for functions which are called before IFUNC has been
initialized.  Use IFUNC internally reduces the icache footprint since
libc.so and other codes in the process use the same implementations.
This patch uses IFUNC for memcmp family functions within libc.

* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
memcmp-sse2.
* sysdeps/x86_64/multiarch/ifunc-memcmp.h: New file.
* sysdeps/x86_64/multiarch/memcmp-sse2.S: Likewise.
* sysdeps/x86_64/multiarch/memcmp.c: Likewise.
* sysdeps/x86_64/multiarch/wmemcmp.c: Likewise.
* sysdeps/x86_64/multiarch/memcmp.S: Removed.
* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.
ChangeLog
sysdeps/x86_64/multiarch/Makefile
sysdeps/x86_64/multiarch/ifunc-impl-list.c
sysdeps/x86_64/multiarch/ifunc-memcmp.h [new file with mode: 0644]
sysdeps/x86_64/multiarch/memcmp-sse2.S [new file with mode: 0644]
sysdeps/x86_64/multiarch/memcmp.S [deleted file]
sysdeps/x86_64/multiarch/memcmp.c [new file with mode: 0644]
sysdeps/x86_64/multiarch/wmemcmp.c [moved from sysdeps/x86_64/multiarch/wmemcmp.S with 54% similarity]
This page took 0.04584 seconds and 5 git commands to generate.