diff options
author | David S. Miller <davem@davemloft.net> | 2017-02-03 17:48:39 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-03 17:55:25 -0800 |
commit | 33d7e138ca63b4091bba840c609a95cdcc56c10e (patch) | |
tree | 5b30a2f9d34ae95acc4d0d7e6cc9bbdf18d024bd /sysdeps/sparc/sparc64 | |
parent | 6fab532b4781b0bcb554fd5c2f2e6d5448343aff (diff) | |
download | glibc-33d7e138ca63b4091bba840c609a95cdcc56c10e.tar.gz glibc-33d7e138ca63b4091bba840c609a95cdcc56c10e.tar.xz glibc-33d7e138ca63b4091bba840c609a95cdcc56c10e.zip |
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.
Diffstat (limited to 'sysdeps/sparc/sparc64')
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/multiarch/Makefile | 3 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/multiarch/s_fmax-vis3.S | 26 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/multiarch/s_fmax.S | 12 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf-vis3.S | 27 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/multiarch/s_fmaxf.S | 12 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/multiarch/s_fmin-vis3.S | 26 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/multiarch/s_fmin.S | 12 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/multiarch/s_fminf-vis3.S | 27 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/multiarch/s_fminf.S | 12 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/s_fmax.S | 36 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/s_fmaxf.S | 36 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/s_fmin.S | 36 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/s_fminf.S | 36 |
13 files changed, 1 insertions, 300 deletions
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 <davem@davemloft.net>, 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 - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -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-ifunc.h> - -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 <davem@davemloft.net>, 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 - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -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-ifunc.h> - -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 <davem@davemloft.net>, 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 - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -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-ifunc.h> - -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 <davem@davemloft.net>, 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 - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -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-ifunc.h> - -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 <davem@davemloft.net>, 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 - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -#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 <davem@davemloft.net>, 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 - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -#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 <davem@davemloft.net>, 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 - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -#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 <davem@davemloft.net>, 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 - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> - -#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) |