aboutsummaryrefslogtreecommitdiff
path: root/arch/nds32/math-emu/fpuemu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/nds32/math-emu/fpuemu.c')
-rw-r--r--arch/nds32/math-emu/fpuemu.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/nds32/math-emu/fpuemu.c b/arch/nds32/math-emu/fpuemu.c
index 2a01333d6e5f..75cf1643fa78 100644
--- a/arch/nds32/math-emu/fpuemu.c
+++ b/arch/nds32/math-emu/fpuemu.c
@@ -304,7 +304,12 @@ static int fpu_emu(struct fpu_struct *fpu_reg, unsigned long insn)
/*
* If an exception is required, generate a tidy SIGFPE exception.
*/
+#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
+ if (((fpu_reg->fpcsr << 5) & fpu_reg->fpcsr & FPCSR_mskALLE_NO_UDFE) ||
+ ((fpu_reg->fpcsr & FPCSR_mskUDF) && (fpu_reg->UDF_trap)))
+#else
if ((fpu_reg->fpcsr << 5) & fpu_reg->fpcsr & FPCSR_mskALLE)
+#endif
return SIGFPE;
return 0;
}