[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[patches] DFP branch: Add __dpd_ prefix to power/fpu files
- To: patches@xxxxxxxxxx, Peter Eberlein <eberlein@xxxxxxxxxx>, Ryan Arnold <ryanarn@xxxxxxxxxx>, Janis Johnson <janis@xxxxxxxxxx>
- Subject: [patches] DFP branch: Add __dpd_ prefix to power/fpu files
- From: Andreas Krebbel <krebbel@xxxxxxxxxxxxxxxxxx>
- Date: Thu, 28 Aug 2008 17:34:15 +0200
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;
}
}