MIPS: math-emu: <MADDF|MSUBF>.<D|S>: Clean up "maddf_flags" enumeration
authorAleksandar Markovic <aleksandar.markovic@imgtec.com>
Thu, 27 Jul 2017 16:08:57 +0000 (18:08 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 29 Aug 2017 13:21:56 +0000 (15:21 +0200)
Fix definition and usage of "maddf_flags" enumeration. Avoid duplicate
definition and apply more common capitalization.

This patch does not change any scenario. It just makes MADDF and
MSUBF emulation code more readable and easier to maintain, and
hopefully prevents future bugs as well.

Signed-off-by: Miodrag Dinic <miodrag.dinic@imgtec.com>
Signed-off-by: Goran Ferenc <goran.ferenc@imgtec.com>
Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Cc: Bo Hu <bohu@google.com>
Cc: Douglas Leung <douglas.leung@imgtec.com>
Cc: Jin Qian <jinqian@google.com>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: Petar Jovanovic <petar.jovanovic@imgtec.com>
Cc: Raghu Gandham <raghu.gandham@imgtec.com>
Cc: <stable@vger.kernel.org> # 4.7+
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/16889/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/math-emu/dp_maddf.c
arch/mips/math-emu/ieee754int.h
arch/mips/math-emu/sp_maddf.c

index c38fe1bde8753b2c7b6d79673ceb699e02e5ec27..e799fc826b0c7e99b1f2ee233438ce52fc040322 100644 (file)
@@ -14,9 +14,6 @@
 
 #include "ieee754dp.h"
 
-enum maddf_flags {
-       maddf_negate_product    = 1 << 0,
-};
 
 static union ieee754dp _dp_maddf(union ieee754dp z, union ieee754dp x,
                                 union ieee754dp y, enum maddf_flags flags)
@@ -85,8 +82,8 @@ static union ieee754dp _dp_maddf(union ieee754dp z, union ieee754dp x,
        case CLPAIR(IEEE754_CLASS_INF, IEEE754_CLASS_DNORM):
        case CLPAIR(IEEE754_CLASS_INF, IEEE754_CLASS_INF):
                if ((zc == IEEE754_CLASS_INF) &&
-                   ((!(flags & maddf_negate_product) && (zs != (xs ^ ys))) ||
-                    ((flags & maddf_negate_product) && (zs == (xs ^ ys))))) {
+                   ((!(flags & MADDF_NEGATE_PRODUCT) && (zs != (xs ^ ys))) ||
+                    ((flags & MADDF_NEGATE_PRODUCT) && (zs == (xs ^ ys))))) {
                        /*
                         * Cases of addition of infinities with opposite signs
                         * or subtraction of infinities with same signs.
@@ -99,9 +96,9 @@ static union ieee754dp _dp_maddf(union ieee754dp z, union ieee754dp x,
                 * same sign as product (x*y) (in case of MADDF.D instruction)
                 * or product -(x*y) (in MSUBF.D case). The result must be an
                 * infinity, and its sign is determined only by the value of
-                * (flags & maddf_negate_product) and the signs of x and y.
+                * (flags & MADDF_NEGATE_PRODUCT) and the signs of x and y.
                 */
-               if (flags & maddf_negate_product)
+               if (flags & MADDF_NEGATE_PRODUCT)
                        return ieee754dp_inf(1 ^ (xs ^ ys));
                else
                        return ieee754dp_inf(xs ^ ys);
@@ -115,9 +112,9 @@ static union ieee754dp _dp_maddf(union ieee754dp z, union ieee754dp x,
                        return ieee754dp_inf(zs);
                if (zc == IEEE754_CLASS_ZERO) {
                        /* Handle cases +0 + (-0) and similar ones. */
-                       if ((!(flags & maddf_negate_product)
+                       if ((!(flags & MADDF_NEGATE_PRODUCT)
                                        && (zs == (xs ^ ys))) ||
-                           ((flags & maddf_negate_product)
+                           ((flags & MADDF_NEGATE_PRODUCT)
                                        && (zs != (xs ^ ys))))
                                /*
                                 * Cases of addition of zeros of equal signs
@@ -167,7 +164,7 @@ static union ieee754dp _dp_maddf(union ieee754dp z, union ieee754dp x,
 
        re = xe + ye;
        rs = xs ^ ys;
-       if (flags & maddf_negate_product)
+       if (flags & MADDF_NEGATE_PRODUCT)
                rs ^= 1;
 
        /* shunt to top of word */
@@ -291,5 +288,5 @@ union ieee754dp ieee754dp_maddf(union ieee754dp z, union ieee754dp x,
 union ieee754dp ieee754dp_msubf(union ieee754dp z, union ieee754dp x,
                                union ieee754dp y)
 {
-       return _dp_maddf(z, x, y, maddf_negate_product);
+       return _dp_maddf(z, x, y, MADDF_NEGATE_PRODUCT);
 }
index 8bc2f6963324de776a3ab66ec33638e2b8598211..dd2071f430e0bd180dce8e79bbf00df77b7318dc 100644 (file)
 
 #define CLPAIR(x, y)   ((x)*6+(y))
 
+enum maddf_flags {
+       MADDF_NEGATE_PRODUCT    = 1 << 0,
+};
+
 static inline void ieee754_clearcx(void)
 {
        ieee754_csr.cx = 0;
index 4241ec19df1253fdea51273fae4f7ee09d5a02d0..07f5a9bb131273d5c5462edca5a513794df98ae2 100644 (file)
@@ -14,9 +14,6 @@
 
 #include "ieee754sp.h"
 
-enum maddf_flags {
-       maddf_negate_product    = 1 << 0,
-};
 
 static union ieee754sp _sp_maddf(union ieee754sp z, union ieee754sp x,
                                 union ieee754sp y, enum maddf_flags flags)
@@ -86,8 +83,8 @@ static union ieee754sp _sp_maddf(union ieee754sp z, union ieee754sp x,
        case CLPAIR(IEEE754_CLASS_INF, IEEE754_CLASS_DNORM):
        case CLPAIR(IEEE754_CLASS_INF, IEEE754_CLASS_INF):
                if ((zc == IEEE754_CLASS_INF) &&
-                   ((!(flags & maddf_negate_product) && (zs != (xs ^ ys))) ||
-                    ((flags & maddf_negate_product) && (zs == (xs ^ ys))))) {
+                   ((!(flags & MADDF_NEGATE_PRODUCT) && (zs != (xs ^ ys))) ||
+                    ((flags & MADDF_NEGATE_PRODUCT) && (zs == (xs ^ ys))))) {
                        /*
                         * Cases of addition of infinities with opposite signs
                         * or subtraction of infinities with same signs.
@@ -100,9 +97,9 @@ static union ieee754sp _sp_maddf(union ieee754sp z, union ieee754sp x,
                 * same sign as product (x*y) (in case of MADDF.D instruction)
                 * or product -(x*y) (in MSUBF.D case). The result must be an
                 * infinity, and its sign is determined only by the value of
-                * (flags & maddf_negate_product) and the signs of x and y.
+                * (flags & MADDF_NEGATE_PRODUCT) and the signs of x and y.
                 */
-               if (flags & maddf_negate_product)
+               if (flags & MADDF_NEGATE_PRODUCT)
                        return ieee754sp_inf(1 ^ (xs ^ ys));
                else
                        return ieee754sp_inf(xs ^ ys);
@@ -116,9 +113,9 @@ static union ieee754sp _sp_maddf(union ieee754sp z, union ieee754sp x,
                        return ieee754sp_inf(zs);
                if (zc == IEEE754_CLASS_ZERO) {
                        /* Handle cases +0 + (-0) and similar ones. */
-                       if ((!(flags & maddf_negate_product)
+                       if ((!(flags & MADDF_NEGATE_PRODUCT)
                                        && (zs == (xs ^ ys))) ||
-                           ((flags & maddf_negate_product)
+                           ((flags & MADDF_NEGATE_PRODUCT)
                                        && (zs != (xs ^ ys))))
                                /*
                                 * Cases of addition of zeros of equal signs
@@ -170,7 +167,7 @@ static union ieee754sp _sp_maddf(union ieee754sp z, union ieee754sp x,
 
        re = xe + ye;
        rs = xs ^ ys;
-       if (flags & maddf_negate_product)
+       if (flags & MADDF_NEGATE_PRODUCT)
                rs ^= 1;
 
        /* shunt to top of word */
@@ -287,5 +284,5 @@ union ieee754sp ieee754sp_maddf(union ieee754sp z, union ieee754sp x,
 union ieee754sp ieee754sp_msubf(union ieee754sp z, union ieee754sp x,
                                union ieee754sp y)
 {
-       return _sp_maddf(z, x, y, maddf_negate_product);
+       return _sp_maddf(z, x, y, MADDF_NEGATE_PRODUCT);
 }