[MIPS] Check FCSR for pending interrupts, alternative version
Commit 6d6671066a
is incomplete and misses
non-r4k CPUs. This patch reverts the commit and fixes in other way.
o Do FCSR checking in caller of restore_fp_context.
o Send SIGFPE if the signal handler set any FPU exception bits.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
f1dbf8e718
commit
c6a2f46793
@@ -114,14 +114,6 @@ LEAF(_save_fp_context32)
|
||||
*/
|
||||
LEAF(_restore_fp_context)
|
||||
EX lw t0, SC_FPC_CSR(a0)
|
||||
|
||||
/* Fail if the CSR has exceptions pending */
|
||||
srl t1, t0, 5
|
||||
and t1, t0
|
||||
andi t1, 0x1f << 7
|
||||
bnez t1, fault
|
||||
nop
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
EX ldc1 $f1, SC_FPREGS+8(a0)
|
||||
EX ldc1 $f3, SC_FPREGS+24(a0)
|
||||
@@ -165,14 +157,6 @@ LEAF(_restore_fp_context)
|
||||
LEAF(_restore_fp_context32)
|
||||
/* Restore an o32 sigcontext. */
|
||||
EX lw t0, SC32_FPC_CSR(a0)
|
||||
|
||||
/* Fail if the CSR has exceptions pending */
|
||||
srl t1, t0, 5
|
||||
and t1, t0
|
||||
andi t1, 0x1f << 7
|
||||
bnez t1, fault
|
||||
nop
|
||||
|
||||
EX ldc1 $f0, SC32_FPREGS+0(a0)
|
||||
EX ldc1 $f2, SC32_FPREGS+16(a0)
|
||||
EX ldc1 $f4, SC32_FPREGS+32(a0)
|
||||
|
Reference in New Issue
Block a user