aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--soft-fp/op-common.h4
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 2dfde80..80707a2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-12-07 Richard Henderson <rth@redhat.com>
+
+ * soft-fp/op-common.h (_FP_MUL): Pull computation of R_e from the
+ normal/normal case to before the switch.
+ (_FP_DIV): Likewise.
+
2012-12-06 Carlos O'Donell <carlos@systemhalted.org>
Mike Frysinger <vapier@gentoo.org>
diff --git a/soft-fp/op-common.h b/soft-fp/op-common.h
index 8855ad3..6e81b13 100644
--- a/soft-fp/op-common.h
+++ b/soft-fp/op-common.h
@@ -748,11 +748,11 @@ do { \
#define _FP_MUL(fs, wc, R, X, Y) \
do { \
R##_s = X##_s ^ Y##_s; \
+ R##_e = X##_e + Y##_e + 1; \
switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
{ \
case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
R##_c = FP_CLS_NORMAL; \
- R##_e = X##_e + Y##_e + 1; \
\
_FP_MUL_MEAT_##fs(R,X,Y); \
\
@@ -811,11 +811,11 @@ do { \
#define _FP_DIV(fs, wc, R, X, Y) \
do { \
R##_s = X##_s ^ Y##_s; \
+ R##_e = X##_e - Y##_e; \
switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
{ \
case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
R##_c = FP_CLS_NORMAL; \
- R##_e = X##_e - Y##_e; \
\
_FP_DIV_MEAT_##fs(R,X,Y); \
break; \