Searched hist:"9 ab4471c9f1b3e986f4d429951492f736c888ff6" (Results 1 – 2 of 2) sorted by relevance
/linux/arch/mips/math-emu/ |
H A D | dsemul.c | diff 9ab4471c9f1b3e986f4d429951492f736c888ff6 Sat Apr 04 00:26:56 CEST 2015 Maciej W. Rozycki <macro@linux-mips.org> MIPS: math-emu: Correct delay-slot exception propagation
Restore EPC at the branch whose delay slot is emulated if the delay-slot instruction signals. This is so that code in `fpu_emulator_cop1Handler' does not see EPC having advanced and mistakenly successfully resume userland execution from the location at the branch target in that case. Restoring EPC guarantees an immediate exit from the emulation loop and if EPC hasn't advanced at all since entering the loop, also issuing the signal reported by the delay-slot instruction.
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9701/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
H A D | cp1emu.c | diff 9ab4471c9f1b3e986f4d429951492f736c888ff6 Sat Apr 04 00:26:56 CEST 2015 Maciej W. Rozycki <macro@linux-mips.org> MIPS: math-emu: Correct delay-slot exception propagation
Restore EPC at the branch whose delay slot is emulated if the delay-slot instruction signals. This is so that code in `fpu_emulator_cop1Handler' does not see EPC having advanced and mistakenly successfully resume userland execution from the location at the branch target in that case. Restoring EPC guarantees an immediate exit from the emulation loop and if EPC hasn't advanced at all since entering the loop, also issuing the signal reported by the delay-slot instruction.
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9701/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|