diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | soft-fp/op-common.h | 4 |
2 files changed, 8 insertions, 2 deletions
@@ -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; \ |