about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/powerpc/fpu/math_private.h4
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e87fc225fb..a6b2d94c2d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-20  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
+
+	* sysdeps/powerpc/fpu/math_private.h [__copysignf]: Fix copysign macro
+	optimization when used with float constants.
+
 2014-05-20  Aurelien Jarno  <aurelien@aurel32.net>
 
 	[BZ #16915]
diff --git a/sysdeps/powerpc/fpu/math_private.h b/sysdeps/powerpc/fpu/math_private.h
index dde153d37a..1ec48810fa 100644
--- a/sysdeps/powerpc/fpu/math_private.h
+++ b/sysdeps/powerpc/fpu/math_private.h
@@ -166,11 +166,13 @@ __ieee754_sqrtf (float __x)
 # ifndef __copysignf
 #  define __copysignf(x, y)		\
     ({ float __z;			\
+       float __x = x;			\
+       float __y = y;			\
      __asm __volatile (			\
 	"	fcpsgn %0,%1,%2\n"	\
 	"	frsp %0,%0\n"		\
 		: "=f" (__z)		\
-		: "f" (y), "f" (x));	\
+		: "f" (__y), "f" (__x));\
      __z; })
 # endif