diff --git a/arch/mips/kernel/branch.c b/arch/mips/kernel/branch.c index 374de839558d58467c381a6384df6a634b506219..b6232d9033cb68c0e1a5a14cde042b83aa95161e 100644 --- a/arch/mips/kernel/branch.c +++ b/arch/mips/kernel/branch.c @@ -184,7 +184,7 @@ int __compute_return_epc(struct pt_regs *regs) bit = (insn.i_format.rt >> 2); bit += (bit != 0); bit += 23; - switch (insn.i_format.rt) { + switch (insn.i_format.rt & 3) { case 0: /* bc1f */ case 2: /* bc1fl */ if (~fcr31 & (1 << bit))