linux_dsm_epyc7002/arch/mips/math-emu
Maciej W. Rozycki 9ab4471c9f 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>
2015-04-08 01:10:09 +02:00
..
cp1emu.c MIPS: math-emu: Correct delay-slot exception propagation 2015-04-08 01:10:09 +02:00
dp_add.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
dp_cmp.c MIPS: math-emu: Remove redundant code from NaN comparison 2015-04-08 01:09:38 +02:00
dp_div.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
dp_fint.c MIPS: math-emu: Cleanup coding style. 2014-05-23 15:11:15 +02:00
dp_flong.c MIPS: math-emu: Cleanup coding style. 2014-05-23 15:11:15 +02:00
dp_fsp.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
dp_mul.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
dp_simple.c MIPS: math-emu: Cleanup coding style. 2014-05-23 15:11:15 +02:00
dp_sqrt.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
dp_sub.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
dp_tint.c MIPS: math-emu: Switch to using the MIPS rounding modes. 2014-05-23 15:12:38 +02:00
dp_tlong.c MIPS: math-emu: Switch to using the MIPS rounding modes. 2014-05-23 15:12:38 +02:00
dsemul.c MIPS: math-emu: Correct delay-slot exception propagation 2015-04-08 01:10:09 +02:00
ieee754.c MIPS: math-emu: Reduce code duplication. 2014-06-26 10:47:55 +01:00
ieee754.h MIPS: math-emu: Remove dead comparison helpers 2015-04-08 01:09:42 +02:00
ieee754d.c MIPS: math-emu: Cleanup coding style. 2014-05-23 15:11:15 +02:00
ieee754dp.c MIPS: math-emu: Make NaN classifiers static 2015-04-08 01:09:47 +02:00
ieee754dp.h MIPS: math-emu: Make NaN classifiers static 2015-04-08 01:09:47 +02:00
ieee754int.h MIPS: math-emu: Optimise NaN handling in comparisons 2015-04-08 01:09:35 +02:00
ieee754sp.c MIPS: math-emu: Make NaN classifiers static 2015-04-08 01:09:47 +02:00
ieee754sp.h MIPS: math-emu: Make NaN classifiers static 2015-04-08 01:09:47 +02:00
Makefile MIPS: math-emu: Inline fpu_emulator_init_fpu() 2014-05-23 15:12:37 +02:00
me-debugfs.c MIPS: Add FPU emulator counter for emulated delay slots. 2015-04-01 17:21:57 +02:00
sp_add.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
sp_cmp.c MIPS: math-emu: Remove redundant code from NaN comparison 2015-04-08 01:09:38 +02:00
sp_div.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
sp_fdp.c MIPS: math-emu: Optimise qNaN handling in `ieee754sp_fdp' 2015-04-08 01:09:44 +02:00
sp_fint.c MIPS: math-emu: Cleanup coding style. 2014-05-23 15:11:15 +02:00
sp_flong.c MIPS: math-emu: Cleanup coding style. 2014-05-23 15:11:15 +02:00
sp_mul.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
sp_simple.c MIPS: math-emu: Cleanup coding style. 2014-05-23 15:11:15 +02:00
sp_sqrt.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
sp_sub.c MIPS: math-emu: Reinstate sNaN quieting handlers 2015-04-08 01:09:31 +02:00
sp_tint.c MIPS: math-emu: Switch to using the MIPS rounding modes. 2014-05-23 15:12:38 +02:00
sp_tlong.c MIPS: math-emu: Switch to using the MIPS rounding modes. 2014-05-23 15:12:38 +02:00