|
@@ -688,21 +688,9 @@ int __compute_return_epc_for_insn(struct pt_regs *regs,
|
|
}
|
|
}
|
|
lose_fpu(1); /* Save FPU state for the emulator. */
|
|
lose_fpu(1); /* Save FPU state for the emulator. */
|
|
reg = insn.i_format.rt;
|
|
reg = insn.i_format.rt;
|
|
- bit = 0;
|
|
|
|
- switch (insn.i_format.rs) {
|
|
|
|
- case bc1eqz_op:
|
|
|
|
- /* Test bit 0 */
|
|
|
|
- if (get_fpr32(¤t->thread.fpu.fpr[reg], 0)
|
|
|
|
- & 0x1)
|
|
|
|
- bit = 1;
|
|
|
|
- break;
|
|
|
|
- case bc1nez_op:
|
|
|
|
- /* Test bit 0 */
|
|
|
|
- if (!(get_fpr32(¤t->thread.fpu.fpr[reg], 0)
|
|
|
|
- & 0x1))
|
|
|
|
- bit = 1;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ bit = get_fpr32(¤t->thread.fpu.fpr[reg], 0) & 0x1;
|
|
|
|
+ if (insn.i_format.rs == bc1eqz_op)
|
|
|
|
+ bit = !bit;
|
|
own_fpu(1);
|
|
own_fpu(1);
|
|
if (bit)
|
|
if (bit)
|
|
epc = epc + 4 +
|
|
epc = epc + 4 +
|