about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--soft-fp/op-common.h5
2 files changed, 4 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index c68ea67448..07f478a227 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2015-05-19  Richard Henderson  <rth@redhat.com>
 
+	* soft-fp/op-common.h (_FP_FROM_INT): Don't write to R.
+
 	* sysdeps/alpha/fpu/libm-test-ulps: Update.
 
 2015-05-19  Siddhesh Poyarekar  <siddhesh@redhat.com>
diff --git a/soft-fp/op-common.h b/soft-fp/op-common.h
index 9c1c5e35f2..080ef0e9b9 100644
--- a/soft-fp/op-common.h
+++ b/soft-fp/op-common.h
@@ -1794,12 +1794,11 @@
       __label__ pack_semiraw;						\
       if (r)								\
 	{								\
-	  rtype _FP_FROM_INT_ur;					\
+	  rtype _FP_FROM_INT_ur = (r);					\
 									\
 	  if ((X##_s = ((r) < 0)))					\
-	    (r) = -(rtype) (r);						\
+	    _FP_FROM_INT_ur = -_FP_FROM_INT_ur;				\
 									\
-	  _FP_FROM_INT_ur = (rtype) (r);				\
 	  _FP_STATIC_ASSERT ((rsize) <= 2 * _FP_W_TYPE_SIZE,		\
 			     "rsize too large");			\
 	  (void) (((rsize) <= _FP_W_TYPE_SIZE)				\