x86-64: Implement libm IFUNC selectors in C

System Internals / glibc - H.J. Lu [gmail.com] - 4 August 2017 16:02 EDT

- sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines): Add s_ceil-sse4_1, s_ceilf-sse4_1, s_floor-sse4_1, s_floorf-sse4_1, s_nearbyint-sse4_1, s_nearbyintf-sse4_1, s_rint-sse4_1 and s_rintf-sse4_1.
- sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h: New file.
- sysdeps/x86_64/fpu/multiarch/s_ceil.c: Likewise.
- sysdeps/x86_64/fpu/multiarch/s_ceilf.c: Likewise.
- sysdeps/x86_64/fpu/multiarch/s_floor.c: Likewise.
- sysdeps/x86_64/fpu/multiarch/s_floorf.c: Likewise.
- sysdeps/x86_64/fpu/multiarch/s_nearbyint.c: Likewise.
- sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c: Likewise.
- sysdeps/x86_64/fpu/multiarch/s_rint.c: Likewise.
- sysdeps/x86_64/fpu/multiarch/s_rintf.c: Likewise.
- sysdeps/x86_64/fpu/multiarch/s_ceil.S: Renamed to ...
- sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S: This. Don't include nor . Include . (__ceil): Removed.
- sysdeps/x86_64/fpu/multiarch/s_ceilf.S: Renamed to ...
- sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S: This. Don't include nor . Include . (__ceilf): Removed.
- sysdeps/x86_64/fpu/multiarch/s_floor.S: Renamed to ...
- sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S: This. Don't include nor . Include . (__floor): Removed.
- sysdeps/x86_64/fpu/multiarch/s_floorf.S: Renamed to ...
- sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S: This. Don't include nor . Include . (__floorf): Removed.
- sysdeps/x86_64/fpu/multiarch/s_nearbyint.S: Renamed to ...
- sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S: This. Don't include nor . Include . (__nearbyint): Removed.
- sysdeps/x86_64/fpu/multiarch/s_nearbyintf.S: Renamed to ...
- sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S: This. Don't include nor . Include . (__nearbyintf): Removed.
- sysdeps/x86_64/fpu/multiarch/s_rint.S: Renamed to ...
- sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S: This. Don't include nor . Include . (__rint): Removed.
- sysdeps/x86_64/fpu/multiarch/s_rintf.S: Renamed to ...
- sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S: This. Don't include nor . Include . (__rintf): Removed.

10a87ca x86-64: Implement libm IFUNC selectors in C
ChangeLog | 48 ++++++++++++++++++++++
sysdeps/x86_64/fpu/multiarch/Makefile | 4 ++
sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h | 33 +++++++++++++++
.../fpu/multiarch/{s_ceil.S => s_ceil-sse4_1.S} | 17 +-------
sysdeps/x86_64/fpu/multiarch/s_ceil.c | 29 +++++++++++++
.../fpu/multiarch/{s_ceilf.S => s_ceilf-sse4_1.S} | 17 +-------
sysdeps/x86_64/fpu/multiarch/s_ceilf.c | 29 +++++++++++++
.../fpu/multiarch/{s_floor.S => s_floor-sse4_1.S} | 17 +-------
sysdeps/x86_64/fpu/multiarch/s_floor.c | 29 +++++++++++++
.../multiarch/{s_floorf.S => s_floorf-sse4_1.S} | 17 +-------
sysdeps/x86_64/fpu/multiarch/s_floorf.c | 29 +++++++++++++
.../{s_nearbyint.S => s_nearbyint-sse4_1.S} | 17 +-------
sysdeps/x86_64/fpu/multiarch/s_nearbyint.c | 30 ++++++++++++++
.../{s_nearbyintf.S => s_nearbyintf-sse4_1.S} | 17 +-------
sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c | 30 ++++++++++++++
.../fpu/multiarch/{s_rint.S => s_rint-sse4_1.S} | 17 +-------
sysdeps/x86_64/fpu/multiarch/s_rint.c | 29 +++++++++++++
.../fpu/multiarch/{s_rintf.S => s_rintf-sse4_1.S} | 17 +-------
sysdeps/x86_64/fpu/multiarch/s_rintf.c | 29 +++++++++++++
19 files changed, 335 insertions(+), 120 deletions(-)

Upstream: sourceware.org


  • Share