Module Name: src
Committed By: matt
Date: Sun Aug 23 04:06:01 UTC 2009
Modified Files:
src/sys/arch/mips/mips [matt-nb5-mips64]: trap.c vm_machdep.c
Log Message:
Deal with fp save/restore changes. Remove some more unneeded casts in trap.
To generate a diff of this commit:
cvs rdiff -u -r1.217.12.2 -r1.217.12.3 src/sys/arch/mips/mips/trap.c
cvs rdiff -u -r1.121.6.1.2.1 -r1.121.6.1.2.2 \
src/sys/arch/mips/mips/vm_machdep.c
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/trap.c
diff -u src/sys/arch/mips/mips/trap.c:1.217.12.2 src/sys/arch/mips/mips/trap.c:1.217.12.3
--- src/sys/arch/mips/mips/trap.c:1.217.12.2 Fri Aug 21 17:45:19 2009
+++ src/sys/arch/mips/mips/trap.c Sun Aug 23 04:06:01 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: trap.c,v 1.217.12.2 2009/08/21 17:45:19 matt Exp $ */
+/* $NetBSD: trap.c,v 1.217.12.3 2009/08/23 04:06:01 matt Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -78,7 +78,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.217.12.2 2009/08/21 17:45:19 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.217.12.3 2009/08/23 04:06:01 matt Exp $");
#include "opt_cputype.h" /* which mips CPU levels do we support? */
#include "opt_ddb.h"
@@ -454,7 +454,7 @@
case T_BREAK:
#if defined(DDB)
- kdb_trap(type, (mips_reg_t *) frame);
+ kdb_trap(type, frame->tf_regs);
return; /* KERN */
#elif defined(KGDB)
{
@@ -469,13 +469,13 @@
* that db_machdep.h macros will work with it, and
* allow gdb to alter the PC.
*/
- db_set_ddb_regs(type, (mips_reg_t *) frame);
+ db_set_ddb_regs(type, frame->f_regs);
PC_BREAK_ADVANCE(f);
if (!kgdb_trap(type, &ddb_regs))
printf("kgdb: ignored %s\n",
trap_type[TRAPTYPE(cause)]);
else
- ((mips_reg_t *)frame)[21] = f->f_regs[_R_PC];
+ frame->tf_regs[TF_EPC] = f->f_regs[_R_PC];
return;
}
@@ -535,14 +535,10 @@
case T_COP_UNUSABLE+T_USER:
#if !defined(SOFTFLOAT) && !defined(NOFPU)
if ((cause & MIPS_CR_COP_ERR) == 0x10000000) {
- struct frame *f;
-
- f = l->l_md.md_regs;
- savefpregs(fpcurlwp); /* yield FPA */
+ savefpregs(fpcurlwp); /* yield FPA */
loadfpregs(l); /* load FPA */
fpcurlwp = l;
l->l_md.md_flags |= MDP_FPUSED;
- f->f_regs[_R_SR] |= MIPS_SR_COP_1_BIT;
} else
#endif
{
Index: src/sys/arch/mips/mips/vm_machdep.c
diff -u src/sys/arch/mips/mips/vm_machdep.c:1.121.6.1.2.1 src/sys/arch/mips/mips/vm_machdep.c:1.121.6.1.2.2
--- src/sys/arch/mips/mips/vm_machdep.c:1.121.6.1.2.1 Fri Aug 21 17:43:14 2009
+++ src/sys/arch/mips/mips/vm_machdep.c Sun Aug 23 04:06:01 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: vm_machdep.c,v 1.121.6.1.2.1 2009/08/21 17:43:14 matt Exp $ */
+/* $NetBSD: vm_machdep.c,v 1.121.6.1.2.2 2009/08/23 04:06:01 matt Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -80,7 +80,7 @@
#include "opt_coredump.h"
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.121.6.1.2.1 2009/08/21 17:43:14 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.121.6.1.2.2 2009/08/23 04:06:01 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -234,7 +234,8 @@
{
if ((l->l_md.md_flags & MDP_FPUSED) && l == fpcurlwp)
- fpcurlwp = NULL;
+ fpcurlwp = &lwp0; /* save some NULL checks */
+ KASSERT(fpcurlwp != l);
}
void