diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2002-06-28 16:50:39 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2002-06-28 16:50:39 +0000 |
commit | a96b359f3a1a8d83a1b175be7ea31a133866ed46 (patch) | |
tree | 21564b264fa17c25c98b7591dbc7eabae6d58293 /sys | |
parent | 783f2bac78a638f164d651bcf04c5d62daab7cff (diff) |
The IEEE fp stuff changed the rules for how fpu should be enabled.
We kept too much of the old code in trap handling.
This should fix floppies and bsd.rd on some machines.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/alpha/alpha/trap.c | 25 | ||||
-rw-r--r-- | sys/arch/alpha/conf/RAMDISKBIG | 4 | ||||
-rw-r--r-- | sys/arch/alpha/include/cpu.h | 5 |
3 files changed, 7 insertions, 27 deletions
diff --git a/sys/arch/alpha/alpha/trap.c b/sys/arch/alpha/alpha/trap.c index d6df7600951..fd01cc85b73 100644 --- a/sys/arch/alpha/alpha/trap.c +++ b/sys/arch/alpha/alpha/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.36 2002/06/23 03:03:15 deraadt Exp $ */ +/* $OpenBSD: trap.c,v 1.37 2002/06/28 16:50:38 art Exp $ */ /* $NetBSD: trap.c,v 1.52 2000/05/24 16:48:33 thorpej Exp $ */ /*- @@ -410,29 +410,8 @@ trap(a0, a1, a2, entry, framep) break; case ALPHA_IF_CODE_FEN: -#ifndef NO_IEEE alpha_enable_fp(p, 0); alpha_pal_wrfen(0); -#else - /* - * on exit from the kernel, if proc == fpcurproc, - * FP is enabled. - */ - if (fpcurproc == p) { - printf("trap: fp disabled for fpcurproc == %p", - p); - goto dopanic; - } - - alpha_pal_wrfen(1); - if (fpcurproc) - savefpstate(&fpcurproc->p_addr->u_pcb.pcb_fp); - fpcurproc = p; - restorefpstate(&fpcurproc->p_addr->u_pcb.pcb_fp); - alpha_pal_wrfen(0); - - p->p_md.md_flags |= MDP_FPUSED; -#endif goto out; default: @@ -770,7 +749,6 @@ child_return(arg) #endif } -#ifndef NO_IEEE /* * Set the float-point enable for the current process, and return * the FPU context to the named process. If check == 0, it is an @@ -807,7 +785,6 @@ alpha_enable_fp(struct proc *p, int check) alpha_pal_wrfen(1); restorefpstate(&p->p_addr->u_pcb.pcb_fp); } -#endif /* * Process an asynchronous software trap. diff --git a/sys/arch/alpha/conf/RAMDISKBIG b/sys/arch/alpha/conf/RAMDISKBIG index c8bedf4af5a..111a9f9d931 100644 --- a/sys/arch/alpha/conf/RAMDISKBIG +++ b/sys/arch/alpha/conf/RAMDISKBIG @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISKBIG,v 1.28 2002/06/19 19:18:51 miod Exp $ +# $OpenBSD: RAMDISKBIG,v 1.29 2002/06/28 16:50:38 art Exp $ # $NetBSD: GENERIC,v 1.31 1996/12/03 17:25:29 cgd Exp $ # # Generic Alpha kernel. Enough to get booted, etc., but not much more. @@ -26,6 +26,8 @@ option NO_IEEE # Disable IEEE math # Standard system options maxusers 8 # estimated number of users +option DDB + # File system options option FFS # Fast file system option CD9660 # ISO 9660 + Rock Ridge file system diff --git a/sys/arch/alpha/include/cpu.h b/sys/arch/alpha/include/cpu.h index 0d60953366b..640dbc0f5d4 100644 --- a/sys/arch/alpha/include/cpu.h +++ b/sys/arch/alpha/include/cpu.h @@ -1,4 +1,4 @@ -/* $OpenBSD: cpu.h,v 1.18 2002/06/07 21:33:43 nordin Exp $ */ +/* $OpenBSD: cpu.h,v 1.19 2002/06/28 16:50:38 art Exp $ */ /* $NetBSD: cpu.h,v 1.45 2000/08/21 02:03:12 thorpej Exp $ */ /*- @@ -385,9 +385,10 @@ void alpha_write_fpcr(u_int64_t); /* MAGIC */ u_int64_t alpha_read_fp_c(struct proc *); void alpha_write_fp_c(struct proc *, u_int64_t); -void alpha_enable_fp(struct proc *, int); int alpha_fp_complete(u_long, u_long, struct proc *, u_int64_t *); #endif +void alpha_enable_fp(struct proc *, int); + #endif /* _KERNEL */ #endif /* _ALPHA_CPU_H_ */ |