2006-09-20 Steven Munroe [BZ #2749] * sysdeps/powerpc/nofpu/Versions: Export __fmasf4 and __fmadf4. * sysdeps/powerpc/nofpu/s_fma.c: New file. * sysdeps/powerpc/nofpu/s_fmaf.c: New file. diff -urN libc24-ppc64-20060830/ports/sysdeps/powerpc/nofpu/Versions libc24/ports/sysdeps/powerpc/nofpu/Versions --- libc24-ppc64-20060830/ports/sysdeps/powerpc/nofpu/Versions 2006-09-15 16:43:22.000000000 -0500 +++ libc24/ports/sysdeps/powerpc/nofpu/Versions 2006-09-22 17:53:50.000000000 -0500 @@ -13,5 +13,6 @@ __floatundidf; __floatundisf; __floatunsidf; __floatunsisf; __unorddf2; __unordsf2; + __fmasf4; __fmadf4; } } diff -urN libc24-ppc64-20060830/ports/sysdeps/powerpc/nofpu/s_fma.c libc24/ports/sysdeps/powerpc/nofpu/s_fma.c --- libc24-ppc64-20060830/ports/sysdeps/powerpc/nofpu/s_fma.c Wed Dec 31 18:00:00 1969 +++ libc24/ports/sysdeps/powerpc/nofpu/s_fma.c Fri Sep 22 17:27:37 2006 @@ -0,0 +1,36 @@ +/* soft-fp x * y + z as ternary operation. + Copyright (C) 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Steven Munroe , 2006. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + +extern double __fmadf4 (double, double, double); + +/* Compute floating point multiply-add with higher (quad) precision. */ +double +__fma (double a, double b, double c) +{ + return __fmadf4 (a, b, c); +} +weak_alias (__fma, fma) + +#ifdef NO_LONG_DOUBLE +strong_alias (__fma, __fmal) +weak_alias (__fmal, fmal) +#endif diff -urN libc24-ppc64-20060830/ports/sysdeps/powerpc/nofpu/s_fmaf.c libc24/ports/sysdeps/powerpc/nofpu/s_fmaf.c --- libc24-ppc64-20060830/ports/sysdeps/powerpc/nofpu/s_fmaf.c Wed Dec 31 18:00:00 1969 +++ libc24/ports/sysdeps/powerpc/nofpu/s_fmaf.c Tue Sep 26 15:44:26 2006 @@ -0,0 +1,31 @@ +/* soft-fp x * y + z as ternary operation. + Copyright (C) 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Steven Munroe , 2006. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + +extern float __fmasf4 (float, float, float); + +/* Compute floating point multiply-add with higher (double) precision. */ +float +__fmaf (float a, float b, float c) +{ + return __fmasf4 (a, b, c); +} +weak_alias (__fmaf, fmaf)