--- /dev/null
+--- linux.old/arch/mips/kernel/branch.c 2006-12-23 21:34:20.000000000 +0100
++++ linux.dev/arch/mips/kernel/branch.c 2007-01-24 18:05:34.000000000 +0100
+@@ -170,7 +170,7 @@
+ 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))