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:
 
 /*

Reply via email to