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

[patches] DFP branch: libgcc override functions



Hello,

this is a re-post of the patch adding the base-math directory to dfp/sysdeps/ieee754r/. The directory contains C functions which are intended to be compiled using GCC hardware DFP support. In order to use these functions put an "Implies" file into a directory which only gets compiled if eglibc is configured with --with-cpu=xx for a CPU which provides hardware DFP support.

My first posting of this patch didn't make it to the mailing list. I assume that there is a length limit for the mail body?! So I attach the patch file this time.

Bye,

-Andreas-


Index: dfp/sysdeps/ieee754r/base-math/dpd-adddd3.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-adddd3.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_adddd3 (_Decimal64 x, _Decimal64 y)
+{
+  return x + y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-addtd3.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-addtd3.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_addtd3 (_Decimal128 x, _Decimal128 y)
+{
+  return x + y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-divdd3.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-divdd3.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_divdd3 (_Decimal64 x, _Decimal64 y)
+{
+  return x / y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-divtd3.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-divtd3.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_divtd3 (_Decimal128 x, _Decimal128 y)
+{
+  return x / y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-eqdd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-eqdd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_eqdd2 (_Decimal64 x, _Decimal64 y)
+{
+  return x == y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-eqtd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-eqtd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_eqtd2 (_Decimal128 x, _Decimal128 y)
+{
+  return x == y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-extendddtd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-extendddtd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_extendddtd2 (_Decimal64 x)
+{
+  return (_Decimal128)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-fixdddi.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-fixdddi.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+long
+__dpd_fixdddi (_Decimal64 x)
+{
+  return (long)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-fixddsi.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-fixddsi.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_fixddsi (_Decimal64 x)
+{
+  return (int)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-fixtddi.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-fixtddi.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+long
+__dpd_fixtddi (_Decimal128 x)
+{
+  return (long)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-fixtdsi.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-fixtdsi.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_fixtdsi (_Decimal128 x)
+{
+  return (int)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-fixunsdddi.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-fixunsdddi.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+unsigned long
+__dpd_fixunsdddi (_Decimal64 x)
+{
+  return (unsigned long)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-fixunsddsi.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-fixunsddsi.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+unsigned int
+__dpd_fixunsddsi (_Decimal64 x)
+{
+  return (unsigned int)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-fixunstddi.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-fixunstddi.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+unsigned long
+__dpd_fixunstddi (_Decimal128 x)
+{
+  return (unsigned long)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-fixunstdsi.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-fixunstdsi.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+unsigned int
+__dpd_fixunstdsi (_Decimal128 x)
+{
+  return (unsigned int)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-floatdidd.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-floatdidd.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_floatdidd (long x)
+{
+  return (_Decimal64)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-floatditd.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-floatditd.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_floatditd (long x)
+{
+  return (_Decimal128)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-floatsidd.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-floatsidd.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_floatsidd (int x)
+{
+  return (_Decimal64)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-floatsitd.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-floatsitd.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_floatsitd (int x)
+{
+  return (_Decimal128)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-floatunsdidd.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-floatunsdidd.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_floatunsdidd (unsigned long x)
+{
+  return (_Decimal64)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-floatunsditd.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-floatunsditd.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_floatunsditd (unsigned long x)
+{
+  return (_Decimal128)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-floatunssidd.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-floatunssidd.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_floatunssidd (unsigned int x)
+{
+  return (_Decimal64)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-floatunssitd.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-floatunssitd.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_floatunssitd (unsigned int x)
+{
+  return (_Decimal128)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-gedd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-gedd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_gedd2 (_Decimal64 x, _Decimal64 y)
+{
+  return x >= y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-getd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-getd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_getd2 (_Decimal128 x, _Decimal128 y)
+{
+  return x >= y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-gtdd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-gtdd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_gtdd2 (_Decimal64 x, _Decimal64 y)
+{
+  return x > y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-gttd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-gttd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_gttd2 (_Decimal128 x, _Decimal128 y)
+{
+  return x > y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-ledd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-ledd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_ledd2 (_Decimal64 x, _Decimal64 y)
+{
+  return x <= y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-letd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-letd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_letd2 (_Decimal128 x, _Decimal128 y)
+{
+  return x <= y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-ltdd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-ltdd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_ltdd2 (_Decimal64 x, _Decimal64 y)
+{
+  return x < y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-lttd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-lttd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_lttd3 (_Decimal128 x, _Decimal128 y)
+{
+  return x < y;
+}
Index: dfp/sysdeps/ieee754r/base-math/Makefile
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/Makefile	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,43 @@
+ifeq ($(subdir),dfp)
+  libdfp-routines += \
+    dpd-adddd3 \
+    dpd-addtd3 \
+    dpd-divdd3 \
+    dpd-divtd3 \
+    dpd-eqdd2 \
+    dpd-eqtd2 \
+    dpd-extendddtd2 \
+    dpd-fixdddi \
+    dpd-fixddsi \
+    dpd-fixtddi \
+    dpd-fixtdsi \
+    dpd-fixunsdddi \
+    dpd-fixunsddsi \
+    dpd-fixunstddi \
+    dpd-fixunstdsi \
+    dpd-floatdidd \
+    dpd-floatditd \
+    dpd-floatsidd \
+    dpd-floatsitd \
+    dpd-floatunsdidd \
+    dpd-floatunsditd \
+    dpd-floatunssidd \
+    dpd-floatunssitd \
+    dpd-gedd2 \
+    dpd-getd2 \
+    dpd-gtdd2 \
+    dpd-gttd2 \
+    dpd-ledd2 \
+    dpd-letd2 \
+    dpd-ltdd2 \
+    dpd-lttd2 \
+    dpd-muldd3 \
+    dpd-multd3 \
+    dpd-nedd2 \
+    dpd-netd2 \
+    dpd-subdd3 \
+    dpd-subtd3 \
+    dpd-trunctddd2 \
+    dpd-unorddd2 \
+    dpd-unordtd2
+endif
Index: dfp/sysdeps/ieee754r/base-math/dpd-muldd3.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-muldd3.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_muldd3 (_Decimal64 x, _Decimal64 y)
+{
+  return x * y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-multd3.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-multd3.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_multd3 (_Decimal128 x, _Decimal128 y)
+{
+  return x * y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-nedd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-nedd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_nedd2 (_Decimal64 x, _Decimal64 y)
+{
+  return x != y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-netd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-netd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+int
+__dpd_netd2 (_Decimal128 x, _Decimal128 y)
+{
+  return x != y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-subdd3.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-subdd3.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_subdd3 (_Decimal64 x, _Decimal64 y)
+{
+  return x - y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-subtd3.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-subtd3.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_subtd3 (_Decimal128 x, _Decimal128 y)
+{
+  return x - y;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-trunctddd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-trunctddd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_trunctddd2 (_Decimal128 x)
+{
+  return (_Decimal64)x;
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-unorddd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-unorddd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal64
+__dpd_unorddd2 (_Decimal64 x, _Decimal64 y)
+{
+  return isnan (x) || isnan (y);
+}
Index: dfp/sysdeps/ieee754r/base-math/dpd-unordtd2.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/dpd-unordtd2.c	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,27 @@
+/* Decimal Floating Point function intended to override the libgcc version.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+   Contributed 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., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+_Decimal128
+__dpd_unordtd2 (_Decimal128 x, _Decimal128 y)
+{
+  return isnan (x) || isnan (y);
+}
Index: dfp/sysdeps/ieee754r/base-math/Versions
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/Versions	2008-08-28 15:25:25.000000000 +0200
@@ -0,0 +1,44 @@
+libdfp {
+  GLIBC_2.7 {
+    __dpd_adddd3;
+    __dpd_addtd3;
+    __dpd_divdd3;
+    __dpd_divtd3;
+    __dpd_eqdd2;
+    __dpd_eqtd2;
+    __dpd_extendddtd2;
+    __dpd_fixdddi;
+    __dpd_fixddsi;
+    __dpd_fixtddi;
+    __dpd_fixtdsi;
+    __dpd_fixunsdddi;
+    __dpd_fixunsddsi;
+    __dpd_fixunstddi;
+    __dpd_fixunstdsi;
+    __dpd_floatdidd;
+    __dpd_floatditd;
+    __dpd_floatsidd;
+    __dpd_floatsitd;
+    __dpd_floatunsdidd;
+    __dpd_floatunsditd;
+    __dpd_floatunssidd;
+    __dpd_floatunssitd;
+    __dpd_gedd2;
+    __dpd_getd2;
+    __dpd_gtdd2;
+    __dpd_gttd2;
+    __dpd_ledd2;
+    __dpd_letd2;
+    __dpd_ltdd2;
+    __dpd_lttd2;
+    __dpd_muldd3;
+    __dpd_multd3;
+    __dpd_nedd2;
+    __dpd_netd2;
+    __dpd_subdd3;
+    __dpd_subtd3;
+    __dpd_trunctddd2;
+    __dpd_unorddd2;
+    __dpd_unordtd2;
+  }
+}
Index: dfp/sysdeps/ieee754r/base-math/README
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/ieee754r/base-math/README	2008-08-28 15:25:52.000000000 +0200
@@ -0,0 +1,3 @@
+These functions match what is implemented as part of libgcc for DFP.
+They are intended to be compiled with DFP hardware support in order to
+override the software DFP libgcc.a symbols.