MIPS: microMIPS: Fix incorrect mask for jump immediate.
authorSteven J. Hill <Steven.Hill@imgtec.com>
Mon, 25 Mar 2013 17:07:40 +0000 (12:07 -0500)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 9 May 2013 15:55:18 +0000 (17:55 +0200)
Jump or branch target addresses have the first bit set. The
original mask did not take this into account and will cause
a field overflow warning for the target address when a jump
immediate instruction is built.

Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
arch/mips/mm/uasm-micromips.c

index 476d50c..162ee6d 100644 (file)
@@ -130,7 +130,8 @@ static inline __uasminit u32 build_bimm(s32 arg)
 
 static inline __uasminit u32 build_jimm(u32 arg)
 {
-       WARN(arg & ~(JIMM_MASK << 2),
+
+       WARN(arg & ~((JIMM_MASK << 2) | 1),
             KERN_WARNING "Micro-assembler field overflow\n");
 
        return (arg >> 1) & JIMM_MASK;