Module Name: src
Committed By: tsutsui
Date: Thu Feb 24 16:21:51 UTC 2011
Modified Files:
src/sys/arch/mips/mips: locore.S
Log Message:
- use correct address to fetch an instruction that causes FP trap
not in BDslot (broken since the first mips64 partial merge)
- also fix leftover confusing comment that should have been removed
when rev 1.82 was committed back in 1999.
Previously the most ieeefp tests dump core:
---
tp-start: t_except, 6
tc-start: masked_double
tc-end: masked_double, failed, Test program received signal 4 (core dumped)
tc-start: masked_float
tc-end: masked_float, failed, Test program received signal 4 (core dumped)
tc-start: masked_long_double
tc-end: masked_long_double, failed, Test program received signal 4 (core dumped)
tc-start: unmasked_double
tc-end: unmasked_double, failed, Test program received signal 4 (core dumped)
tc-start: unmasked_float
tc-end: unmasked_float, failed, Test program received signal 4 (core dumped)
tc-start: unmasked_long_double
tc-end: unmasked_long_double, failed, Test program received signal 4 (core
dumped)
tp-end: t_except
:
tp-start: t_subnormal, 2
tc-start: test_double
tc-end: test_double, failed, Test program received signal 4 (core dumped)
tc-start: test_float
tc-end: test_float, failed, Test program received signal 4 (core dumped)
tp-end: t_subnormal
---
Now they fail differently:
---
tp-start: t_except, 6
tc-start: masked_double
tc-end: masked_double, failed, Test program received signal 4 (core dumped)
tc-start: masked_float
tc-end: masked_float, passed
tc-start: masked_long_double
tc-se:*** Check failed: /usr/src/tests/lib/libc/ieeefp/t_except.c:227: ex1 &
t->mask != t->mask
tc-end: masked_long_double, failed, 1 checks failed; see output for more details
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_double
tc-end: test_double, failed, Test program received signal 4 (core dumped)
tc-start: test_float
tc-end: test_float, failed, Test program received signal 4 (core dumped)
tp-end: t_subnormal
---
To generate a diff of this commit:
cvs rdiff -u -r1.180 -r1.181 src/sys/arch/mips/mips/locore.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/locore.S
diff -u src/sys/arch/mips/mips/locore.S:1.180 src/sys/arch/mips/mips/locore.S:1.181
--- src/sys/arch/mips/mips/locore.S:1.180 Thu Feb 24 15:52:23 2011
+++ src/sys/arch/mips/mips/locore.S Thu Feb 24 16:21:50 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.180 2011/02/24 15:52:23 tsutsui Exp $ */
+/* $NetBSD: locore.S,v 1.181 2011/02/24 16:21:50 tsutsui Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -635,11 +635,10 @@
b 2f
INT_L a0, 4(a0) # a0 = coproc instruction
/*
- * This is not in the branch delay slot so calculate the resulting
- * PC (epc + 4) into v0 and continue to MachEmulateFP().
+ * This is not in the branch delay slot.
*/
1:
- INT_L a0, 4(a0) # a0 = coproc instruction
+ INT_L a0, 0(a0) # a0 = coproc instruction
2:
/*