sparc64: add a VIS3 version of ceil, floor and trunc
commitbdf20beac183c705abef5aef8de2db5fac00bc8b
authorAurelien Jarno <aurelien@aurel32.net>
Sun, 31 Jul 2016 21:45:52 +0000 (31 23:45 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Wed, 3 Aug 2016 11:35:22 +0000 (3 13:35 +0200)
tree85346cf83298702d3a4c3c5874918c671ea51427
parent3ef3f1b93fdf20143865cc16dd75f39a7f0fac2f
sparc64: add a VIS3 version of ceil, floor and trunc

sparc64 passes floating point values in the floating point registers.
As the the generic ceil, floor and trunc functions use integer
instructions, it makes sense to provide a VIS3 version consisting in
the the generic version compiled with -mvis3. GCC will then use
movdtox, movxtod, movwtos and movstow instructions.

sparc32 passes the floating point values in the integer registers, so it
doesn't make sense to do the same.

Changelog:
* sysdeps/ieee754/dbl-64/s_trunc.c: Avoid alias renamed.
* sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Likewise.
* sysdeps/ieee754/flt-32/s_truncf.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/Makefile
[$(subdir) = math && $(have-as-vis3) = yes] (libm-sysdep_routines):
Add s_ceilf-vis3, s_ceil-vis3, s_floorf-vis3, s_floor-vis3,
s_truncf-vis3, s_trunc-vis3.
(CFLAGS-s_ceilf-vis3.c): New. Set to -Wa,-Av9d -mvis3.
(CFLAGS-s_ceil-vis3.c): Likewise.
(CFLAGS-s_floorf-vis3.c): Likewise.
(CFLAGS-s_floor-vis3.c): Likewise.
(CFLAGS-s_truncf-vis3.c): Likewise.
(CFLAGS-s_trunc-vis3.c): Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c: New file.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c: Likewise.
* sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Likewise.
17 files changed:
ChangeLog
sysdeps/ieee754/dbl-64/s_trunc.c
sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c
sysdeps/ieee754/flt-32/s_truncf.c
sysdeps/sparc/sparc64/fpu/multiarch/Makefile
sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 52% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 51% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 52% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 51% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 52% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 51% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 52% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 51% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 52% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 51% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 52% similarity]
sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c [copied from sysdeps/ieee754/flt-32/s_truncf.c with 53% similarity]