Module Name: src
Committed By: tsutsui
Date: Thu Feb 24 16:49:15 UTC 2011
Modified Files:
src/sys/arch/mips/mips: fp.S
Log Message:
Resurrect silently removed lines in rev 1.37 that update FPU_CSR
in double's inexact or overflow cases.
Now the following tests are passed:
---
tp-start: t_except, 6
tc-start: masked_double
tc-end: masked_double, passed
:
tc-start: masked_long_double
tc-end: masked_long_double, passed
:
tp-start: t_subnormal, 2
tc-start: test_double
tc-end: test_double, passed
---
The following ones still fail:
---
tp-start: t_except, 6
:
tc-start: unmasked_double
tc-se:*** Check failed: /usr/src/tests/lib/libc/ieeefp/t_except.c:269: sicode
!= t->sicode
tc-end: unmasked_double, failed, 1 checks failed; see output for more details
tc-start: unmasked_float
tc-se:*** Check failed: /usr/src/tests/lib/libc/ieeefp/t_except.c:269: sicode
!= t->sicode
tc-end: unmasked_float, failed, 1 checks failed; see output for more details
tc-start: unmasked_long_double
tc-se:*** Check failed: /usr/src/tests/lib/libc/ieeefp/t_except.c:269: sicode
!= t->sicode
tc-end: unmasked_long_double, failed, 1 checks failed; see output for more
details
tp-end: t_except
:
tp-start: t_subnormal, 2
:
tc-start: test_float
tc-end: test_float, failed, Test program received signal 4 (core dumped)
tp-end: t_subnormal
---
- t_except unmasked failures are mentioned in PR port-mips/35327.
- t_subnormal float failure seems trap caused by a FP insn in BDslot
(I'm not sure if we can use TF_REG_CAUSE in trapframe to see BD bit)
To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/mips/mips/fp.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/mips/mips/fp.S
diff -u src/sys/arch/mips/mips/fp.S:1.38 src/sys/arch/mips/mips/fp.S:1.39
--- src/sys/arch/mips/mips/fp.S:1.38 Sun Feb 20 07:45:47 2011
+++ src/sys/arch/mips/mips/fp.S Thu Feb 24 16:49:15 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: fp.S,v 1.38 2011/02/20 07:45:47 matt Exp $ */
+/* $NetBSD: fp.S,v 1.39 2011/02/24 16:49:15 tsutsui Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -2593,6 +2593,8 @@
PTR_L v0, L_PCB(MIPS_CURLWP) # get pcb of current lwp
#nop
INT_S a2, PCB_FPREGS+FRAME_FSR(v0)
+#else
+ ctc1 a2, MIPS_FPU_CSR # save exceptions
#endif
b done