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

[patches] DFP branch: libgcc hardware functions



Hello,

the attached patch introduces a set of C files which can be used to
build hardware specific acceleration routines for DFP libgcc symbols.

Bye,

-Andreas-


2008-08-15  Andreas Krebbel  <krebbel1@xxxxxxxxxx>

	* dfp/sysdeps/dfp/libgcc-routines/Makefile: New file.
	* dfp/sysdeps/dfp/libgcc-routines/Versions: New file.
	* dfp/sysdeps/dfp/libgcc-routines/adddd3.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/addtd3.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/divdd3.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/divtd3.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/eqdd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/eqtd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/extendddtd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/fixdddi.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/fixddsi.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/fixtddi.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/fixtdsi.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/fixunsdddi.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/fixunsddsi.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/fixunstddi.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/fixunstdsi.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/floatdidd.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/floatditd.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/floatsidd.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/floatsitd.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/floatunsdidd.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/floatunsditd.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/floatunssidd.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/floatunssitd.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/gedd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/getd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/gtdd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/gttd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/ledd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/letd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/ltdd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/lttd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/muldd3.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/multd3.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/nedd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/netd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/subdd3.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/subtd3.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/trunctddd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/unorddd2.c: New file.
	* dfp/sysdeps/dfp/libgcc-routines/unordtd2.c: New file.


Index: dfp/sysdeps/dfp/libgcc-routines/adddd3.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/adddd3.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __adddd3 (_Decimal64 x, _Decimal64 y)
+ {
+   return x + y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/addtd3.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/addtd3.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __addtd3 (_Decimal128 x, _Decimal128 y)
+ {
+   return x + y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/divdd3.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/divdd3.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __divdd3 (_Decimal64 x, _Decimal64 y)
+ {
+   return x / y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/divtd3.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/divtd3.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __divtd3 (_Decimal128 x, _Decimal128 y)
+ {
+   return x / y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/eqdd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/eqdd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __eqdd2 (_Decimal64 x, _Decimal64 y)
+ {
+   return x == y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/eqtd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/eqtd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __eqtd2 (_Decimal128 x, _Decimal128 y)
+ {
+   return x == y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/extendddtd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/extendddtd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __extendddtd2 (_Decimal64 x)
+ {
+   return (_Decimal128)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/fixdddi.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/fixdddi.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __fixdddi (_Decimal64 x)
+ {
+   return (long)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/fixddsi.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/fixddsi.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __fixddsi (_Decimal64 x)
+ {
+   return (int)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/fixtddi.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/fixtddi.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __fixtddi (_Decimal128 x)
+ {
+   return (long)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/fixtdsi.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/fixtdsi.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __fixtdsi (_Decimal128 x)
+ {
+   return (int)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/fixunsdddi.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/fixunsdddi.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __fixunsdddi (_Decimal64 x)
+ {
+   return (unsigned long)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/fixunsddsi.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/fixunsddsi.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __fixunsddsi (_Decimal64 x)
+ {
+   return (unsigned int)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/fixunstddi.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/fixunstddi.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __fixunstddi (_Decimal128 x)
+ {
+   return (unsigned long)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/fixunstdsi.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/fixunstdsi.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __fixunstdsi (_Decimal128 x)
+ {
+   return (unsigned int)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/floatdidd.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/floatdidd.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __floatdidd (long x)
+ {
+   return (_Decimal64)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/floatditd.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/floatditd.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __floatditd (long x)
+ {
+   return (_Decimal128)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/floatsidd.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/floatsidd.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __floatsidd (int x)
+ {
+   return (_Decimal64)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/floatsitd.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/floatsitd.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __floatsitd (int x)
+ {
+   return (_Decimal128)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/floatunsdidd.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/floatunsdidd.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __floatunsdidd (unsigned long x)
+ {
+   return (_Decimal64)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/floatunsditd.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/floatunsditd.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __floatunsditd (unsigned long x)
+ {
+   return (_Decimal128)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/floatunssidd.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/floatunssidd.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __floatunssidd (unsigned int x)
+ {
+   return (_Decimal64)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/floatunssitd.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/floatunssitd.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __floatunssitd (unsigned int x)
+ {
+   return (_Decimal128)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/gedd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/gedd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __gedd2 (_Decimal64 x, _Decimal64 y)
+ {
+   return x >= y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/getd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/getd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __getd2 (_Decimal128 x, _Decimal128 y)
+ {
+   return x >= y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/gtdd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/gtdd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __gtdd2 (_Decimal64 x, _Decimal64 y)
+ {
+   return x > y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/gttd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/gttd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __gttd2 (_Decimal128 x, _Decimal128 y)
+ {
+   return x > y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/ledd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/ledd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __ledd2 (_Decimal64 x, _Decimal64 y)
+ {
+   return x <= y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/letd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/letd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __letd2 (_Decimal128 x, _Decimal128 y)
+ {
+   return x <= y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/ltdd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/ltdd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __ltdd2 (_Decimal64 x, _Decimal64 y)
+ {
+   return x < y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/lttd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/lttd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __lttd3 (_Decimal128 x, _Decimal128 y)
+ {
+   return x < y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/Makefile
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/Makefile	2008-08-15 17:52:01.000000000 +0200
***************
*** 0 ****
--- 1,44 ----
+ ifeq ($(subdir),dfp)
+   libdfp-routines += \
+     adddd3 \
+     addtd3 \
+     divdd3 \
+     divtd3 \
+     eqdd2 \
+     eqtd2 \
+     extendddtd2 \
+     fixdddi \
+     fixddsi \
+     fixtddi \
+     fixtdsi \
+     fixunsdddi \
+     fixunsddsi \
+     fixunstddi \
+     fixunstdsi \
+     floatdidd \
+     floatditd \
+     floatsidd \
+     floatsitd \
+     floatunsdidd \
+     floatunsditd \
+     floatunssidd \
+     floatunssitd \
+     gedd2 \
+     getd2 \
+     gtdd2 \
+     gttd2 \
+     ledd2 \
+     letd2 \
+     ltdd2 \
+     lttd2 \
+     muldd3 \
+     multd3 \
+     nedd2 \
+     netd2 \
+     subdd3 \
+     subtd3 \
+     trunctddd2 \
+     unorddd2 \
+     unordtd2 \
+     fe_decround
+ endif
Index: dfp/sysdeps/dfp/libgcc-routines/muldd3.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/muldd3.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __muldd3 (_Decimal64 x, _Decimal64 y)
+ {
+   return x * y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/multd3.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/multd3.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __multd3 (_Decimal128 x, _Decimal128 y)
+ {
+   return x * y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/nedd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/nedd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __nedd2 (_Decimal64 x, _Decimal64 y)
+ {
+   return x != y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/netd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/netd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __netd2 (_Decimal128 x, _Decimal128 y)
+ {
+   return x != y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/subdd3.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/subdd3.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __subdd3 (_Decimal64 x, _Decimal64 y)
+ {
+   return x - y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/subtd3.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/subtd3.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __subtd3 (_Decimal128 x, _Decimal128 y)
+ {
+   return x - y;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/trunctddd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/trunctddd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __trunctddd2 (_Decimal128 x)
+ {
+   return (_Decimal64)x;
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/unorddd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/unorddd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __unorddd2 (_Decimal64 x, _Decimal64 y)
+ {
+   return isnan (x) || isnan (y);
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/unordtd2.c
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/unordtd2.c	2008-08-15 17:51:34.000000000 +0200
***************
*** 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
+ __unordtd2 (_Decimal128 x, _Decimal128 y)
+ {
+   return isnan (x) || isnan (y);
+ }
Index: dfp/sysdeps/dfp/libgcc-routines/Versions
===================================================================
*** /dev/null	1970-01-01 00:00:00.000000000 +0000
--- dfp/sysdeps/dfp/libgcc-routines/Versions	2008-08-15 17:51:34.000000000 +0200
***************
*** 0 ****
--- 1,46 ----
+ libdfp {
+   GLIBC_2.7 {
+     __adddd3;
+     __addtd3;
+     __divdd3;
+     __divtd3;
+     __eqdd2;
+     __eqtd2;
+     __extendddtd2;
+     __fixdddi;
+     __fixddsi;
+     __fixtddi;
+     __fixtdsi;
+     __fixunsdddi;
+     __fixunsddsi;
+     __fixunstddi;
+     __fixunstdsi;
+     __floatdidd;
+     __floatditd;
+     __floatsidd;
+     __floatsitd;
+     __floatunsdidd;
+     __floatunsditd;
+     __floatunssidd;
+     __floatunssitd;
+     __gedd2;
+     __getd2;
+     __gtdd2;
+     __gttd2;
+     __ledd2;
+     __letd2;
+     __ltdd2;
+     __lttd2;
+     __muldd3;
+     __multd3;
+     __nedd2;
+     __netd2;
+     __subdd3;
+     __subtd3;
+     __trunctddd2;
+     __unorddd2;
+     __unordtd2;
+     fe_dec_getround;
+     fe_dec_setround;
+   }
+ }