openwrt/target/linux/generic-2.4/patches/115-branch_emul_fix.patch

14 lines
482 B
Diff

Index: linux-2.4.35.4/arch/mips/kernel/branch.c
===================================================================
--- linux-2.4.35.4.orig/arch/mips/kernel/branch.c
+++ linux-2.4.35.4/arch/mips/kernel/branch.c
@@ -170,7 +170,7 @@ int __compute_return_epc(struct pt_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))