Loading arch/mips/math-emu/cp1emu.c +9 −10 Original line number Diff line number Diff line Loading @@ -205,7 +205,7 @@ static int isBranchInstr(mips_instruction * i) static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) { mips_instruction ir; void * emulpc, *contpc; unsigned long emulpc, contpc; unsigned int cond; if (get_user(ir, (mips_instruction __user *) xcp->cp0_epc)) { Loading @@ -230,7 +230,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) * Linux MIPS branch emulator operates on context, updating the * cp0_epc. */ emulpc = (void *) (xcp->cp0_epc + 4); /* Snapshot emulation target */ emulpc = xcp->cp0_epc + 4; /* Snapshot emulation target */ if (__compute_return_epc(xcp)) { #ifdef CP1DBG Loading @@ -244,12 +244,12 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) return SIGBUS; } /* __compute_return_epc() will have updated cp0_epc */ contpc = (void *) xcp->cp0_epc; contpc = xcp->cp0_epc; /* In order not to confuse ptrace() et al, tweak context */ xcp->cp0_epc = (unsigned long) emulpc - 4; xcp->cp0_epc = emulpc - 4; } else { emulpc = (void *) xcp->cp0_epc; contpc = (void *) (xcp->cp0_epc + 4); emulpc = xcp->cp0_epc; contpc = xcp->cp0_epc + 4; } emul: Loading Loading @@ -427,8 +427,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) * instruction */ xcp->cp0_epc += 4; contpc = (void *) (xcp->cp0_epc + contpc = (xcp->cp0_epc + (MIPSInst_SIMM(ir) << 2)); if (get_user(ir, Loading Loading @@ -462,7 +461,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) * Single step the non-cp1 * instruction in the dslot */ return mips_dsemul(xcp, ir, (unsigned long) contpc); return mips_dsemul(xcp, ir, contpc); } else { /* branch not taken */ Loading Loading @@ -521,7 +520,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) } /* we did it !! */ xcp->cp0_epc = (unsigned long) contpc; xcp->cp0_epc = contpc; xcp->cp0_cause &= ~CAUSEF_BD; return 0; Loading Loading
arch/mips/math-emu/cp1emu.c +9 −10 Original line number Diff line number Diff line Loading @@ -205,7 +205,7 @@ static int isBranchInstr(mips_instruction * i) static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) { mips_instruction ir; void * emulpc, *contpc; unsigned long emulpc, contpc; unsigned int cond; if (get_user(ir, (mips_instruction __user *) xcp->cp0_epc)) { Loading @@ -230,7 +230,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) * Linux MIPS branch emulator operates on context, updating the * cp0_epc. */ emulpc = (void *) (xcp->cp0_epc + 4); /* Snapshot emulation target */ emulpc = xcp->cp0_epc + 4; /* Snapshot emulation target */ if (__compute_return_epc(xcp)) { #ifdef CP1DBG Loading @@ -244,12 +244,12 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) return SIGBUS; } /* __compute_return_epc() will have updated cp0_epc */ contpc = (void *) xcp->cp0_epc; contpc = xcp->cp0_epc; /* In order not to confuse ptrace() et al, tweak context */ xcp->cp0_epc = (unsigned long) emulpc - 4; xcp->cp0_epc = emulpc - 4; } else { emulpc = (void *) xcp->cp0_epc; contpc = (void *) (xcp->cp0_epc + 4); emulpc = xcp->cp0_epc; contpc = xcp->cp0_epc + 4; } emul: Loading Loading @@ -427,8 +427,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) * instruction */ xcp->cp0_epc += 4; contpc = (void *) (xcp->cp0_epc + contpc = (xcp->cp0_epc + (MIPSInst_SIMM(ir) << 2)); if (get_user(ir, Loading Loading @@ -462,7 +461,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) * Single step the non-cp1 * instruction in the dslot */ return mips_dsemul(xcp, ir, (unsigned long) contpc); return mips_dsemul(xcp, ir, contpc); } else { /* branch not taken */ Loading Loading @@ -521,7 +520,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx) } /* we did it !! */ xcp->cp0_epc = (unsigned long) contpc; xcp->cp0_epc = contpc; xcp->cp0_cause &= ~CAUSEF_BD; return 0; Loading