I had already merged this, when I realized that the patch headers
are wrong on this.

I'm not sure how you prepared and sent this, but make sure to not
modify the shortlog, and put the "commit <> upstream", after the
upstream shortlog.

Bruce

n 01/18/2018 01:04 AM, Hongzhi.Song wrote:
From: Manuel Lauss <[email protected]>

commit 8535f2ba0a9b971df62a5890699b9dfe2e0d5580 upstream

MIPS: math-emu: do not use bools for arithmetic

GCC-7 complains about a boolean value being used with an arithmetic
AND:

arch/mips/math-emu/cp1emu.c: In function 'cop1Emulate':
arch/mips/math-emu/cp1emu.c:838:14: warning: '~' on a boolean expression 
[-Wbool-operation]
   fpr = (x) & ~(cop1_64bit(xcp) == 0);    \
               ^
arch/mips/math-emu/cp1emu.c:1068:3: note: in expansion of macro 'DITOREG'
    DITOREG(dval, MIPSInst_RT(ir));
    ^~~~~~~
arch/mips/math-emu/cp1emu.c:838:14: note: did you mean to use logical not?
   fpr = (x) & ~(cop1_64bit(xcp) == 0);    \

Since cop1_64bit() returns and int, just flip the LSB.

Suggested-by: Maciej W. Rozycki <[email protected]>
Signed-off-by: Manuel Lauss <[email protected]>
Reviewed-by: Maciej W. Rozycki <[email protected]>
Cc: [email protected]
Patchwork: https://patchwork.linux-mips.org/patch/17058/
Signed-off-by: Ralf Baechle <[email protected]>

Signed-off-by: Hongzhi Song <[email protected]>
---
  arch/mips/math-emu/cp1emu.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/mips/math-emu/cp1emu.c b/arch/mips/math-emu/cp1emu.c
index add2320..ad20b69 100644
--- a/arch/mips/math-emu/cp1emu.c
+++ b/arch/mips/math-emu/cp1emu.c
@@ -830,12 +830,12 @@ do {                                                      
                \
  } while (0)
#define DIFROMREG(di, x) \
-       ((di) = get_fpr64(&ctx->fpr[(x) & ~(cop1_64bit(xcp) == 0)], 0))
+       ((di) = get_fpr64(&ctx->fpr[(x) & ~(cop1_64bit(xcp) ^ 1)], 0))
#define DITOREG(di, x) \
  do {                                                                  \
        unsigned fpr, i;                                                \
-       fpr = (x) & ~(cop1_64bit(xcp) == 0);                                \
+       fpr = (x) & ~(cop1_64bit(xcp) ^ 1);                         \
        set_fpr64(&ctx->fpr[fpr], 0, di);                                \
        for (i = 1; i < ARRAY_SIZE(ctx->fpr[x].val64); i++)               \
                set_fpr64(&ctx->fpr[fpr], i, 0);                 \


--
_______________________________________________
linux-yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to