This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.17-118-g65a82e3
- From: davem at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 15 Jan 2013 02:23:32 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.17-118-g65a82e3
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 65a82e3dd538aabcdbeacf87fcee32f4e355e5b6 (commit)
from 93f5c4e2e552e96511e59139dd7b7bc9f630133d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=65a82e3dd538aabcdbeacf87fcee32f4e355e5b6
commit 65a82e3dd538aabcdbeacf87fcee32f4e355e5b6
Author: David S. Miller <davem@davemloft.net>
Date: Mon Jan 14 18:15:49 2013 -0800
Optimize fdim/fdimf on sparc.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add vis3
fdim/fdimf to libm-sysdep_routines.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S: New
file.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S: New file.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S: New file.
* sysdeps/sparc/sparc32/fpu/s_fdim.S: New file.
* sysdeps/sparc/sparc32/fpu/s_fdimf.S: New file.
* sysdeps/sparc/sparc64/fpu/s_fdim.S: New file.
* sysdeps/sparc/sparc64/fpu/s_fdimf.S: New file.
diff --git a/ChangeLog b/ChangeLog
index 94f56c3..9fa68b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2013-01-14 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add vis3
+ fdim/fdimf to libm-sysdep_routines.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S: New file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S: New file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S: New file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S: New file.
+ * sysdeps/sparc/sparc32/fpu/s_fdim.S: New file.
+ * sysdeps/sparc/sparc32/fpu/s_fdimf.S: New file.
+ * sysdeps/sparc/sparc64/fpu/s_fdim.S: New file.
+ * sysdeps/sparc/sparc64/fpu/s_fdimf.S: New file.
+
2013-01-14 Siddhesh Poyarekar <siddhesh@redhat.com>
* sysdeps/ieee754/dbl-64/mpa.c (__mul): Add a local variable
diff --git a/sysdeps/sparc/sparc32/fpu/s_fdim.S b/sysdeps/sparc/sparc32/fpu/s_fdim.S
new file mode 100644
index 0000000..2f0c5ce
--- /dev/null
+++ b/sysdeps/sparc/sparc32/fpu/s_fdim.S
@@ -0,0 +1,41 @@
+/* Compute positive difference, sparc 32-bit.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>.
+
+ 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>
+#include <math_ldbl_opt.h>
+
+ENTRY(__fdim)
+ std %o0, [%sp + 72]
+ std %o2, [%sp + 80]
+ ldd [%sp + 72], %f0
+ ldd [%sp + 80], %f2
+ fcmpd %f0, %f2
+ st %g0, [%sp + 72]
+ fbug 1f
+ st %g0, [%sp + 76]
+ ldd [%sp + 72], %f0
+ fnegd %f0, %f2
+1: retl
+ fsubd %f0, %f2, %f0
+END(__fdim)
+weak_alias (__fdim, fdim)
+
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __fdim, fdiml, GLIBC_2_1);
+#endif
diff --git a/sysdeps/sparc/sparc32/fpu/s_fdimf.S b/sysdeps/sparc/sparc32/fpu/s_fdimf.S
new file mode 100644
index 0000000..570fdc3
--- /dev/null
+++ b/sysdeps/sparc/sparc32/fpu/s_fdimf.S
@@ -0,0 +1,35 @@
+/* Compute positive difference, sparc 32-bit.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>.
+
+ 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(__fdimf)
+ st %o0, [%sp + 72]
+ st %o1, [%sp + 76]
+ ld [%sp + 72], %f0
+ ld [%sp + 76], %f1
+ fcmps %f0, %f1
+ fbug 1f
+ st %g0, [%sp + 72]
+ ld [%sp + 72], %f0
+ fnegs %f0, %f1
+1: retl
+ fsubs %f0, %f1, %f0
+END(__fdimf)
+weak_alias (__fdimf, fdimf)
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
index ee9f6ff..6349681 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
@@ -5,7 +5,7 @@ libm-sysdep_routines += m_copysignf-vis3 m_copysign-vis3 s_ceilf-vis3 \
s_floorf-vis3 s_llrintf-vis3 s_llrint-vis3 \
s_rintf-vis3 s_rint-vis3 w_sqrt-vis3 w_sqrtf-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_fdimf-vis3 s_fdim-vis3
sysdep_routines += s_copysignf-vis3 s_copysign-vis3
endif
endif
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S
new file mode 100644
index 0000000..5e011a1
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S
@@ -0,0 +1,34 @@
+/* Compute positive difference, sparc 32-bit+v9+vis3.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>.
+
+ 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(__fdim_vis3)
+ movwtos %o0, %f0
+ movwtos %o1, %f1
+ movwtos %o2, %f2
+ movwtos %o3, %f3
+ fcmpd %f0, %f2
+ fbug 1f
+ nop
+ fzero %f0
+ fnegd %f0, %f2
+1: retl
+ fsubd %f0, %f2, %f0
+END(__fdim_vis3)
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S
new file mode 100644
index 0000000..4b13408
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S
@@ -0,0 +1,19 @@
+#include <sparc-ifunc.h>
+#include <math_ldbl_opt.h>
+
+SPARC_ASM_VIS3_IFUNC(fdim)
+
+weak_alias (__fdim, fdim)
+
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __fdim, fdiml, GLIBC_2_1);
+#endif
+
+# undef weak_alias
+# define weak_alias(a, b)
+# undef compat_symbol
+# define compat_symbol(a, b, c, d)
+
+#define __fdim __fdim_generic
+
+#include "../s_fdim.S"
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S
new file mode 100644
index 0000000..c6d5712
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S
@@ -0,0 +1,32 @@
+/* Compute positive difference, sparc 32-bit+v9+vis3.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>.
+
+ 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(__fdimf_vis3)
+ movwtos %o0, %f0
+ movwtos %o1, %f1
+ fcmps %f0, %f1
+ fbug 1f
+ nop
+ fzeros %f0
+ fnegs %f0, %f1
+1: retl
+ fsubs %f0, %f1, %f0
+END(__fdimf_vis3)
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S
new file mode 100644
index 0000000..30381d6
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S
@@ -0,0 +1,12 @@
+#include <sparc-ifunc.h>
+
+SPARC_ASM_VIS3_IFUNC(fdimf)
+
+weak_alias (__fdimf, fdimf)
+
+# undef weak_alias
+# define weak_alias(a, b)
+
+#define __fdimf __fdimf_generic
+
+#include "../s_fdimf.S"
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S
new file mode 100644
index 0000000..6f26ab7
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S
@@ -0,0 +1,40 @@
+/* Compute positive difference, sparc 32-bit+v9.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>.
+
+ 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>
+#include <math_ldbl_opt.h>
+
+ENTRY(__fdim)
+ std %o0, [%sp + 72]
+ std %o2, [%sp + 80]
+ ldd [%sp + 72], %f0
+ ldd [%sp + 80], %f2
+ fcmpd %f0, %f2
+ fbug 1f
+ nop
+ fzero %f0
+ fnegd %f0, %f2
+1: retl
+ fsubd %f0, %f2, %f0
+END(__fdim)
+weak_alias (__fdim, fdim)
+
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __fdim, fdiml, GLIBC_2_1);
+#endif
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S
new file mode 100644
index 0000000..fc55867
--- /dev/null
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S
@@ -0,0 +1,35 @@
+/* Compute positive difference, sparc 32-bit+v9.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>.
+
+ 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(__fdimf)
+ st %o0, [%sp + 72]
+ st %o1, [%sp + 76]
+ ld [%sp + 72], %f0
+ ld [%sp + 76], %f1
+ fcmps %f0, %f1
+ fbug 1f
+ nop
+ fzeros %f0
+ fnegs %f0, %f1
+1: retl
+ fsubs %f0, %f1, %f0
+END(__fdimf)
+weak_alias (__fdimf, fdimf)
diff --git a/sysdeps/sparc/sparc64/fpu/s_fdim.S b/sysdeps/sparc/sparc64/fpu/s_fdim.S
new file mode 100644
index 0000000..a1c53df
--- /dev/null
+++ b/sysdeps/sparc/sparc64/fpu/s_fdim.S
@@ -0,0 +1,32 @@
+/* Compute positive difference, sparc 64-bit.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>.
+
+ 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>
+#include <math_ldbl_opt.h>
+
+ENTRY(__fdim)
+ fcmpd %f0, %f2
+ fbug 1f
+ nop
+ fzero %f0
+ fnegd %f0, %f2
+1: retl
+ fsubd %f0, %f2, %f0
+END(__fdim)
+weak_alias (__fdim, fdim)
diff --git a/sysdeps/sparc/sparc64/fpu/s_fdimf.S b/sysdeps/sparc/sparc64/fpu/s_fdimf.S
new file mode 100644
index 0000000..61782a5
--- /dev/null
+++ b/sysdeps/sparc/sparc64/fpu/s_fdimf.S
@@ -0,0 +1,31 @@
+/* Compute positive difference, sparc 64-bit.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>.
+
+ 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(__fdimf)
+ fcmps %f1, %f3
+ fbug 1f
+ nop
+ fzeros %f1
+ fnegs %f1, %f3
+1: retl
+ fsubs %f1, %f3, %f0
+END(__fdimf)
+weak_alias (__fdimf, fdimf)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 17 ++++++++
sysdeps/sparc/sparc32/fpu/s_fdim.S | 41 ++++++++++++++++++++
sysdeps/sparc/sparc32/fpu/s_fdimf.S | 35 +++++++++++++++++
.../sparc/sparc32/sparcv9/fpu/multiarch/Makefile | 2 +-
.../sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S | 34 ++++++++++++++++
.../sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S | 19 +++++++++
.../sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S | 32 +++++++++++++++
.../sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S | 12 ++++++
sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S | 40 +++++++++++++++++++
sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S | 35 +++++++++++++++++
sysdeps/sparc/sparc64/fpu/s_fdim.S | 32 +++++++++++++++
sysdeps/sparc/sparc64/fpu/s_fdimf.S | 31 +++++++++++++++
12 files changed, 329 insertions(+), 1 deletions(-)
create mode 100644 sysdeps/sparc/sparc32/fpu/s_fdim.S
create mode 100644 sysdeps/sparc/sparc32/fpu/s_fdimf.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S
create mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S
create mode 100644 sysdeps/sparc/sparc64/fpu/s_fdim.S
create mode 100644 sysdeps/sparc/sparc64/fpu/s_fdimf.S
hooks/post-receive
--
GNU C Library master sources