[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r6849 - in /branches/libdfp/libc/dfp/sysdeps: s390/ s390/dfpu/ s390/fpu/ s390/s390-64/ s390/s390-64/z9-ec/ s390/s390-64/z9-e...



Author: eberlein
Date: Fri Aug 29 12:39:15 2008
New Revision: 6849

Log:
2008-08-29  Andreas Krebbel  <krebbel1@xxxxxxxxxx>

	* dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/fpu/Implies: 
	New file.
	* dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/Implies: New 
	file.
	* dfp/sysdeps/s390/s390-64/z9-ec/fpu/Implies: New file.
	* dfp/sysdeps/unix/sysv/linux/s390/Implies: New file.
	* dfp/sysdeps/s390/dfpu/fe_decround.c: New file.
	* dfp/sysdeps/s390/fpu/fraiseexcpt.c: Duplicate of bfp file.
	* dfp/sysdeps/s390/fpu/ftestexcept.c: Likewise.
	* dfp/sysdeps/s390/fpu/fclrexcpt.c: Likewise.
	* dfp/sysdeps/s390/dfpu/fenv_libc.h: New file.
	* dfp/sysdeps/s390/dfpu/fpu_control.h: New file.
	* dfp/sysdeps/s390/dfpu/numdigits.h: New file.
	* dfp/sysdeps/s390/fpu/Makefile: New file.


Added:
    branches/libdfp/libc/dfp/sysdeps/s390/
    branches/libdfp/libc/dfp/sysdeps/s390/dfpu/
    branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fe_decround.c
    branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fenv_libc.h
    branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fpu_control.h
    branches/libdfp/libc/dfp/sysdeps/s390/dfpu/numdigits.h
    branches/libdfp/libc/dfp/sysdeps/s390/fpu/
    branches/libdfp/libc/dfp/sysdeps/s390/fpu/Makefile
    branches/libdfp/libc/dfp/sysdeps/s390/fpu/fclrexcpt.c
    branches/libdfp/libc/dfp/sysdeps/s390/fpu/fraiseexcpt.c
    branches/libdfp/libc/dfp/sysdeps/s390/fpu/ftestexcept.c
    branches/libdfp/libc/dfp/sysdeps/s390/s390-64/
    branches/libdfp/libc/dfp/sysdeps/s390/s390-64/z9-ec/
    branches/libdfp/libc/dfp/sysdeps/s390/s390-64/z9-ec/fpu/
    branches/libdfp/libc/dfp/sysdeps/s390/s390-64/z9-ec/fpu/Implies
    branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/
    branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/Implies
    branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/
    branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/
    branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/Implies
    branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/fpu/
    branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/fpu/Implies

Added: branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fe_decround.c
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fe_decround.c (added)
+++ branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fe_decround.c Fri Aug 29 12:39:15 2008
@@ -1,0 +1,53 @@
+/* Return current rounding direction.
+   Copyright (C) 2000, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Andreas Krebbel  <Andreas.Krebbel@xxxxxxxxxx>
+
+   Based on the binary floating point variants contributed
+   by Denis Joseph Barrow (djbarrow@xxxxxxxxxx).
+
+   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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <fenv_libc.h>
+#include <fpu_control.h>
+
+int
+__fe_dec_getround (void)
+{
+  fexcept_t cw;
+
+  _FPU_GETCW (cw);
+
+  return (cw & FPC_DFP_RM_MASK) >> 4;
+}
+strong_alias(__fe_dec_getround, fe_dec_getround)
+
+int
+__fe_dec_setround (int round)
+{
+  if ((round|FPC_DFP_RM_MASK) != FPC_DFP_RM_MASK
+      || (round > FE_DEC_TONEARESTFROMZERO))
+    {
+      /* ROUND is not a valid rounding mode.  */
+      return 1;
+    }
+  __asm__ volatile ("srnmt 0(%0)"
+		 		     :
+		 		     : "a" (round << 4));
+
+  return 0;
+}
+strong_alias(__fe_dec_setround, fe_dec_setround)

Added: branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fenv_libc.h
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fenv_libc.h (added)
+++ branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fenv_libc.h Fri Aug 29 12:39:15 2008
@@ -1,0 +1,44 @@
+/* Copyright (C) 2000, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Andreas Krebbel  <Andreas.Krebbel@xxxxxxxxxx>
+
+   Based on the binary floating point variants contributed
+   by Denis Joseph Barrow (djbarrow@xxxxxxxxxx).
+
+   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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _FENV_LIBC_H
+#define _FENV_LIBC_H    1
+
+#include <fenv.h>
+
+/* Definitions from asm/s390-regs-common.h that are needed in glibc.  */
+
+
+#define FPC_EXCEPTION_MASK		 0xF8000000
+#define FPC_FLAGS_MASK		 		 0x00F80000
+#define FPC_DXC_MASK		 		 0x0000FF00
+#define FPC_RM_MASK		 		 0x00000003
+#define FPC_DFP_RM_MASK		 		 0x00000070
+#define FPC_VALID_MASK		 		 ((FPC_EXCEPTION_MASK|FPC_FLAGS_MASK| \
+		 		 		 		  FPC_DXC_MASK|FPC_BFP_RM_MASK|FPC_DFP_RM_MASK))
+
+#define FPC_EXCEPTION_MASK_SHIFT		 24
+#define FPC_FLAGS_SHIFT		 		 		 16
+#define FPC_DXC_SHIFT		 		 		 8
+#define FPC_NOT_FPU_EXCEPTION		 		 0x300
+
+#endif /* _FENV_LIBC_H */

Added: branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fpu_control.h
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fpu_control.h (added)
+++ branches/libdfp/libc/dfp/sysdeps/s390/dfpu/fpu_control.h Fri Aug 29 12:39:15 2008
@@ -1,0 +1,73 @@
+/* FPU control word definitions.  Stub version.
+   Copyright (C) 2000, 2008
+   Free Software Foundation, Inc.
+
+   Contributed by Denis Joseph Barrow (djbarrow@xxxxxxxxxx) and
+   Martin Schwidefsky (schwidefsky@xxxxxxxxxx).
+
+   Adjusted for Decimal Floating Point by
+   Andreas Krebbel  <Andreas.Krebbel@xxxxxxxxxx>
+
+   This file is part of the GNU C Library.
+
+   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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _FPU_CONTROL_H
+# define _FPU_CONTROL_H
+
+# include <features.h>
+
+/* bfp rounding control */
+#define _FPU_RC_NEAREST 0x00   /* RECOMMENDED */
+#define _FPU_RC_DOWN    0x03
+#define _FPU_RC_UP      0x02
+#define _FPU_RC_ZERO    0x01
+
+/* masking of interrupts */
+#define _FPU_MASK_ZM  0x40 /* zero divide */
+#define _FPU_MASK_OM  0x20 /* overflow */
+#define _FPU_MASK_UM  0x10 /* underflow */
+#define _FPU_MASK_XM  0x08 /* inexact */
+#define _FPU_MASK_IM  0x80 /* invalid operation */
+
+/* dfp rounding control */
+#define _DFPU_RC_NEAREST            0        /* FE_DEC_TONEAREST */
+#define _DFPU_RC_ZERO              (1 << 4)  /* FE_DEC_TOWARDZERO */
+#define _DFPU_RC_UP                (2 << 4)  /* FE_DEC_UPWARD */
+#define _DFPU_RC_DOWN              (3 << 4)  /* FE_DEC_DOWNWARD */
+#define _DFPU_RC_NEARESTFROMZERO   (4 << 4)  /* FE_DEC_TONEARESTFROMZERO */
+#define _DFPU_RC_NEARESTTOZERO     (5 << 4)
+#define _DFPU_RC_AWAYFROMZERO      (6 << 4)
+#define _DFPU_RC_PREPFORSHORTPREC  (7 << 4)
+
+/* These bits are reserved are not changed.  */
+# define _FPU_RESERVED 0x0707001C
+
+/* The fdlibm code requires no interrupts for exceptions.  Don't
+   change the rounding mode, it would break long double I/O!  */
+#define _FPU_DEFAULT  0x00000000 /* Default value.  */
+
+/* Type of the control word.  */
+typedef unsigned int fpu_control_t;
+
+/* Macros for accessing the hardware control word.  */
+#define _FPU_GETCW(cw)  __asm__ volatile ("efpc %0,0" : "=d" (cw))
+#define _FPU_SETCW(cw)  __asm__ volatile ("sfpc  %0,0" : : "d" (cw))
+
+/* Default control word set at startup.  */
+extern fpu_control_t __fpu_control;
+
+#endif /* _FPU_CONTROL_H */

Added: branches/libdfp/libc/dfp/sysdeps/s390/dfpu/numdigits.h
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/s390/dfpu/numdigits.h (added)
+++ branches/libdfp/libc/dfp/sysdeps/s390/dfpu/numdigits.h Fri Aug 29 12:39:15 2008
@@ -1,0 +1,155 @@
+/* Number of digits functions, optimized for S/390 z9-ec.
+
+   Copyright (C) 2008 IBM Corporation.
+   Author(s): Andreas Krebbel  <Andreas.Krebbel@xxxxxxxxxx>
+
+   The Decimal Floating Point C Library is free software; you can
+   redistribute it and/or modify it under the terms of the GNU Lesser
+   General Public License version 2.1.
+
+   The Decimal Floating Point 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 version 2.1 for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License version 2.1 along with the Decimal Floating Point C Library;
+   if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+   Suite 330, Boston, MA 02111-1307 USA.
+
+   Please see dfp/COPYING.txt for more information.  */
+
+
+#ifndef _NUMDIGITS_H
+#define _NUMDIGITS_H 1
+
+
+#define NUMDIGITS_SUPPORT 1
+
+#include "dpd-private.h"
+
+#if _DECIMAL_SIZE == 32
+// DECIMAL32 gets widened to DECIMAL64, so it ought to use DECIMAL64 bias
+#  define DECIMAL_BIAS (101+297)
+#elif _DECIMAL_SIZE == 64
+#  define DECIMAL_BIAS 398
+#elif _DECIMAL_SIZE == 128
+#  define DECIMAL_BIAS 6176
+#endif
+
+
+static inline int
+getexp (DEC_TYPE x)
+{
+  int result;
+
+#if _DECIMAL_SIZE == 32
+  _Decimal64 tmp = (_Decimal64)x;
+#elif _DECIMAL_SIZE == 64
+  _Decimal64 tmp = x;
+#elif _DECIMAL_SIZE == 128
+  register _Decimal128 tmp asm ("f0") = x;
+#endif
+
+  asm (
+#if _DECIMAL_SIZE == 128
+  "eextr %0,%1"
+#else /* 32 and 64 bit */
+  "eedtr %0,%1"
+#endif
+  : "=d"(result) : "f"(tmp));
+
+  return result - DECIMAL_BIAS;
+}
+
+
+static inline DEC_TYPE
+setexp (DEC_TYPE x, int exp)
+{
+#if _DECIMAL_SIZE == 32
+  _Decimal64 tmp = (_Decimal64)x;
+#elif _DECIMAL_SIZE == 128
+  register DEC_TYPE tmp asm ("f0") = x;
+#else
+  DEC_TYPE tmp = x;
+#endif
+
+  asm (
+#if _DECIMAL_SIZE == 128
+    "iextr %0,%0,%1"
+#else
+    "iedtr %0,%0,%1"
+#endif
+    : "+f" (tmp) : "r" (exp + DECIMAL_BIAS));
+
+#if _DECIMAL_SIZE == 32
+  return (_Decimal32)tmp;
+#else
+  return tmp;
+#endif
+}
+
+
+static inline int
+numdigits (DEC_TYPE x)
+{
+  int result;
+
+#if _DECIMAL_SIZE == 128
+  register DEC_TYPE tmp asm ("f0") = x;
+#elif _DECIMAL_SIZE == 32
+  _Decimal64 tmp = (_Decimal64)x;
+#else
+  DEC_TYPE tmp = x;
+#endif
+
+  asm (
+#if _DECIMAL_SIZE == 128
+    "esxtr %0,%1"
+#else /* 32 and 64 bit */
+    "esdtr %0,%1"
+#endif
+   : "=d"(result) : "f"(tmp));
+
+  return result;
+}
+
+static DEC_TYPE
+left_justify (DEC_TYPE x)
+{
+#if _DECIMAL_SIZE == 128
+  register DEC_TYPE tmp asm ("f0") = x;
+  register DEC_TYPE rnd asm ("f4");
+#elif _DECIMAL_SIZE == 64
+  DEC_TYPE tmp = x;
+  DEC_TYPE rnd;
+#else
+  _Decimal64 tmp = (_Decimal64)x;
+  _Decimal64 rnd;
+#endif
+
+  int exp;
+
+  asm ("rrdtr %0,%2,%3,1\n\t"
+       "eedtr %1,%0\n\t"
+       /* The following magic numbers result from the precision of the
+		   data type minus 1.  */
+#if _DECIMAL_SIZE == 32
+       "ahi %1,-6\n\t"
+#elif _DECIMAL_SIZE == 64
+       "ahi %1,-15\n\t"
+#else /* _DECIMAL_SIZE == 128 */
+       "ahi %1,-33\n\t"
+#endif
+       "iedtr %0,%0,%1\n\t"
+       "qadtr %0,%2,%0,1" : "=f"(rnd), "=d"(exp), "+f"(tmp) : "d"(1));
+
+#if _DECIMAL_SIZE == 32
+  return (_Decimal32)rnd;
+#else
+  return rnd;
+#endif
+}
+
+
+#endif /* _NUMDIGITS_H */

Added: branches/libdfp/libc/dfp/sysdeps/s390/fpu/Makefile
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/s390/fpu/Makefile (added)
+++ branches/libdfp/libc/dfp/sysdeps/s390/fpu/Makefile Fri Aug 29 12:39:15 2008
@@ -1,0 +1,3 @@
+ifeq ($(subdir),dfp)
+  libdfp-routines += fclrexcpt ftestexcept fraiseexcpt
+endif

Added: branches/libdfp/libc/dfp/sysdeps/s390/fpu/fclrexcpt.c
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/s390/fpu/fclrexcpt.c (added)
+++ branches/libdfp/libc/dfp/sysdeps/s390/fpu/fclrexcpt.c Fri Aug 29 12:39:15 2008
@@ -1,0 +1,43 @@
+/* Clear given exceptions in current floating-point environment.
+   Copyright (C) 2000, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* This file is a duplicate of the binary floating point version at
+   sysdeps/s390/fpu/fclrexcpt.c .  */
+
+#include <fenv_libc.h>
+#include <fpu_control.h>
+
+int
+feclearexcept (int excepts)
+{
+  fexcept_t temp;
+
+  /* Mask out unsupported bits/exceptions.  */
+  excepts &= FE_ALL_EXCEPT;
+
+  _FPU_GETCW (temp);
+  /* Clear the relevant bits.  */
+  temp &= ~((excepts << FPC_DXC_SHIFT)|(excepts << FPC_FLAGS_SHIFT));
+
+  /* Put the new data in effect.  */
+  _FPU_SETCW (temp);
+
+  /* Success.  */
+  return 0;
+}

Added: branches/libdfp/libc/dfp/sysdeps/s390/fpu/fraiseexcpt.c
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/s390/fpu/fraiseexcpt.c (added)
+++ branches/libdfp/libc/dfp/sysdeps/s390/fpu/fraiseexcpt.c Fri Aug 29 12:39:15 2008
@@ -1,0 +1,75 @@
+/* Raise given exceptions.
+   Copyright (C) 2000, 2002, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Denis Joseph Barrow (djbarrow@xxxxxxxxxx) and
+   Martin Schwidefsky (schwidefsky@xxxxxxxxxx).
+
+   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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* This file is a duplicate of the binary floating point version at
+   sysdeps/s390/fpu/fraiseexcpt.c .  */
+
+#include <fenv_libc.h>
+#include <float.h>
+#include <math.h>
+
+
+static __inline__ void
+fexceptdiv (float d, float e)
+{
+  __asm__ __volatile__ ("debr %0,%1" : : "f" (d), "f" (e) );
+}
+
+static __inline__ void
+fexceptadd (float d, float e)
+{
+  __asm__ __volatile__ ("aebr %0,%1" : : "f" (d), "f" (e) );
+}
+
+
+int
+feraiseexcept (int excepts)
+{
+  /* Raise exceptions represented by EXPECTS.  But we must raise only
+     one signal at a time.  It is important that if the overflow/underflow
+     exception and the inexact exception are given at the same time,
+     the overflow/underflow exception follows the inexact exception.  */
+
+  /* First: invalid exception.  */
+  if (FE_INVALID & excepts)
+    fexceptdiv (0.0, 0.0);
+
+  /* Next: division by zero.  */
+  if (FE_DIVBYZERO & excepts)
+    fexceptdiv (1.0, 0.0);
+
+  /* Next: overflow.  */
+  if (FE_OVERFLOW & excepts)
+    /* I don't think we can do the same trick as intel so we will have
+       to live with inexact coming also.  */
+    fexceptadd (FLT_MAX, 1.0e32);
+
+  /* Next: underflow.  */
+  if (FE_UNDERFLOW & excepts)
+    fexceptdiv (FLT_MIN, 3.0);
+
+  /* Last: inexact.  */
+  if (FE_INEXACT & excepts)
+    fexceptdiv (2.0, 3.0);
+
+  /* Success.  */
+  return 0;
+}

Added: branches/libdfp/libc/dfp/sysdeps/s390/fpu/ftestexcept.c
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/s390/fpu/ftestexcept.c (added)
+++ branches/libdfp/libc/dfp/sysdeps/s390/fpu/ftestexcept.c Fri Aug 29 12:39:15 2008
@@ -1,0 +1,36 @@
+/* Test exception in current environment.
+   Copyright (C) 2000, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Denis Joseph Barrow (djbarrow@xxxxxxxxxx).
+
+   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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* This file is a duplicate of the binary floating point version at
+   sysdeps/s390/fpu/ftestexcept.c .  */
+
+#include <fenv_libc.h>
+#include <fpu_control.h>
+
+int
+fetestexcept (int excepts)
+{
+  fexcept_t temp;
+
+  /* Get current exceptions.  */
+  _FPU_GETCW (temp);
+  temp = (temp >> FPC_DXC_SHIFT) | (temp >> FPC_FLAGS_SHIFT);
+  return temp & excepts & FE_ALL_EXCEPT;
+}

Added: branches/libdfp/libc/dfp/sysdeps/s390/s390-64/z9-ec/fpu/Implies
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/s390/s390-64/z9-ec/fpu/Implies (added)
+++ branches/libdfp/libc/dfp/sysdeps/s390/s390-64/z9-ec/fpu/Implies Fri Aug 29 12:39:15 2008
@@ -1,0 +1,1 @@
+ieee754r/base-math/

Added: branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/Implies
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/Implies (added)
+++ branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/Implies Fri Aug 29 12:39:15 2008
@@ -1,0 +1,1 @@
+dfp/dpd

Added: branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/Implies
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/Implies (added)
+++ branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/Implies Fri Aug 29 12:39:15 2008
@@ -1,0 +1,1 @@
+s390/dfpu

Added: branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/fpu/Implies
==============================================================================
--- branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/fpu/Implies (added)
+++ branches/libdfp/libc/dfp/sysdeps/unix/sysv/linux/s390/s390-64/z9-ec/fpu/Implies Fri Aug 29 12:39:15 2008
@@ -1,0 +1,1 @@
+s390/s390-64/z9-ec/fpu