This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.15-545-g15a946b


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  15a946b57a1e7f4ba95b63572062860ca1a5e58f (commit)
      from  d653abb723919fb11f8573cdedf65505c0eca55f (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=15a946b57a1e7f4ba95b63572062860ca1a5e58f

commit 15a946b57a1e7f4ba95b63572062860ca1a5e58f
Author: Kaz Kojima <kkojima@rr.iij4u.or.jp>
Date:   Thu Apr 5 11:43:30 2012 +0900

    Add support fedisableexcept, feenableexcept, fegetexcept and feupdateenv
    for SH.

diff --git a/sysdeps/sh/sh4/fpu/fedisblxcpt.c b/sysdeps/sh/sh4/fpu/fedisblxcpt.c
new file mode 100644
index 0000000..029fcc3
--- /dev/null
+++ b/sysdeps/sh/sh4/fpu/fedisblxcpt.c
@@ -0,0 +1,39 @@
+/* Disable floating-point exceptions.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 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 <fenv.h>
+#include <fpu_control.h>
+
+int
+fedisableexcept (int excepts)
+{
+  unsigned int temp, old_exc;
+
+  /* Get the current control register contents.  */
+  _FPU_GETCW (temp);
+
+  old_exc = (temp >> 5) & FE_ALL_EXCEPT;
+
+  excepts &= FE_ALL_EXCEPT;
+
+  temp &= ~(excepts << 5);
+  _FPU_SETCW (temp);
+
+  return old_exc;
+}
diff --git a/sysdeps/sh/sh4/fpu/feenablxcpt.c b/sysdeps/sh/sh4/fpu/feenablxcpt.c
new file mode 100644
index 0000000..93fa749
--- /dev/null
+++ b/sysdeps/sh/sh4/fpu/feenablxcpt.c
@@ -0,0 +1,38 @@
+/* Enable floating-point exceptions.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 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 <fenv.h>
+#include <fpu_control.h>
+
+int
+feenableexcept (int excepts)
+{
+  unsigned int temp, old_flag;
+
+  /* Get current exceptions.  */
+  _FPU_GETCW (temp);
+
+  old_flag = (temp >> 5) & FE_ALL_EXCEPT;
+  excepts &= FE_ALL_EXCEPT;
+
+  temp |= excepts << 5;
+  _FPU_SETCW (temp);
+
+  return old_flag;
+}
diff --git a/sysdeps/sh/sh4/fpu/fegetexcept.c b/sysdeps/sh/sh4/fpu/fegetexcept.c
new file mode 100644
index 0000000..a849a17
--- /dev/null
+++ b/sysdeps/sh/sh4/fpu/fegetexcept.c
@@ -0,0 +1,35 @@
+/* Get enabled floating-point exceptions.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 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 <fenv.h>
+#include <fpu_control.h>
+
+int
+fegetexcept (void)
+{
+  unsigned int temp;
+
+  /* Get current exceptions.  */
+  _FPU_GETCW (temp);
+  /* When read fpscr, this was initialized.
+     We need to rewrite value of temp. */
+  _FPU_SETCW (temp);
+
+  return (temp >> 5) & FE_ALL_EXCEPT;
+}
diff --git a/sysdeps/sh/sh4/fpu/feupdateenv.c b/sysdeps/sh/sh4/fpu/feupdateenv.c
new file mode 100644
index 0000000..96a6979
--- /dev/null
+++ b/sysdeps/sh/sh4/fpu/feupdateenv.c
@@ -0,0 +1,39 @@
+/* Install given floating-point environment and raise exceptions.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 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 <fenv.h>
+#include <fpu_control.h>
+
+int
+feupdateenv (const fenv_t *envp)
+{
+  unsigned int temp;
+
+  _FPU_GETCW (temp);
+  temp = (temp & FE_ALL_EXCEPT);
+
+  /* Raise the saved exception. Incidently for us the implementation
+    defined format of the values in objects of type fexcept_t is the
+    same as the ones specified using the FE_* constants. */
+  fesetenv (envp);
+  feraiseexcept ((int) temp);
+
+  return 0;
+}
+libm_hidden_def (feupdateenv)

-----------------------------------------------------------------------

Summary of changes:
 sysdeps/sh/sh4/fpu/fedisblxcpt.c |   39 ++++++++++++++++++++++++++++++++++++++
 sysdeps/sh/sh4/fpu/feenablxcpt.c |   38 +++++++++++++++++++++++++++++++++++++
 sysdeps/sh/sh4/fpu/fegetexcept.c |   35 ++++++++++++++++++++++++++++++++++
 sysdeps/sh/sh4/fpu/feupdateenv.c |   39 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 151 insertions(+), 0 deletions(-)
 create mode 100644 sysdeps/sh/sh4/fpu/fedisblxcpt.c
 create mode 100644 sysdeps/sh/sh4/fpu/feenablxcpt.c
 create mode 100644 sysdeps/sh/sh4/fpu/fegetexcept.c
 create mode 100644 sysdeps/sh/sh4/fpu/feupdateenv.c


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]