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

[patches] DFP branch: Add __dpd_ prefix to power/fpu files



Hello,

the attached patch adds the __dpd_ prefix to the assembler files in the
dfp/sysdeps/powerpc/powerpc64/power6/fpu/ directory. Also the filenames
now are prefixed with dpd-.

I've generated the patch using a shell script and I was not able to test
it but it should do the job.

Please test on Power platform and apply to DFP branch if you think it's ok.

Bye,

-Andreas-



Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/adddd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/adddd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point 64-bit add.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal64 __adddd3 (__decimal64 x, __decimal64 y)  */
-ENTRY (__adddd3)
-	dadd	fp1,fp1,fp2
-	blr
-	END (__adddd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/addsd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/addsd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Decimal Floating Point 32-bit add.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal32 __addsd3 (__decimal32 x, __decimal32 y)  */
-ENTRY (__addsd3)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dadd	fp1,fp1,fp2
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__addsd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/addtd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/addtd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point 128-bit add.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal128 __addtd3 (__decimal128 x, __decimal128 y)  */
-ENTRY (__addtd3)
-	daddq	fp2,fp2,fp4
-	blr
-	END (__addtd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/divdd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/divdd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point 64-bit divide.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal64 __divdd3 (__decimal64 x, __decimal64 y)  */
-ENTRY (__divdd3)
-	ddiv	fp1,fp1,fp2
-	blr
-	END (__divdd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/divsd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/divsd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Decimal Floating Point 32-bit divide.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal32 __divsd3 (__decimal32 x, __decimal32 y)  */
-ENTRY (__divsd3)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	ddiv	fp1,fp1,fp2
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__divsd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/divtd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/divtd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point 128-bit divide.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal128 __divtd3 (__decimal128 x, __decimal128 y)  */
-ENTRY (__divtd3)
-	ddivq	fp2,fp2,fp4
-	blr
-	END (__divtd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-adddd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-adddd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point 64-bit add.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal64 __dpd_adddd3 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_adddd3)
+	dadd	fp1,fp1,fp2
+	blr
+	END (__dpd_adddd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-addsd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-addsd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Decimal Floating Point 32-bit add.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal32 __dpd_addsd3 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_addsd3)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dadd	fp1,fp1,fp2
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_addsd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-addtd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-addtd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point 128-bit add.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal128 __dpd_addtd3 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_addtd3)
+	daddq	fp2,fp2,fp4
+	blr
+	END (__dpd_addtd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-divdd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-divdd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point 64-bit divide.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal64 __dpd_divdd3 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_divdd3)
+	ddiv	fp1,fp1,fp2
+	blr
+	END (__dpd_divdd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-divsd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-divsd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Decimal Floating Point 32-bit divide.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal32 __dpd_divsd3 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_divsd3)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	ddiv	fp1,fp1,fp2
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_divsd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-divtd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-divtd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point 128-bit divide.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal128 __dpd_divtd3 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_divtd3)
+	ddivq	fp2,fp2,fp4
+	blr
+	END (__dpd_divtd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-eqdd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-eqdd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Decimal Floating Point 64-bit compare equal.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_eqdd2 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_eqdd2)
+	dcmpu	cr0,fp1,fp2 	/* if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_eqdd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-eqsd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-eqsd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Decimal Floating Point 32-bit compare equal.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_eqsd2 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_eqsd2)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dcmpu	cr0,fp1,fp2 	/* if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_eqsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-eqtd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-eqtd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Decimal Floating Point 128-bit compare equal.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_eqtd2 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_eqtd2)
+	dcmpuq	cr0,fp2,fp4 	/* if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_eqtd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-extendddtd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-extendddtd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point extend 64-bit to 128-bit.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal128 __dpd_extendddtd2 (__decimal64 x)  */
+ENTRY (__dpd_extendddtd2)
+	dctqpq	fp2,fp1	/* Convert x to __decimal128. */
+	blr
+	END (__dpd_extendddtd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-extendsddd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-extendsddd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point extend 32-bit to 64-bit.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal64 __dpd_extendsddd2 (__decimal32 x)  */
+ENTRY (__dpd_extendsddd2)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	blr
+	END (__dpd_extendsddd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-extendsdtd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-extendsdtd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,29 @@
+/* Decimal Floating Point extend 32-bit to 128-bit.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal128 __dpd_extendsdtd2 (__decimal32 x)  */
+ENTRY (__dpd_extendsdtd2)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctqpq	fp2,fp1	/* Convert x to __decimal128. */
+	blr
+	END (__dpd_extendsdtd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixdddi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixdddi.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,32 @@
+/* Decimal Floating Point convert 64-bit to long.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* long __dpd_fixdddi (__decimal64 x)  */
+ENTRY (__dpd_fixdddi)
+	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
+	dctfix	fp0,fp1 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	ld	r3,-8(r1)
+	blr
+	END (__dpd_fixdddi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixddsi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixddsi.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,51 @@
+/* Decimal Floating Point convert 64-bit to int.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_fixddsi (__decimal64 x)  */
+ENTRY (__dpd_fixddsi)
+	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
+	dctfix	fp0,fp1 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	oris	r4,0,0x8000 /* 0x0000000080000000  */
+	lis	r5,0x8000 /* 0xffffffff80000000  */
+	ld	r3,-8(r1)
+/* The return is an int, but we have long long, so we need to force overflow
+   if there are any significant bits in the high word or overflow (incorrect
+   sign) from the low word.  */
+
+	cmpd	cr0,r3,r4
+	cmpd	cr7,r3,r5
+	cmpdi	cr6,r3,0
+	blt	cr1,L(negative)
+	bltlr	cr0
+L(posoverflow):
+	addi	r3,r4,-1	/* return max positive int.  */
+	blr
+L(negative):		/* If (result >= min negative int */
+	bgelr	cr7	/* return result */
+L(negoverflow):		/* else */
+	mr	r3,r5	/* return min negative int.  */
+	blr
+	END (__dpd_fixddsi)
+
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixsddi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixsddi.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,34 @@
+/* Decimal Floating Point convert 32-bit to long.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* long __dpd_fixsddi (__decimal32 x)  */
+ENTRY (__dpd_fixsddi)
+	dctdp	fp1,fp1	/* Convert x to __decimal64.  */
+	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
+	dctfix	fp0,fp1 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	ld	r3,-8(r1)
+	blr
+	END (__dpd_fixsddi)
+
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixsdsi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixsdsi.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,51 @@
+/* Decimal Floating Point convert 32-bit to int.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_fixsdsi (__decimal32 x)  */
+ENTRY (__dpd_fixsdsi)
+	dctdp	fp1,fp1	/* Convert x to __decimal64.  */
+	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
+	dctfix	fp0,fp1 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	oris	r4,0,0x8000 /* 0x0000000080000000  */
+	lis	r5,0x8000 /* 0xffffffff80000000  */
+	ld	r3,-8(r1)
+/* The return is an int, but we have long long, so we need to force overflow
+   if there are any significant bits in the high word or overflow (incorrect
+   sign) from the low word.  */
+
+	cmpd	cr0,r3,r4
+	cmpd	cr7,r3,r5
+	cmpdi	cr6,r3,0
+	blt	cr1,L(negative)
+	bltlr	cr0
+L(posoverflow):
+	addi	r3,r4,-1	/* return max positive int.  */
+	blr
+L(negative):		/* If (result >= min negative int */
+	bgelr	cr7	/* return result */
+L(negoverflow):		/* else */
+	mr	r3,r5	/* return min negative int.  */
+	blr
+	END (__dpd_fixsdsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixtddi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixtddi.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,32 @@
+/* Decimal Floating Point convert 128-bit to long.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* long __dpd_fixtddi (__decimal28 x)  */
+ENTRY (__dpd_fixtddi)
+	drintnq. 0,fp2,fp2,1	/* Preround to toward zero.  */
+	dctfixq fp0,fp2 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	ld	r3,-8(r1)
+	blr
+	END (__dpd_fixtddi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixtdsi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixtdsi.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,50 @@
+/* Decimal Floating Point convert 128-bit to int.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_fixtdsi (__decimal28 x)  */
+ENTRY (__dpd_fixtdsi)
+	drintnq. 0,fp2,fp2,1	/* Preround to toward zero.  */
+	dctfixq fp0,fp2 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	oris	r4,0,0x8000 /* 0x0000000080000000  */
+	lis	r5,0x8000 /* 0xffffffff80000000  */
+	ld	r3,-8(r1)
+/* The return is an int, but we have long long, so we need to force overflow
+   if there are any significant bits in the high word or overflow (incorrect
+   sign) from the low word.  */
+
+	cmpd	cr0,r3,r4
+	cmpd	cr7,r3,r5
+	cmpdi	cr6,r3,0
+	blt	cr1,L(negative)
+	bltlr	cr0
+L(posoverflow):
+	addi	r3,r4,-1	/* return max positive int.  */
+	blr
+L(negative):		/* If (result >= min negative int */
+	bgelr	cr7	/* return result */
+L(negoverflow):		/* else */
+	mr	r3,r5	/* return min negative int.  */
+	blr
+	END (__dpd_fixtdsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunsdddi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunsdddi.S	2008-08-28 17:31:48.000000000 +0200
@@ -0,0 +1,57 @@
+/* Decimal Floating Point convert 64-bit to unsigned long.  P6 PPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.section	".toc","aw"
+.LC1:	/* 9223372036854775808.0DD */
+	.tc FD_6e45237c_836973f6[TC],0x6e45237c836973f6
+.LC2:	/* 18446744073709551616.0DD */
+	.tc FD_264a4cdd_2077c2dd[TC],0x264a4cdd2077c2dd
+	.section	".text"
+
+	.machine	"power6"
+/* unsigned long __dpd_fixunsdddi (__decimal64 x)  */
+ENTRY (__dpd_fixunsdddi)
+	lfd	fp10,.LC1@toc(2)
+	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
+	dcmpu	cr0,fp1,fp10	/* check if > 2**63-1 */
+	blt	cr1,L(negative)
+	lfd	fp11,.LC2@toc(2)
+	blt	cr0,L(poslong)
+/* The return is an unsigned long, but "DFP convert to fixed" takes
+   signed long, so we need to pre-adjust (-18446744073709551616.0DD)
+   to get the final (signed) conversion result to be the correct
+   unsigned result.  */
+	dsub	fp1,fp1,fp11
+	dcmpu	cr0,fp1,fp10	/* if x still > 2**63-1 */
+	li	r3,-1		/* return max_unsigned_long */
+	bgelr	cr0		/* else */
+L(poslong):
+	dctfix	fp0,fp1 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	ld	r3,-8(r1)
+	blr
+L(negative):
+	li	r3,0	/* return 0 for negative floats.  */
+	blr
+	END (__dpd_fixunsdddi)
+
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunsddsi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunsddsi.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,45 @@
+/* Decimal Floating Point convert 64-bit to unsigned int.  P6 PPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* unsigned int __dpd_fixunsddsi (__decimal64 x)  */
+ENTRY (__dpd_fixunsddsi)
+	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
+	dctfix	fp0,fp1 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	oris	r4,0,0xffff /* 0x00000000ffff0000  */
+	ori	r4,r4,0xffff /* 0x00000000ffffffff  */
+	ld	r3,-8(r1)
+/* The return is an unsigned int, but we have long long, so we need to force
+   overflow if there are any significant bits in the high word or return
+   zero if negative.  */
+	cmpld	cr6,r3,r4
+	blt	cr1,L(negative)
+	blelr	cr6
+L(posoverflow):
+	mr	r3,r4	/* return max unsigned int.  */
+	blr
+L(negative):
+	li	r3,0	/* return 0 for negative floats.  */
+	blr
+	END (__dpd_fixunsddsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunssddi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunssddi.S	2008-08-28 17:31:59.000000000 +0200
@@ -0,0 +1,59 @@
+/* Decimal Floating Point convert 32-bit to unsigned long.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.section	".toc","aw"
+.LC1:	/* 9223372036854775808.0DD */
+	.tc FD_6e45237c_836973f6[TC],0x6e45237c836973f6
+.LC2:	/* 18446744073709551616.0DD */
+	.tc FD_264a4cdd_2077c2dd[TC],0x264a4cdd2077c2dd
+	.section	".text"
+
+	.machine	"power6"
+/* unsigned long __dpd_fixunssddi (__decimal32 x)  */
+ENTRY (__dpd_fixunssddi)
+	dctdp	fp1,fp1	/* Convert x to __decimal64.  */
+	lfd	fp10,.LC1@toc(2)
+	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
+	dcmpu	cr0,fp1,fp10	/* check if > 2**63-1 */
+	blt	cr1,L(negative)
+	lfd	fp11,.LC1@toc(2)
+	blt	cr0,L(poslong)
+/* The return is an unsigned long, but "DFP convert to fixed" takes
+   signed long, so we need to pre-adjust (-18446744073709551616.0DD)
+   to get the final (signed) conversion result to be the correct
+   unsigned result.  */
+	dsub	fp1,fp1,fp11
+	dcmpu	cr0,fp1,fp10	/* if x still > 2**63-1 */
+	li	r3,-1		/* return max_unsigned_long */
+	bgelr	cr0		/* else */
+L(poslong):
+	dctfix	fp0,fp1 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	ld	r3,-8(r1)
+	blr
+L(negative):
+	li	r3,0	/* return 0 for negative floats.  */
+	blr
+	END (__dpd_fixunssddi)
+
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunssdsi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunssdsi.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,47 @@
+/* Decimal Floating Point convert 32-bit to unsigned int.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* unsigned int __dpd_fixunssdsi (__decimal32 x)  */
+ENTRY (__dpd_fixunssdsi)
+	dctdp	fp1,fp1	/* Convert x to __decimal64.  */
+	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
+	dctfix	fp0,fp1 /* Convert x to integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	oris	r4,0,0xffff /* 0x00000000ffff0000  */
+	ori	r4,r4,0xffff /* 0x00000000ffffffff  */
+	ld	r3,-8(r1)
+/* The return is an unsigned int, but we have long long, so we need to force
+   overflow if there are any significant bits in the high word or return
+   zero if negative.  */
+	cmpld	cr6,r3,r4
+	blt	cr1,L(negative)
+	blelr	cr6
+L(posoverflow):
+	mr	r3,r4	/* return max unsigned int.  */
+	blr
+L(negative):
+	li	r3,0	/* return 0 for negative floats.  */
+	blr
+	END (__dpd_fixunssdsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunstddi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunstddi.S	2008-08-28 17:31:53.000000000 +0200
@@ -0,0 +1,60 @@
+/* Decimal Floating Point convert 128-bit to unsigned long.
+   POWER6 PPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.section	".toc","aw"
+.LC1:	/* 9223372036854775808.0DD */
+	.tc  FT_2207c000_3_a4cfa07a_2c7f600a[TC],0x2207c00000000003,0xa4cfa07a2c7f600a
+.LC2:	/* 18446744073709551616.0DD */
+	.tc FT_2207c000_c_a99e40ed_c5ba58e0[TC],0x2207c0000000000c,0xa99e40edc5ba58e0
+	.section	".text"
+
+	.machine	"power6"
+/* unsigned long __dpd_fixunstddi (__decimal128 x)  */
+ENTRY (__dpd_fixunstddi)
+	lfd	fp10,.LC1@toc(2)
+	lfd	fp11,.LC1@toc+8(2)
+	drintnq. 0,fp2,fp2,1	/* Preround to toward zero.  */
+	dcmpuq	cr0,fp2,fp10	/* check if > 2**63-1 */
+	blt	cr1,L(negative)
+	lfd	fp8,.LC2@toc(2)
+	lfd	fp9,.LC2@toc+8(2)
+	blt	cr0,L(poslong)
+/* The return is an unsigned long, but "DFP convert to fixed" takes
+   signed long, so we need to pre-adjust (-18446744073709551616.0DD)
+   to get the final (signed) conversion result to be the correct
+   unsigned result.  */
+	dsubq	fp2,fp2,fp8
+	dcmpuq	cr0,fp2,fp10	/* if x still > 2**63-1 */
+	li	r3,-1		/* return max_unsigned_long */
+	bgelr	cr0		/* else */
+L(poslong):
+	dctfixq fp0,fp2 /* Convert x to long integer.  */
+	stfd	fp0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	ld	r3,-8(r1)
+	blr
+L(negative):
+	li	r3,0	/* return 0 for negative floats.  */
+	blr
+	END (__dpd_fixunstddi)
+
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunstdsi.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-fixunstdsi.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,46 @@
+/* Decimal Floating Point convert 128-bit to unsigned int.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* unsigned int __dpd_fixunstdsi (__decimal128 x)  */
+ENTRY (__dpd_fixunstdsi)
+	drintnq. 0,fp2,fp2,1	/* Preround to toward zero.  */
+	dctfixq fp0,fp2 /* Convert x to integer.  */
+	stfd	fp1,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	oris	r4,0,0xffff /* 0x00000000ffff0000  */
+	ori	r4,r4,0xffff /* 0x00000000ffffffff  */
+	ld	r3,-8(r1)
+/* The return is an unsigned int, but we have long long, so we need to force
+   overflow if there are any significant bits in the high word or return
+   zero if negative.  */
+	cmpld	cr6,r3,r4
+	blt	cr1,L(negative)
+	blelr	cr6
+L(posoverflow):
+	mr	r3,r4	/* return max unsigned int.  */
+	blr
+L(negative):
+	li	r3,0	/* return 0 for negative floats.  */
+	blr
+	END (__dpd_fixunstdsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatdidd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatdidd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Convert long to Decimal Floating Point 64-bit.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal64 __dpd_floatdidd (long x)  */
+ENTRY (__dpd_floatdidd)
+	std	r3,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	dcffix	fp1,fp0 /* Convert x to decimal float.  */
+	blr
+	END (__dpd_floatdidd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatdisd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatdisd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,32 @@
+/* Convert long to Decimal Floating Point 32-bit.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal32 __dpd_floatdisd (long x)  */
+ENTRY (__dpd_floatdisd)
+	std	r0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	dcffix	fp1,fp0 /* Convert x to decimal float.  */
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_floatdisd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatditd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatditd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Convert long to Decimal Floating Point 128-bit.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal128 __dpd_floatditd (long x)  */
+ENTRY (__dpd_floatditd)
+	std	r0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	dcffixq	fp2,fp0 /* Convert x to decimal float.  */
+	blr
+	END (__dpd_floatditd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatsidd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatsidd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Convert int to Decimal Floating Point 64-bit.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal64 __dpd_floatsidd (int x)  */
+ENTRY (__dpd_floatsidd)
+	std	r3,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	dcffix	fp1,fp0 /* Convert x to decimal float.  */
+	blr
+	END (__dpd_floatsidd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatsisd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatsisd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,32 @@
+/* Convert int to Decimal Floating Point 32-bit.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal32 __dpd_floatsisd (int x)  */
+ENTRY (__dpd_floatsisd)
+	std	r3,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	dcffix	fp1,fp0 /* Convert x to decimal float.  */
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_floatsisd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatsitd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatsitd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Convert int to Decimal Floating Point 128-bit.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal128 __dpd_floatsitd (int x)  */
+ENTRY (__dpd_floatsitd)
+	std	r3,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	dcffixq	fp2,fp0 /* Convert x to decimal float.  */
+	blr
+	END (__dpd_floatsitd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunsdidd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunsdidd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,50 @@
+/* Convert unsigned long to Decimal Floating Point 64-bit.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.section	".toc","aw"
+.LC1:	/* 9223372036854775808.0DD */
+	.tc FD_6e45237c_836973f6[TC],0x6e45237c836973f6
+	.section	".text"
+
+	.machine	"power6"
+/* __decimal64 __dpd_floatunsdidd (unsigned long x)  */
+ENTRY (__dpd_floatunsdidd)
+	cmpdi	cr0,r3,0
+	std	r3,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	blt	cr0,L(negative)
+	dcffix	fp1,fp0 /* Convert x to decimal float.  */
+	blr
+/* we need to do more here. The function converts a unsigned long, but
+   the dcffix instruction provides a signed conversion.  So we force
+   the binary to be positive by clearing the sign bit before we convert
+   to decimal.  Then we add 9223372036854775808.0DD to the result of the
+   dcffix.  This gives the decimal equivalent to the full 64-bit value.  */
+L(negative):
+	fabs	fp0,fp0
+	lfd	fp10,.LC1@toc(2)
+	dcffix	fp1,fp0 /* Convert x to decimal float.  */
+	dadd	fp1,fp1,fp10
+	blr
+	END (__dpd_floatunsdidd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunsdisd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunsdisd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,52 @@
+/* Convert unsigned long to Decimal Floating Point 32-bit.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.section	".toc","aw"
+.LC1:	/* 9223372036854775808.0DD */
+	.tc FD_6e45237c_836973f6[TC],0x6e45237c836973f6
+	.section	".text"
+
+	.machine	"power6"
+/* __decimal32 __dpd_floatunsdisd (unsigned long x)  */
+ENTRY (__dpd_floatunsdisd)
+	cmpdi	cr0,r3,0
+	std	r3,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	blt	cr0,L(negative)
+	dcffix	fp1,fp0 /* Convert x to decimal floatuns.  */
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+/* we need to do more here. The function converts a unsigned long, but
+   the dcffix instruction provides a signed conversion.  So we force
+   the binary to be positive by clearing the sign bit before we convert
+   to decimal.  Then we add 9223372036854775808.0DD to the result of the
+   dcffix.  This gives the decimal equivalent to the full 64-bit value.  */
+L(negative):
+	fabs	fp0,fp0
+	lfd	fp10,.LC1@toc(2)
+	dcffix	fp1,fp0 /* Convert x to decimal float.  */
+	dadd	fp1,fp1,fp10
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_floatunsdisd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunsditd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunsditd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,51 @@
+/* Convert unsigned long to Decimal Floating Point 128-bit.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.section	".toc","aw"
+.LC1:	/* 9223372036854775808.0DD */
+	.tc FT_2207c000_3_a4cfa07a_2c7f600a[TC],0x2207c00000000003,0xa4cfa07a2c7f600a
+	.section	".text"
+
+	.machine	"power6"
+/* __decimal128 __dpd_floatunsditd (unsigned long x)  */
+ENTRY (__dpd_floatunsditd)
+	cmpdi	cr0,r3,0
+	std	r3,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	blt	cr0,L(negative)
+	dcffixq	fp2,fp0 /* Convert x to decimal floatuns.  */
+	blr
+/* we need to do more here. The function converts a unsigned long, but
+   the dcffix instruction provides a signed conversion.  So we force
+   the binary to be positive by clearing the sign bit before we convert
+   to decimal.  Then we add 9223372036854775808.0DD to the result of the
+   dcffixq.  This gives the decimal equivalent to the full 64-bit value.  */
+L(negative):
+	fabs	fp0,fp0
+	lfd	fp10,.LC1@toc(2)
+	lfd	fp11,.LC1@toc+8(2)
+	dcffixq	fp2,fp0 /* Convert x to decimal float.  */
+	daddq	fp2,fp2,fp10
+	blr
+	END (__dpd_floatunsditd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunssidd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunssidd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Convert unsigned int to Decimal Floating Point 64-bit.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal64 __dpd_floatunssidd (unsigned int x)  */
+ENTRY (__dpd_floatunssidd)
+	clrldi	r0,r3,32	/* extend unsigned.  */
+	std	r0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	dcffix	fp1,fp0 /* Convert x to decimal floatuns.  */
+	blr
+	END (__dpd_floatunssidd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunssisd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunssisd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,34 @@
+/* Convert unsigned int to Decimal Floating Point 32-bit.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal32 __dpd_floatunssisd (unsigned int x)  */
+ENTRY (__dpd_floatunssisd)
+	clrldi	r0,r3,32	/* extend unsigned.  */
+	std	r0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	dcffix	fp1,fp0 /* Convert x to decimal floatuns.  */
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_floatunssisd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunssitd.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-floatunssitd.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Convert unsigned int to Decimal Floating Point 128-bit.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal128 __dpd_floatunssitd (unsigned int x)  */
+ENTRY (__dpd_floatunssitd)
+	clrldi	r0,r3,32	/* extend unsigned.  */
+	std	r0,-8(r1)
+	ori	r1,r1,0		/* Special group ending nop.  */
+	lfd	fp0,-8(r1)
+	dcffixq	fp2,fp0 /* Convert x to decimal floatuns.  */
+	blr
+	END (__dpd_floatunssitd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gedd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gedd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Decimal Floating Point 64-bit compare >=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_gedd2 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_gedd2)
+	dcmpu	cr0,fp1,fp2 	/* if ((x > y) && !unordered(x,y)) */
+	li	r3, 1		/*   return 1  */
+	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, -1		/*   return -1  */
+	blr
+	END (__dpd_gedd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gesd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gesd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,35 @@
+/* Decimal Floating Point 32-bit compare >=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_gesd2 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_gesd2)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dcmpu	cr0,fp1,fp2 	/* if ((x > y) && !unordered(x,y)) */
+	li	r3, 1		/*   return 1  */
+	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, -1		/*   return -1  */
+	blr
+	END (__dpd_gesd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-getd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-getd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Decimal Floating Point 128-bit compare >=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_getd2 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_getd2)
+	dcmpuq	cr0,fp2,fp4 	/* if ((x > y) && !unordered(x,y)) */
+	li	r3, 1		/*   return 1  */
+	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, -1		/*   return -1  */
+	blr
+	END (__dpd_getd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gtdd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gtdd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Decimal Floating Point 64-bit compare >=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_gtdd2 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_gtdd2)
+	dcmpu	cr0,fp1,fp2 	/* if ((x > y) && !unordered(x,y)) */
+	li	r3, 1		/*   return 1  */
+	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, -1		/*   return -1  */
+	blr
+	END (__dpd_gtdd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gtsd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gtsd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,35 @@
+/* Decimal Floating Point 32-bit compare >=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_gtsd2 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_gtsd2)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dcmpu	cr0,fp1,fp2 	/* if ((x > y) && !unordered(x,y)) */
+	li	r3, 1		/*   return 1  */
+	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, -1		/*   return -1  */
+	blr
+	END (__dpd_gtsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gttd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-gttd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Decimal Floating Point 128-bit compare >=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_gttd2 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_gttd2)
+	dcmpuq	cr0,fp2,fp4 	/* if ((x > y) && !unordered(x,y)) */
+	li	r3, 1		/*   return 1  */
+	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, -1		/*   return -1  */
+	blr
+	END (__dpd_gttd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-ledd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-ledd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Decimal Floating Point 64-bit compare <.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_ledd2 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_ledd2)
+	dcmpu	cr0,fp1,fp2 	/* if ((x < y) && !unordered(x,y)) */
+	li	r3, -1		/*   return -1  */
+	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_ledd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-lesd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-lesd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,35 @@
+/* Decimal Floating Point 32-bit compare <.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_lesd2 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_lesd2)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dcmpu	cr0,fp1,fp2 	/* if ((x < y) && !unordered(x,y)) */
+	li	r3, -1		/*   return -1  */
+	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_lesd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-letd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-letd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Decimal Floating Point 128-bit compare >=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_letd2 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_letd2)
+	dcmpuq	cr0,fp2,fp4 	/* if ((x < y) && !unordered(x,y)) */
+	li	r3, -1		/*   return -1  */
+	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_letd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-ltdd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-ltdd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Decimal Floating Point 64-bit compare <.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_ltdd2 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_ltdd2)
+	dcmpu	cr0,fp1,fp2 	/* if ((x < y) && !unordered(x,y)) */
+	li	r3, -1		/*   return -1  */
+	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_ltdd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-ltsd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-ltsd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,35 @@
+/* Decimal Floating Point 32-bit compare <.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_ltsd2 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_ltsd2)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dcmpu	cr0,fp1,fp2 	/* if ((x < y) && !unordered(x,y)) */
+	li	r3, -1		/*   return -1  */
+	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_ltsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-lttd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-lttd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,33 @@
+/* Decimal Floating Point 128-bit compare >=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_lttd2 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_lttd2)
+	dcmpuq	cr0,fp2,fp4 	/* if ((x < y) && !unordered(x,y)) */
+	li	r3, -1		/*   return -1  */
+	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_lttd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-muldd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-muldd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point 64-bit multiply.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal64 __dpd_muldd3 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_muldd3)
+	dmul	fp1,fp1,fp2
+	blr
+	END (__dpd_muldd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-mulsd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-mulsd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Decimal Floating Point 32-bit multiply.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal32 __dpd_mulsd3 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_mulsd3)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dmul	fp1,fp1,fp2
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_mulsd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-multd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-multd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point 128-bit multiply.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal128 __dpd_multd3 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_multd3)
+	dmulq	fp2,fp2,fp4
+	blr
+	END (__dpd_multd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-nedd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-nedd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,32 @@
+/* Decimal Floating Point 64-bit compare !=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_nedd2 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_nedd2)
+	dcmpu	cr0,fp1,fp2 	/* if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	bunlr	cr0
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_nedd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-nesd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-nesd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,34 @@
+/* Decimal Floating Point 32-bit compare !=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_nesd2 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_nesd2)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dcmpu	cr0,fp1,fp2 	/* if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	bunlr	cr0
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_nesd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-netd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-netd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,32 @@
+/* Decimal Floating Point 128-bit compare !=.  P6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_netd2 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_netd2)
+	dcmpuq	cr0,fp2,fp4 	/* if ((x == y) && !unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	beqlr	cr0		/* else	 */
+	bunlr	cr0
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_netd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-subdd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-subdd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point 64-bit substract.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal64 __dpd_subdd3 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_subdd3)
+	dsub	fp1,fp1,fp2
+	blr
+	END (__dpd_subdd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-subsd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-subsd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,31 @@
+/* Decimal Floating Point 32-bit subtract.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal32 __dpd_subsd3 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_subsd3)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dsub	fp1,fp1,fp2
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_subsd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-subtd3.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-subtd3.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,28 @@
+/* Decimal Floating Point 128-bit subtract.  POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal128 __dpd_subtd3 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_subtd3)
+	dsubq	fp2,fp2,fp4
+	blr
+	END (__dpd_subtd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-truncddsd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-truncddsd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,29 @@
+/* Decimal Floating Point truncate 64-bit to 32-bit.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal32 __dpd_truncddsd2 (__decimal64 x)  */
+ENTRY (__dpd_truncddsd2)
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_truncddsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-trunctddd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-trunctddd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,29 @@
+/* Decimal Floating Point truncate 128-bit to 64-bit.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal64 __dpd_trunctddd2 (__decimal128 x)  */
+ENTRY (__dpd_trunctddd2)
+	drdpq	fp1,fp2	/* Round result to __decimal64. */
+	blr
+	END (__dpd_trunctddd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-trunctdsd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-trunctdsd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,30 @@
+/* Decimal Floating Point truncate 128-bit to 32-bit.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* __decimal32 __dpd_trunctdsd2 (__decimal128 x)  */
+ENTRY (__dpd_trunctdsd2)
+	drdpq	fp1,fp2	/* Round result to __decimal64. */
+	drsp	fp1,fp1	/* Round result to __decimal32. */
+	blr
+	END (__dpd_trunctdsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-unorddd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-unorddd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,32 @@
+/* Decimal Floating Point 64-bit unordered compare.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_unorddd2 (__decimal64 x, __decimal64 y)  */
+ENTRY (__dpd_unorddd2)
+	dcmpu	cr0,fp1,fp2 	/* if (!unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	bnulr+	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_unorddd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-unordsd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-unordsd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,34 @@
+/* Decimal Floating Point 32-bit unordered compare.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_unordsd2 (__decimal32 x, __decimal32 y)  */
+ENTRY (__dpd_unordsd2)
+	dctdp	fp1,fp1	/* Convert x to __decimal64. */
+	dctdp	fp2,fp2	/* Convert y to __decimal64. */
+	dcmpu	cr0,fp1,fp2 	/* if (!unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	bnulr+	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_unordsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-unordtd2.S
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/dpd-unordtd2.S	2008-08-28 17:31:12.000000000 +0200
@@ -0,0 +1,32 @@
+/* Decimal Floating Point 128-bit unordered compare.
+   POWER6 PowerPC64 version.
+   Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
+   MA 02110-1301 USA  */
+
+#include <sysdep.h>
+#include <math_ldbl_opt.h>
+
+	.machine	"power6"
+/* int __dpd_unordtd2 (__decimal128 x, __decimal128 y)  */
+ENTRY (__dpd_unordtd2)
+	dcmpuq	cr0,fp2,fp4 	/* if (!unordered(x,y)) */
+	li	r3, 0		/*   return 0  */
+	bnulr+	cr0		/* else	 */
+	li	r3, 1		/*   return 1  */
+	blr
+	END (__dpd_unordtd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/eqdd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/eqdd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Decimal Floating Point 64-bit compare equal.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __eqdd2 (__decimal64 x, __decimal64 y)  */
-ENTRY (__eqdd2)
-	dcmpu	cr0,fp1,fp2 	/* if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__eqdd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/eqsd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/eqsd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Decimal Floating Point 32-bit compare equal.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __eqsd2 (__decimal32 x, __decimal32 y)  */
-ENTRY (__eqsd2)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dcmpu	cr0,fp1,fp2 	/* if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__eqsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/eqtd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/eqtd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Decimal Floating Point 128-bit compare equal.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __eqtd2 (__decimal128 x, __decimal128 y)  */
-ENTRY (__eqtd2)
-	dcmpuq	cr0,fp2,fp4 	/* if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__eqtd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/extendddtd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/extendddtd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point extend 64-bit to 128-bit.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal128 __extendddtd2 (__decimal64 x)  */
-ENTRY (__extendddtd2)
-	dctqpq	fp2,fp1	/* Convert x to __decimal128. */
-	blr
-	END (__extendddtd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/extendsddd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/extendsddd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point extend 32-bit to 64-bit.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal64 __extendsddd2 (__decimal32 x)  */
-ENTRY (__extendsddd2)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	blr
-	END (__extendsddd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/extendsdtd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/extendsdtd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-/* Decimal Floating Point extend 32-bit to 128-bit.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal128 __extendsdtd2 (__decimal32 x)  */
-ENTRY (__extendsdtd2)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctqpq	fp2,fp1	/* Convert x to __decimal128. */
-	blr
-	END (__extendsdtd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixdddi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixdddi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-/* Decimal Floating Point convert 64-bit to long.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* long __fixdddi (__decimal64 x)  */
-ENTRY (__fixdddi)
-	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
-	dctfix	fp0,fp1 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	ld	r3,-8(r1)
-	blr
-	END (__fixdddi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixddsi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixddsi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,51 +0,0 @@
-/* Decimal Floating Point convert 64-bit to int.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __fixddsi (__decimal64 x)  */
-ENTRY (__fixddsi)
-	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
-	dctfix	fp0,fp1 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	oris	r4,0,0x8000 /* 0x0000000080000000  */
-	lis	r5,0x8000 /* 0xffffffff80000000  */
-	ld	r3,-8(r1)
-/* The return is an int, but we have long long, so we need to force overflow
-   if there are any significant bits in the high word or overflow (incorrect
-   sign) from the low word.  */
-
-	cmpd	cr0,r3,r4
-	cmpd	cr7,r3,r5
-	cmpdi	cr6,r3,0
-	blt	cr1,L(negative)
-	bltlr	cr0
-L(posoverflow):
-	addi	r3,r4,-1	/* return max positive int.  */
-	blr
-L(negative):		/* If (result >= min negative int */
-	bgelr	cr7	/* return result */
-L(negoverflow):		/* else */
-	mr	r3,r5	/* return min negative int.  */
-	blr
-	END (__fixddsi)
-
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixsddi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixsddi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,34 +0,0 @@
-/* Decimal Floating Point convert 32-bit to long.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* long __fixsddi (__decimal32 x)  */
-ENTRY (__fixsddi)
-	dctdp	fp1,fp1	/* Convert x to __decimal64.  */
-	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
-	dctfix	fp0,fp1 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	ld	r3,-8(r1)
-	blr
-	END (__fixsddi)
-
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixsdsi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixsdsi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,51 +0,0 @@
-/* Decimal Floating Point convert 32-bit to int.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __fixsdsi (__decimal32 x)  */
-ENTRY (__fixsdsi)
-	dctdp	fp1,fp1	/* Convert x to __decimal64.  */
-	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
-	dctfix	fp0,fp1 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	oris	r4,0,0x8000 /* 0x0000000080000000  */
-	lis	r5,0x8000 /* 0xffffffff80000000  */
-	ld	r3,-8(r1)
-/* The return is an int, but we have long long, so we need to force overflow
-   if there are any significant bits in the high word or overflow (incorrect
-   sign) from the low word.  */
-
-	cmpd	cr0,r3,r4
-	cmpd	cr7,r3,r5
-	cmpdi	cr6,r3,0
-	blt	cr1,L(negative)
-	bltlr	cr0
-L(posoverflow):
-	addi	r3,r4,-1	/* return max positive int.  */
-	blr
-L(negative):		/* If (result >= min negative int */
-	bgelr	cr7	/* return result */
-L(negoverflow):		/* else */
-	mr	r3,r5	/* return min negative int.  */
-	blr
-	END (__fixsdsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixtddi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixtddi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-/* Decimal Floating Point convert 128-bit to long.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* long __fixtddi (__decimal28 x)  */
-ENTRY (__fixtddi)
-	drintnq. 0,fp2,fp2,1	/* Preround to toward zero.  */
-	dctfixq fp0,fp2 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	ld	r3,-8(r1)
-	blr
-	END (__fixtddi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixtdsi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixtdsi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,50 +0,0 @@
-/* Decimal Floating Point convert 128-bit to int.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __fixtdsi (__decimal28 x)  */
-ENTRY (__fixtdsi)
-	drintnq. 0,fp2,fp2,1	/* Preround to toward zero.  */
-	dctfixq fp0,fp2 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	oris	r4,0,0x8000 /* 0x0000000080000000  */
-	lis	r5,0x8000 /* 0xffffffff80000000  */
-	ld	r3,-8(r1)
-/* The return is an int, but we have long long, so we need to force overflow
-   if there are any significant bits in the high word or overflow (incorrect
-   sign) from the low word.  */
-
-	cmpd	cr0,r3,r4
-	cmpd	cr7,r3,r5
-	cmpdi	cr6,r3,0
-	blt	cr1,L(negative)
-	bltlr	cr0
-L(posoverflow):
-	addi	r3,r4,-1	/* return max positive int.  */
-	blr
-L(negative):		/* If (result >= min negative int */
-	bgelr	cr7	/* return result */
-L(negoverflow):		/* else */
-	mr	r3,r5	/* return min negative int.  */
-	blr
-	END (__fixtdsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunsdddi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunsdddi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,57 +0,0 @@
-/* Decimal Floating Point convert 64-bit to unsigned long.  P6 PPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.section	".toc","aw"
-.LC1:	/* 9223372036854775808.0DD */
-	.tc FD_6e45237c_836973f6[TC],0x6e45237c836973f6
-.LC2:	/* 18446744073709551616.0DD */
-	.tc FD_264a4cdd_2077c2dd[TC],0x264a4cdd2077c2dd
-	.section	".text"
-
-	.machine	"power6"
-/* unsigned long __fixunsdddi (__decimal64 x)  */
-ENTRY (__fixunsdddi)
-	lfd	fp10,.LC1@toc(2)
-	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
-	dcmpu	cr0,fp1,fp10	/* check if > 2**63-1 */
-	blt	cr1,L(negative)
-	lfd	fp11,.LC2@toc(2)
-	blt	cr0,L(poslong)
-/* The return is an unsigned long, but "DFP convert to fixed" takes
-   signed long, so we need to pre-adjust (-18446744073709551616.0DD)
-   to get the final (signed) conversion result to be the correct	
-   unsigned result.  */
-	dsub	fp1,fp1,fp11
-	dcmpu	cr0,fp1,fp10	/* if x still > 2**63-1 */
-	li	r3,-1		/* return max_unsigned_long */
-	bgelr	cr0		/* else */
-L(poslong):
-	dctfix	fp0,fp1 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	ld	r3,-8(r1)
-	blr
-L(negative):
-	li	r3,0	/* return 0 for negative floats.  */
-	blr
-	END (__fixunsdddi)
-
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunsddsi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunsddsi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,45 +0,0 @@
-/* Decimal Floating Point convert 64-bit to unsigned int.  P6 PPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* unsigned int __fixunsddsi (__decimal64 x)  */
-ENTRY (__fixunsddsi)
-	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
-	dctfix	fp0,fp1 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	oris	r4,0,0xffff /* 0x00000000ffff0000  */
-	ori	r4,r4,0xffff /* 0x00000000ffffffff  */
-	ld	r3,-8(r1)
-/* The return is an unsigned int, but we have long long, so we need to force
-   overflow if there are any significant bits in the high word or return
-   zero if negative.  */
-	cmpld	cr6,r3,r4
-	blt	cr1,L(negative)
-	blelr	cr6
-L(posoverflow):
-	mr	r3,r4	/* return max unsigned int.  */
-	blr
-L(negative):
-	li	r3,0	/* return 0 for negative floats.  */
-	blr
-	END (__fixunsddsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunssddi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunssddi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,59 +0,0 @@
-/* Decimal Floating Point convert 32-bit to unsigned long.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.section	".toc","aw"
-.LC1:	/* 9223372036854775808.0DD */
-	.tc FD_6e45237c_836973f6[TC],0x6e45237c836973f6
-.LC2:	/* 18446744073709551616.0DD */
-	.tc FD_264a4cdd_2077c2dd[TC],0x264a4cdd2077c2dd
-	.section	".text"
-
-	.machine	"power6"
-/* unsigned long __fixunssddi (__decimal32 x)  */
-ENTRY (__fixunssddi)
-	dctdp	fp1,fp1	/* Convert x to __decimal64.  */
-	lfd	fp10,.LC1@toc(2)
-	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
-	dcmpu	cr0,fp1,fp10	/* check if > 2**63-1 */
-	blt	cr1,L(negative)
-	lfd	fp11,.LC1@toc(2)
-	blt	cr0,L(poslong)
-/* The return is an unsigned long, but "DFP convert to fixed" takes
-   signed long, so we need to pre-adjust (-18446744073709551616.0DD)
-   to get the final (signed) conversion result to be the correct	
-   unsigned result.  */
-	dsub	fp1,fp1,fp11
-	dcmpu	cr0,fp1,fp10	/* if x still > 2**63-1 */
-	li	r3,-1		/* return max_unsigned_long */
-	bgelr	cr0		/* else */
-L(poslong):
-	dctfix	fp0,fp1 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	ld	r3,-8(r1)
-	blr
-L(negative):
-	li	r3,0	/* return 0 for negative floats.  */
-	blr
-	END (__fixunssddi)
-
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunssdsi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunssdsi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,47 +0,0 @@
-/* Decimal Floating Point convert 32-bit to unsigned int.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* unsigned int __fixunssdsi (__decimal32 x)  */
-ENTRY (__fixunssdsi)
-	dctdp	fp1,fp1	/* Convert x to __decimal64.  */
-	drintn.	0,fp1,fp1,1	/* Preround to toward zero.  */
-	dctfix	fp0,fp1 /* Convert x to integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	oris	r4,0,0xffff /* 0x00000000ffff0000  */
-	ori	r4,r4,0xffff /* 0x00000000ffffffff  */
-	ld	r3,-8(r1)
-/* The return is an unsigned int, but we have long long, so we need to force
-   overflow if there are any significant bits in the high word or return
-   zero if negative.  */
-	cmpld	cr6,r3,r4
-	blt	cr1,L(negative)
-	blelr	cr6
-L(posoverflow):
-	mr	r3,r4	/* return max unsigned int.  */
-	blr
-L(negative):
-	li	r3,0	/* return 0 for negative floats.  */
-	blr
-	END (__fixunssdsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunstddi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunstddi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,60 +0,0 @@
-/* Decimal Floating Point convert 128-bit to unsigned long.
-   POWER6 PPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.section	".toc","aw"
-.LC1:	/* 9223372036854775808.0DD */
-	.tc  FT_2207c000_3_a4cfa07a_2c7f600a[TC],0x2207c00000000003,0xa4cfa07a2c7f600a
-.LC2:	/* 18446744073709551616.0DD */
-	.tc FT_2207c000_c_a99e40ed_c5ba58e0[TC],0x2207c0000000000c,0xa99e40edc5ba58e0
-	.section	".text"
-
-	.machine	"power6"
-/* unsigned long __fixunstddi (__decimal128 x)  */
-ENTRY (__fixunstddi)
-	lfd	fp10,.LC1@toc(2)
-	lfd	fp11,.LC1@toc+8(2)
-	drintnq. 0,fp2,fp2,1	/* Preround to toward zero.  */
-	dcmpuq	cr0,fp2,fp10	/* check if > 2**63-1 */
-	blt	cr1,L(negative)
-	lfd	fp8,.LC2@toc(2)
-	lfd	fp9,.LC2@toc+8(2)
-	blt	cr0,L(poslong)
-/* The return is an unsigned long, but "DFP convert to fixed" takes
-   signed long, so we need to pre-adjust (-18446744073709551616.0DD)
-   to get the final (signed) conversion result to be the correct	
-   unsigned result.  */
-	dsubq	fp2,fp2,fp8
-	dcmpuq	cr0,fp2,fp10	/* if x still > 2**63-1 */
-	li	r3,-1		/* return max_unsigned_long */
-	bgelr	cr0		/* else */
-L(poslong):
-	dctfixq fp0,fp2 /* Convert x to long integer.  */
-	stfd	fp0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	ld	r3,-8(r1)
-	blr
-L(negative):
-	li	r3,0	/* return 0 for negative floats.  */
-	blr
-	END (__fixunstddi)
-
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunstdsi.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/fixunstdsi.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,46 +0,0 @@
-/* Decimal Floating Point convert 128-bit to unsigned int.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* unsigned int __fixunstdsi (__decimal128 x)  */
-ENTRY (__fixunstdsi)
-	drintnq. 0,fp2,fp2,1	/* Preround to toward zero.  */
-	dctfixq fp0,fp2 /* Convert x to integer.  */
-	stfd	fp1,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	oris	r4,0,0xffff /* 0x00000000ffff0000  */
-	ori	r4,r4,0xffff /* 0x00000000ffffffff  */
-	ld	r3,-8(r1)
-/* The return is an unsigned int, but we have long long, so we need to force
-   overflow if there are any significant bits in the high word or return
-   zero if negative.  */
-	cmpld	cr6,r3,r4
-	blt	cr1,L(negative)
-	blelr	cr6
-L(posoverflow):
-	mr	r3,r4	/* return max unsigned int.  */
-	blr
-L(negative):
-	li	r3,0	/* return 0 for negative floats.  */
-	blr
-	END (__fixunstdsi)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatdidd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatdidd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Convert long to Decimal Floating Point 64-bit.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal64 __floatdidd (long x)  */
-ENTRY (__floatdidd)
-	std	r3,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	dcffix	fp1,fp0 /* Convert x to decimal float.  */
-	blr
-	END (__floatdidd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatdisd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatdisd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-/* Convert long to Decimal Floating Point 32-bit.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal32 __floatdisd (long x)  */
-ENTRY (__floatdisd)
-	std	r0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	dcffix	fp1,fp0 /* Convert x to decimal float.  */
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__floatdisd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatditd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatditd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Convert long to Decimal Floating Point 128-bit.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal128 __floatditd (long x)  */
-ENTRY (__floatditd)
-	std	r0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	dcffixq	fp2,fp0 /* Convert x to decimal float.  */
-	blr
-	END (__floatditd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatsidd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatsidd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Convert int to Decimal Floating Point 64-bit.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal64 __floatsidd (int x)  */
-ENTRY (__floatsidd)
-	std	r3,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	dcffix	fp1,fp0 /* Convert x to decimal float.  */
-	blr
-	END (__floatsidd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatsisd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatsisd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-/* Convert int to Decimal Floating Point 32-bit.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal32 __floatsisd (int x)  */
-ENTRY (__floatsisd)
-	std	r3,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	dcffix	fp1,fp0 /* Convert x to decimal float.  */
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__floatsisd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatsitd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatsitd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Convert int to Decimal Floating Point 128-bit.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal128 __floatsitd (int x)  */
-ENTRY (__floatsitd)
-	std	r3,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	dcffixq	fp2,fp0 /* Convert x to decimal float.  */
-	blr
-	END (__floatsitd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunsdidd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunsdidd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,50 +0,0 @@
-/* Convert unsigned long to Decimal Floating Point 64-bit.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.section	".toc","aw"
-.LC1:	/* 9223372036854775808.0DD */
-	.tc FD_6e45237c_836973f6[TC],0x6e45237c836973f6
-	.section	".text"
-
-	.machine	"power6"
-/* __decimal64 __floatunsdidd (unsigned long x)  */
-ENTRY (__floatunsdidd)
-	cmpdi	cr0,r3,0
-	std	r3,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	blt	cr0,L(negative)
-	dcffix	fp1,fp0 /* Convert x to decimal float.  */
-	blr
-/* we need to do more here. The function converts a unsigned long, but
-   the dcffix instruction provides a signed conversion.  So we force
-   the binary to be positive by clearing the sign bit before we convert
-   to decimal.  Then we add 9223372036854775808.0DD to the result of the
-   dcffix.  This gives the decimal equivalent to the full 64-bit value.  */
-L(negative):
-	fabs	fp0,fp0
-	lfd	fp10,.LC1@toc(2)
-	dcffix	fp1,fp0 /* Convert x to decimal float.  */
-	dadd	fp1,fp1,fp10
-	blr
-	END (__floatunsdidd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunsdisd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunsdisd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,52 +0,0 @@
-/* Convert unsigned long to Decimal Floating Point 32-bit.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.section	".toc","aw"
-.LC1:	/* 9223372036854775808.0DD */
-	.tc FD_6e45237c_836973f6[TC],0x6e45237c836973f6
-	.section	".text"
-
-	.machine	"power6"
-/* __decimal32 __floatunsdisd (unsigned long x)  */
-ENTRY (__floatunsdisd)
-	cmpdi	cr0,r3,0
-	std	r3,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	blt	cr0,L(negative)
-	dcffix	fp1,fp0 /* Convert x to decimal floatuns.  */
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-/* we need to do more here. The function converts a unsigned long, but
-   the dcffix instruction provides a signed conversion.  So we force
-   the binary to be positive by clearing the sign bit before we convert
-   to decimal.  Then we add 9223372036854775808.0DD to the result of the
-   dcffix.  This gives the decimal equivalent to the full 64-bit value.  */
-L(negative):
-	fabs	fp0,fp0
-	lfd	fp10,.LC1@toc(2)
-	dcffix	fp1,fp0 /* Convert x to decimal float.  */
-	dadd	fp1,fp1,fp10
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__floatunsdisd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunsditd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunsditd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,51 +0,0 @@
-/* Convert unsigned long to Decimal Floating Point 128-bit.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.section	".toc","aw"
-.LC1:	/* 9223372036854775808.0DD */
-	.tc FT_2207c000_3_a4cfa07a_2c7f600a[TC],0x2207c00000000003,0xa4cfa07a2c7f600a
-	.section	".text"
-
-	.machine	"power6"
-/* __decimal128 __floatunsditd (unsigned long x)  */
-ENTRY (__floatunsditd)
-	cmpdi	cr0,r3,0
-	std	r3,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	blt	cr0,L(negative)
-	dcffixq	fp2,fp0 /* Convert x to decimal floatuns.  */
-	blr
-/* we need to do more here. The function converts a unsigned long, but
-   the dcffix instruction provides a signed conversion.  So we force
-   the binary to be positive by clearing the sign bit before we convert
-   to decimal.  Then we add 9223372036854775808.0DD to the result of the
-   dcffixq.  This gives the decimal equivalent to the full 64-bit value.  */
-L(negative):
-	fabs	fp0,fp0
-	lfd	fp10,.LC1@toc(2)
-	lfd	fp11,.LC1@toc+8(2)
-	dcffixq	fp2,fp0 /* Convert x to decimal float.  */
-	daddq	fp2,fp2,fp10
-	blr
-	END (__floatunsditd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunssidd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunssidd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Convert unsigned int to Decimal Floating Point 64-bit.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal64 __floatunssidd (unsigned int x)  */
-ENTRY (__floatunssidd)
-	clrldi	r0,r3,32	/* extend unsigned.  */
-	std	r0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	dcffix	fp1,fp0 /* Convert x to decimal floatuns.  */
-	blr
-	END (__floatunssidd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunssisd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunssisd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,34 +0,0 @@
-/* Convert unsigned int to Decimal Floating Point 32-bit.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal32 __floatunssisd (unsigned int x)  */
-ENTRY (__floatunssisd)
-	clrldi	r0,r3,32	/* extend unsigned.  */
-	std	r0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	dcffix	fp1,fp0 /* Convert x to decimal floatuns.  */
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__floatunssisd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunssitd.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/floatunssitd.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Convert unsigned int to Decimal Floating Point 128-bit.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal128 __floatunssitd (unsigned int x)  */
-ENTRY (__floatunssitd)
-	clrldi	r0,r3,32	/* extend unsigned.  */
-	std	r0,-8(r1)
-	ori	r1,r1,0		/* Special group ending nop.  */
-	lfd	fp0,-8(r1)
-	dcffixq	fp2,fp0 /* Convert x to decimal floatuns.  */
-	blr
-	END (__floatunssitd)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/gedd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/gedd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Decimal Floating Point 64-bit compare >=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __gedd2 (__decimal64 x, __decimal64 y)  */
-ENTRY (__gedd2)
-	dcmpu	cr0,fp1,fp2 	/* if ((x > y) && !unordered(x,y)) */
-	li	r3, 1		/*   return 1  */
-	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, -1		/*   return -1  */
-	blr
-	END (__gedd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/gesd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/gesd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,35 +0,0 @@
-/* Decimal Floating Point 32-bit compare >=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __gesd2 (__decimal32 x, __decimal32 y)  */
-ENTRY (__gesd2)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dcmpu	cr0,fp1,fp2 	/* if ((x > y) && !unordered(x,y)) */
-	li	r3, 1		/*   return 1  */
-	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, -1		/*   return -1  */
-	blr
-	END (__gesd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/getd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/getd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Decimal Floating Point 128-bit compare >=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __getd2 (__decimal128 x, __decimal128 y)  */
-ENTRY (__getd2)
-	dcmpuq	cr0,fp2,fp4 	/* if ((x > y) && !unordered(x,y)) */
-	li	r3, 1		/*   return 1  */
-	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, -1		/*   return -1  */
-	blr
-	END (__getd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/gtdd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/gtdd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Decimal Floating Point 64-bit compare >=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __gtdd2 (__decimal64 x, __decimal64 y)  */
-ENTRY (__gtdd2)
-	dcmpu	cr0,fp1,fp2 	/* if ((x > y) && !unordered(x,y)) */
-	li	r3, 1		/*   return 1  */
-	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, -1		/*   return -1  */
-	blr
-	END (__gtdd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/gtsd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/gtsd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,35 +0,0 @@
-/* Decimal Floating Point 32-bit compare >=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __gtsd2 (__decimal32 x, __decimal32 y)  */
-ENTRY (__gtsd2)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dcmpu	cr0,fp1,fp2 	/* if ((x > y) && !unordered(x,y)) */
-	li	r3, 1		/*   return 1  */
-	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, -1		/*   return -1  */
-	blr
-	END (__gtsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/gttd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/gttd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Decimal Floating Point 128-bit compare >=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __gttd2 (__decimal128 x, __decimal128 y)  */
-ENTRY (__gttd2)
-	dcmpuq	cr0,fp2,fp4 	/* if ((x > y) && !unordered(x,y)) */
-	li	r3, 1		/*   return 1  */
-	bgtlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, -1		/*   return -1  */
-	blr
-	END (__gttd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/ledd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/ledd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Decimal Floating Point 64-bit compare <.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __ledd2 (__decimal64 x, __decimal64 y)  */
-ENTRY (__ledd2)
-	dcmpu	cr0,fp1,fp2 	/* if ((x < y) && !unordered(x,y)) */
-	li	r3, -1		/*   return -1  */
-	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__ledd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/lesd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/lesd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,35 +0,0 @@
-/* Decimal Floating Point 32-bit compare <.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __lesd2 (__decimal32 x, __decimal32 y)  */
-ENTRY (__lesd2)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dcmpu	cr0,fp1,fp2 	/* if ((x < y) && !unordered(x,y)) */
-	li	r3, -1		/*   return -1  */
-	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__lesd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/letd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/letd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Decimal Floating Point 128-bit compare >=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __letd2 (__decimal128 x, __decimal128 y)  */
-ENTRY (__letd2)
-	dcmpuq	cr0,fp2,fp4 	/* if ((x < y) && !unordered(x,y)) */
-	li	r3, -1		/*   return -1  */
-	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__letd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/ltdd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/ltdd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Decimal Floating Point 64-bit compare <.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __ltdd2 (__decimal64 x, __decimal64 y)  */
-ENTRY (__ltdd2)
-	dcmpu	cr0,fp1,fp2 	/* if ((x < y) && !unordered(x,y)) */
-	li	r3, -1		/*   return -1  */
-	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__ltdd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/ltsd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/ltsd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,35 +0,0 @@
-/* Decimal Floating Point 32-bit compare <.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __ltsd2 (__decimal32 x, __decimal32 y)  */
-ENTRY (__ltsd2)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dcmpu	cr0,fp1,fp2 	/* if ((x < y) && !unordered(x,y)) */
-	li	r3, -1		/*   return -1  */
-	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__ltsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/lttd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/lttd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-/* Decimal Floating Point 128-bit compare >=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __lttd2 (__decimal128 x, __decimal128 y)  */
-ENTRY (__lttd2)
-	dcmpuq	cr0,fp2,fp4 	/* if ((x < y) && !unordered(x,y)) */
-	li	r3, -1		/*   return -1  */
-	bltlr	cr0		/* else	if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__lttd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/Makefile
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/Makefile.orig	2008-08-28 17:22:33.000000000 +0200
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/Makefile	2008-08-28 17:22:35.000000000 +0200
@@ -1,25 +1,68 @@
 # Makefile fragment for POWER6 with FPU.
 
 ifeq ($(subdir),dfp)
-libdfp-routines += addsd3 adddd3 addtd3 \
-		subsd3 subdd3 subtd3 \
-		mulsd3 muldd3 multd3 \
-		divsd3 divdd3 divtd3 \
-		extendsddd2 extendsdtd2 extendddtd2 \
-		trunctdsd2 truncddsd2 trunctdsd2 \
-		unordsd2 unorddd2 unordtd2 \
-		eqsd2 eqdd2 eqtd2 \
-		nesd2 nedd2 netd2 \
-		gesd2 gedd2 getd2 \
-		gtsd2 gtdd2 gttd2 \
-		ltsd2 ltdd2 lttd2 \
-		lesd2 ledd2 letd2 \
-		fixsdsi fixddsi fixtdsi \
-		fixsddi fixdddi fixtddi \
-		fixunssdsi fixunsddsi fixunstdsi \
-		fixunssddi fixunsdddi fixunstddi \
-		floatsisd floatsidd floatsitd \
-		floatdisd floatdidd floatditd \
-		floatunssisd floatunssidd floatunssitd \
-		floatunsdisd floatunsdidd floatunsditd
+libdfp-routines += \
+    dpd-adddd3 \
+    dpd-addsd3 \
+    dpd-addtd3 \
+    dpd-divdd3 \
+    dpd-divsd3 \
+    dpd-divtd3 \
+    dpd-eqdd2 \
+    dpd-eqsd2 \
+    dpd-eqtd2 \
+    dpd-extendddtd2 \
+    dpd-extendsddd2 \
+    dpd-extendsdtd2 \
+    dpd-fixdddi \
+    dpd-fixddsi \
+    dpd-fixsddi \
+    dpd-fixsdsi \
+    dpd-fixtddi \
+    dpd-fixtdsi \
+    dpd-fixunsdddi \
+    dpd-fixunsddsi \
+    dpd-fixunssddi \
+    dpd-fixunssdsi \
+    dpd-fixunstddi \
+    dpd-fixunstdsi \
+    dpd-floatdidd \
+    dpd-floatdisd \
+    dpd-floatditd \
+    dpd-floatsidd \
+    dpd-floatsisd \
+    dpd-floatsitd \
+    dpd-floatunsdidd \
+    dpd-floatunsdisd \
+    dpd-floatunsditd \
+    dpd-floatunssidd \
+    dpd-floatunssisd \
+    dpd-floatunssitd \
+    dpd-gedd2 \
+    dpd-gesd2 \
+    dpd-getd2 \
+    dpd-gtdd2 \
+    dpd-gtsd2 \
+    dpd-gttd2 \
+    dpd-ledd2 \
+    dpd-lesd2 \
+    dpd-letd2 \
+    dpd-ltdd2 \
+    dpd-ltsd2 \
+    dpd-lttd2 \
+    dpd-muldd3 \
+    dpd-mulsd3 \
+    dpd-multd3 \
+    dpd-nedd2 \
+    dpd-nesd2 \
+    dpd-netd2 \
+    dpd-subdd3 \
+    dpd-subsd3 \
+    dpd-subtd3 \
+    dpd-truncddsd2 \
+    dpd-trunctddd2 \
+    dpd-trunctdsd2 \
+    dpd-unorddd2 \
+    dpd-unordsd2 \
+    dpd-unordtd2
 endif
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/muldd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/muldd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point 64-bit multiply.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal64 __muldd3 (__decimal64 x, __decimal64 y)  */
-ENTRY (__muldd3)
-	dmul	fp1,fp1,fp2
-	blr
-	END (__muldd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/mulsd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/mulsd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Decimal Floating Point 32-bit multiply.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal32 __mulsd3 (__decimal32 x, __decimal32 y)  */
-ENTRY (__mulsd3)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dmul	fp1,fp1,fp2
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__mulsd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/multd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/multd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point 128-bit multiply.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal128 __multd3 (__decimal128 x, __decimal128 y)  */
-ENTRY (__multd3)
-	dmulq	fp2,fp2,fp4
-	blr
-	END (__multd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/nedd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/nedd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-/* Decimal Floating Point 64-bit compare !=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __nedd2 (__decimal64 x, __decimal64 y)  */
-ENTRY (__nedd2)
-	dcmpu	cr0,fp1,fp2 	/* if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	bunlr	cr0
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__nedd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/nesd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/nesd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,34 +0,0 @@
-/* Decimal Floating Point 32-bit compare !=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __nesd2 (__decimal32 x, __decimal32 y)  */
-ENTRY (__nesd2)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dcmpu	cr0,fp1,fp2 	/* if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	bunlr	cr0
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__nesd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/netd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/netd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-/* Decimal Floating Point 128-bit compare !=.  P6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __netd2 (__decimal128 x, __decimal128 y)  */
-ENTRY (__netd2)
-	dcmpuq	cr0,fp2,fp4 	/* if ((x == y) && !unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	beqlr	cr0		/* else	 */
-	bunlr	cr0
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__netd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/subdd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/subdd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point 64-bit substract.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal64 __subdd3 (__decimal64 x, __decimal64 y)  */
-ENTRY (__subdd3)
-	dsub	fp1,fp1,fp2
-	blr
-	END (__subdd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/subsd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/subsd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-/* Decimal Floating Point 32-bit subtract.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal32 __subsd3 (__decimal32 x, __decimal32 y)  */
-ENTRY (__subsd3)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dsub	fp1,fp1,fp2
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__subsd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/subtd3.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/subtd3.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* Decimal Floating Point 128-bit subtract.  POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal128 __subtd3 (__decimal128 x, __decimal128 y)  */
-ENTRY (__subtd3)
-	dsubq	fp2,fp2,fp4
-	blr
-	END (__subtd3)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/truncddsd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/truncddsd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-/* Decimal Floating Point truncate 64-bit to 32-bit.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal32 __truncddsd2 (__decimal64 x)  */
-ENTRY (__truncddsd2)
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__truncddsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/trunctddd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/trunctddd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-/* Decimal Floating Point truncate 128-bit to 64-bit.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal64 __trunctddd2 (__decimal128 x)  */
-ENTRY (__trunctddd2)
-	drdpq	fp1,fp2	/* Round result to __decimal64. */
-	blr
-	END (__trunctddd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/trunctdsd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/trunctdsd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,30 +0,0 @@
-/* Decimal Floating Point truncate 128-bit to 32-bit.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* __decimal32 __trunctdsd2 (__decimal128 x)  */
-ENTRY (__trunctdsd2)
-	drdpq	fp1,fp2	/* Round result to __decimal64. */
-	drsp	fp1,fp1	/* Round result to __decimal32. */
-	blr
-	END (__trunctdsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/unorddd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/unorddd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-/* Decimal Floating Point 64-bit unordered compare.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __unorddd2 (__decimal64 x, __decimal64 y)  */
-ENTRY (__unorddd2)
-	dcmpu	cr0,fp1,fp2 	/* if (!unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	bnulr+	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__unorddd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/unordsd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/unordsd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,34 +0,0 @@
-/* Decimal Floating Point 32-bit unordered compare.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __unordsd2 (__decimal32 x, __decimal32 y)  */
-ENTRY (__unordsd2)
-	dctdp	fp1,fp1	/* Convert x to __decimal64. */
-	dctdp	fp2,fp2	/* Convert y to __decimal64. */
-	dcmpu	cr0,fp1,fp2 	/* if (!unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	bnulr+	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__unordsd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/unordtd2.S
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/unordtd2.S	2008-08-28 17:22:33.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-/* Decimal Floating Point 128-bit unordered compare.
-   POWER6 PowerPC64 version.
-   Copyright (C) 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
-   MA 02110-1301 USA  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.machine	"power6"
-/* int __unordtd2 (__decimal128 x, __decimal128 y)  */
-ENTRY (__unordtd2)
-	dcmpuq	cr0,fp2,fp4 	/* if (!unordered(x,y)) */
-	li	r3, 0		/*   return 0  */
-	bnulr+	cr0		/* else	 */
-	li	r3, 1		/*   return 1  */
-	blr
-	END (__unordtd2)
Index: dfp/sysdeps/powerpc/powerpc64/power6/fpu/Versions
===================================================================
--- dfp/sysdeps/powerpc/powerpc64/power6/fpu/Versions.orig	2008-08-28 17:22:33.000000000 +0200
+++ dfp/sysdeps/powerpc/powerpc64/power6/fpu/Versions	2008-08-28 17:22:35.000000000 +0200
@@ -1,21 +1,67 @@
 libdfp {
   GLIBC_2.7 {
-    __addsd3; __adddd3; __addtd3;
-    __subsd3; __subdd3; __subtd3;
-    __mulsd3; __muldd3; __multd3;
-    __divsd3; __divdd3; __divtd3;
-    __extendsddd2; __extendsdtd2; __extendddtd2;
-    __trunctdsd2; __truncddsd2; __trunctddd2;
-    __unordsd2; __unorddd2; __unordtd2;
-    __eqsd2; __eqdd2; __eqtd2; __nesd2; __nedd2; __netd2;
-    __gesd2; __gedd2; __getd2; __gtsd2; __gtdd2; __gttd2;
-    __ltsd2; __ltdd2; __lttd2; __lesd2; __ledd2; __letd2;
-    __fixsdsi; __fixddsi; __fixtdsi; __fixsddi; __fixdddi; __fixtddi;
-    __fixunssdsi; __fixunsddsi; __fixunstdsi;
-    __fixunssddi; __fixunsdddi; __fixunstddi;
-    __floatsisd; __floatsidd; __floatsitd;
-    __floatdisd; __floatdidd; __floatditd;
-    __floatunssisd; __floatunssidd; __floatunssitd;
-    __floatunsdisd; __floatunsdidd; __floatunsditd;
+    __dpd_adddd3;
+    __dpd_addsd3;
+    __dpd_addtd3;
+    __dpd_divdd3;
+    __dpd_divsd3;
+    __dpd_divtd3;
+    __dpd_eqdd2;
+    __dpd_eqsd2;
+    __dpd_eqtd2;
+    __dpd_extendddtd2;
+    __dpd_extendsddd2;
+    __dpd_extendsdtd2;
+    __dpd_fixdddi;
+    __dpd_fixddsi;
+    __dpd_fixsddi;
+    __dpd_fixsdsi;
+    __dpd_fixtddi;
+    __dpd_fixtdsi;
+    __dpd_fixunsdddi;
+    __dpd_fixunsddsi;
+    __dpd_fixunssddi;
+    __dpd_fixunssdsi;
+    __dpd_fixunstddi;
+    __dpd_fixunstdsi;
+    __dpd_floatdidd;
+    __dpd_floatdisd;
+    __dpd_floatditd;
+    __dpd_floatsidd;
+    __dpd_floatsisd;
+    __dpd_floatsitd;
+    __dpd_floatunsdidd;
+    __dpd_floatunsdisd;
+    __dpd_floatunsditd;
+    __dpd_floatunssidd;
+    __dpd_floatunssisd;
+    __dpd_floatunssitd;
+    __dpd_gedd2;
+    __dpd_gesd2;
+    __dpd_getd2;
+    __dpd_gtdd2;
+    __dpd_gtsd2;
+    __dpd_gttd2;
+    __dpd_ledd2;
+    __dpd_lesd2;
+    __dpd_letd2;
+    __dpd_ltdd2;
+    __dpd_ltsd2;
+    __dpd_lttd2;
+    __dpd_muldd3;
+    __dpd_mulsd3;
+    __dpd_multd3;
+    __dpd_nedd2;
+    __dpd_nesd2;
+    __dpd_netd2;
+    __dpd_subdd3;
+    __dpd_subsd3;
+    __dpd_subtd3;
+    __dpd_truncddsd2;
+    __dpd_trunctddd2;
+    __dpd_trunctdsd2;
+    __dpd_unorddd2;
+    __dpd_unordsd2;
+    __dpd_unordtd2;
   }
 }