MIPS: Use per-mm page to execute branch delay slot instructions
[cascardo/linux.git] / arch / mips / math-emu / cp1emu.c
index d96e912..8afa090 100644 (file)
@@ -434,8 +434,8 @@ static int microMIPS32_to_MIPS32(union mips_instruction *insn_ptr)
  * a single subroutine should be used across both
  * modules.
  */
-static int isBranchInstr(struct pt_regs *regs, struct mm_decoded_insn dec_insn,
-                        unsigned long *contpc)
+int isBranchInstr(struct pt_regs *regs, struct mm_decoded_insn dec_insn,
+                 unsigned long *contpc)
 {
        union mips_instruction insn = (union mips_instruction)dec_insn.insn;
        unsigned int fcr31;
@@ -1268,7 +1268,7 @@ branch_common:
                                                 * instruction in the dslot.
                                                 */
                                                sig = mips_dsemul(xcp, ir,
-                                                                 contpc);
+                                                                 bcpc, contpc);
                                                if (sig < 0)
                                                        break;
                                                if (sig)
@@ -1323,7 +1323,7 @@ branch_common:
                                 * Single step the non-cp1
                                 * instruction in the dslot
                                 */
-                               sig = mips_dsemul(xcp, ir, contpc);
+                               sig = mips_dsemul(xcp, ir, bcpc, contpc);
                                if (sig < 0)
                                        break;
                                if (sig)