From 33d7e138ca63b4091bba840c609a95cdcc56c10e Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Fri, 3 Feb 2017 17:48:39 -0800 Subject: sparc: Remove optimized math routines which cause testsuite failures. famx{,f}/fmin{,f} and 32-bit lrint cause math testsuite failures either because they generate incorrect results or they fail to signal the proper exceptions. * sysdeps/sparc/sparc64/fpu/multiarch/s_fmax-vis3.S: Remove file. * sysdeps/sparc/sparc64/fpu/multiarch/s_fmax.S: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf-vis3.S: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf.S: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_fmin-vis3.S: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_fmin.S: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_fminf-vis3.S: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/s_fminf.S: Likewise. * sysdeps/sparc/sparc64/fpu/multiarch/Makefile (libm-sysdep_routines): Update. * sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S: Remove file. * sysdeps/sparc/sparc32/sparcv9/fpu/s_fmaxf.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_fminf.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S: Likewise. * sysdeps/sparc/sparc64/fpu/s_fmax.S: Likewise. * sysdeps/sparc/sparc64/fpu/s_fmaxf.S: Likewise. * sysdeps/sparc/sparc64/fpu/s_fmin.S: Likewise. * sysdeps/sparc/sparc64/fpu/s_fminf.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax-vis3.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaxf-vis3.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaxf.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin-vis3.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fminf-vis3.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fminf.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile (libm-sysdep_routines): Update. --- sysdeps/sparc/sparc64/fpu/multiarch/Makefile | 3 +- sysdeps/sparc/sparc64/fpu/multiarch/s_fmax-vis3.S | 26 ---------------- sysdeps/sparc/sparc64/fpu/multiarch/s_fmax.S | 12 -------- sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf-vis3.S | 27 ---------------- sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf.S | 12 -------- sysdeps/sparc/sparc64/fpu/multiarch/s_fmin-vis3.S | 26 ---------------- sysdeps/sparc/sparc64/fpu/multiarch/s_fmin.S | 12 -------- sysdeps/sparc/sparc64/fpu/multiarch/s_fminf-vis3.S | 27 ---------------- sysdeps/sparc/sparc64/fpu/multiarch/s_fminf.S | 12 -------- sysdeps/sparc/sparc64/fpu/s_fmax.S | 36 ---------------------- sysdeps/sparc/sparc64/fpu/s_fmaxf.S | 36 ---------------------- sysdeps/sparc/sparc64/fpu/s_fmin.S | 36 ---------------------- sysdeps/sparc/sparc64/fpu/s_fminf.S | 36 ---------------------- 13 files changed, 1 insertion(+), 300 deletions(-) delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fmax-vis3.S delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fmax.S delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf-vis3.S delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf.S delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fmin-vis3.S delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fmin.S delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fminf-vis3.S delete mode 100644 sysdeps/sparc/sparc64/fpu/multiarch/s_fminf.S delete mode 100644 sysdeps/sparc/sparc64/fpu/s_fmax.S delete mode 100644 sysdeps/sparc/sparc64/fpu/s_fmaxf.S delete mode 100644 sysdeps/sparc/sparc64/fpu/s_fmin.S delete mode 100644 sysdeps/sparc/sparc64/fpu/s_fminf.S (limited to 'sysdeps/sparc/sparc64/fpu') diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/Makefile b/sysdeps/sparc/sparc64/fpu/multiarch/Makefile index 51f37093d8..03a271dfa4 100644 --- a/sysdeps/sparc/sparc64/fpu/multiarch/Makefile +++ b/sysdeps/sparc/sparc64/fpu/multiarch/Makefile @@ -4,8 +4,7 @@ libm-sysdep_routines += m_signbitf-vis3 m_signbit-vis3 m_finitef-vis3 \ m_finite-vis3 m_isinff-vis3 m_isinf-vis3 \ m_isnanf-vis3 m_isnan-vis3 s_lrintf-vis3 \ s_lrint-vis3 s_rintf-vis3 s_rint-vis3 \ - s_fminf-vis3 s_fmin-vis3 s_fmaxf-vis3 \ - s_fmax-vis3 s_fmaf-vis3 s_fma-vis3 \ + s_fmaf-vis3 s_fma-vis3 \ s_nearbyint-vis3 s_nearbyintf-vis3 \ s_ceilf-vis3 s_ceil-vis3 s_floorf-vis3 \ s_floor-vis3 s_truncf-vis3 s_trunc-vis3 diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmax-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmax-vis3.S deleted file mode 100644 index ec33d1e9ee..0000000000 --- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmax-vis3.S +++ /dev/null @@ -1,26 +0,0 @@ -/* fmax function, sparc64 vis3 version. - Copyright (C) 2012-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David S. Miller , 2012. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -ENTRY (__fmax_vis3) - flcmpd %fcc1, %f0, %f2 - retl - fmovdlg %fcc1, %f2, %f0 -END (__fmax_vis3) diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmax.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmax.S deleted file mode 100644 index d5e59d8d1e..0000000000 --- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmax.S +++ /dev/null @@ -1,12 +0,0 @@ -#include - -SPARC_ASM_VIS3_IFUNC(fmax) - -weak_alias (__fmax, fmax) - -# undef weak_alias -# define weak_alias(a, b) - -#define __fmax __fmax_generic - -#include "../s_fmax.S" diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf-vis3.S deleted file mode 100644 index 4be2c66f01..0000000000 --- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf-vis3.S +++ /dev/null @@ -1,27 +0,0 @@ -/* fmaxf function, sparc64 vis3 version. - Copyright (C) 2012-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David S. Miller , 2012. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -ENTRY (__fmaxf_vis3) - flcmps %fcc1, %f1, %f3 - fmovs %f1, %f0 - retl - fmovslg %fcc1, %f3, %f0 -END (__fmaxf_vis3) diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf.S deleted file mode 100644 index daa91579c4..0000000000 --- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf.S +++ /dev/null @@ -1,12 +0,0 @@ -#include - -SPARC_ASM_VIS3_IFUNC(fmaxf) - -weak_alias (__fmaxf, fmaxf) - -# undef weak_alias -# define weak_alias(a, b) - -#define __fmaxf __fmaxf_generic - -#include "../s_fmaxf.S" diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmin-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmin-vis3.S deleted file mode 100644 index 880c3060c9..0000000000 --- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmin-vis3.S +++ /dev/null @@ -1,26 +0,0 @@ -/* fmin function, sparc64 vis3 version. - Copyright (C) 2012-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David S. Miller , 2012. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -ENTRY (__fmin_vis3) - flcmpd %fcc1, %f0, %f2 - retl - fmovdge %fcc1, %f2, %f0 -END (__fmin_vis3) diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmin.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmin.S deleted file mode 100644 index b2aec1bbc0..0000000000 --- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmin.S +++ /dev/null @@ -1,12 +0,0 @@ -#include - -SPARC_ASM_VIS3_IFUNC(fmin) - -weak_alias (__fmin, fmin) - -# undef weak_alias -# define weak_alias(a, b) - -#define __fmin __fmin_generic - -#include "../s_fmin.S" diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fminf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fminf-vis3.S deleted file mode 100644 index c4a909cb90..0000000000 --- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fminf-vis3.S +++ /dev/null @@ -1,27 +0,0 @@ -/* fminf function, sparc64 vis3 version. - Copyright (C) 2012-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David S. Miller , 2012. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -ENTRY (__fminf_vis3) - flcmps %fcc1, %f1, %f3 - fmovs %f1, %f0 - retl - fmovsge %fcc1, %f3, %f0 -END (__fminf_vis3) diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fminf.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fminf.S deleted file mode 100644 index c4690e1df9..0000000000 --- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fminf.S +++ /dev/null @@ -1,12 +0,0 @@ -#include - -SPARC_ASM_VIS3_IFUNC(fminf) - -weak_alias (__fminf, fminf) - -# undef weak_alias -# define weak_alias(a, b) - -#define __fminf __fminf_generic - -#include "../s_fminf.S" diff --git a/sysdeps/sparc/sparc64/fpu/s_fmax.S b/sysdeps/sparc/sparc64/fpu/s_fmax.S deleted file mode 100644 index 0bb451aa99..0000000000 --- a/sysdeps/sparc/sparc64/fpu/s_fmax.S +++ /dev/null @@ -1,36 +0,0 @@ -/* fmax function, sparc64 version. - Copyright (C) 2012-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David S. Miller , 2012. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -#define SIGN_BIT %f12 /* -0.0 */ - -ENTRY (__fmax) - fcmpd %fcc1, %f2, %f2 - fzero SIGN_BIT - fmovdu %fcc1, %f0, %f2 - fnegd SIGN_BIT, SIGN_BIT - fcmpd %fcc2, %f0, %f2 - fmovdul %fcc2, %f2, %f0 - fand %f0, %f2, %f4 - fandnot2 SIGN_BIT, %f4, %f4 - retl - fandnot2 %f0, %f4, %f0 -END (__fmax) -weak_alias (__fmax, fmax) diff --git a/sysdeps/sparc/sparc64/fpu/s_fmaxf.S b/sysdeps/sparc/sparc64/fpu/s_fmaxf.S deleted file mode 100644 index 6a4da74fd9..0000000000 --- a/sysdeps/sparc/sparc64/fpu/s_fmaxf.S +++ /dev/null @@ -1,36 +0,0 @@ -/* fmaxf function, sparc64 version. - Copyright (C) 2012-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David S. Miller , 2012. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -#define SIGN_BIT %f12 /* -0.0 */ - -ENTRY (__fmaxf) - fcmps %fcc1, %f3, %f3 - fzeros SIGN_BIT - fmovsu %fcc1, %f1, %f3 - fnegs SIGN_BIT, SIGN_BIT - fcmps %fcc2, %f1, %f3 - fmovsul %fcc2, %f3, %f1 - fands %f1, %f3, %f4 - fandnot2s SIGN_BIT, %f4, %f4 - retl - fandnot2s %f1, %f4, %f0 -END (__fmaxf) -weak_alias (__fmaxf, fmaxf) diff --git a/sysdeps/sparc/sparc64/fpu/s_fmin.S b/sysdeps/sparc/sparc64/fpu/s_fmin.S deleted file mode 100644 index 5813aa56d0..0000000000 --- a/sysdeps/sparc/sparc64/fpu/s_fmin.S +++ /dev/null @@ -1,36 +0,0 @@ -/* fmin function, sparc64 version. - Copyright (C) 2012-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David S. Miller , 2012. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -#define SIGN_BIT %f12 /* -0.0 */ - -ENTRY (__fmin) - fcmpd %fcc1, %f2, %f2 - fzero SIGN_BIT - fmovdu %fcc1, %f0, %f2 - fnegd SIGN_BIT, SIGN_BIT - fcmpd %fcc2, %f0, %f2 - fmovdug %fcc2, %f2, %f0 - for %f0, %f2, %f4 - fand %f4, SIGN_BIT, %f4 - retl - for %f0, %f4, %f0 -END (__fmin) -weak_alias (__fmin, fmin) diff --git a/sysdeps/sparc/sparc64/fpu/s_fminf.S b/sysdeps/sparc/sparc64/fpu/s_fminf.S deleted file mode 100644 index 3dde5b1aa9..0000000000 --- a/sysdeps/sparc/sparc64/fpu/s_fminf.S +++ /dev/null @@ -1,36 +0,0 @@ -/* fminf function, sparc64 version. - Copyright (C) 2012-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by David S. Miller , 2012. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -#define SIGN_BIT %f12 /* -0.0 */ - -ENTRY (__fminf) - fcmps %fcc1, %f3, %f3 - fzeros SIGN_BIT - fmovsu %fcc1, %f1, %f3 - fnegs SIGN_BIT, SIGN_BIT - fcmps %fcc2, %f1, %f3 - fmovsug %fcc2, %f3, %f1 - fors %f1, %f3, %f4 - fands %f4, SIGN_BIT, %f4 - retl - fors %f1, %f4, %f0 -END (__fminf) -weak_alias (__fminf, fminf) -- cgit v1.2.3