Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 May 1996 23:58:45 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        asami@cs.berkeley.edu, bde@zeta.org.au
Cc:        ccd@stampede.cs.berkeley.edu, current@freebsd.org
Subject:   Re: some more on fast bcopy
Message-ID:  <199605151358.XAA22996@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>Okay, I implemented this (I think) with the help of gcc -S, but I
>still get "FPU not available" panics intermittently (often during
>"make install"s).  Here's the diff, can you please check and see if
>something's wrong?

It should work better with a kernel mode trap handler for "FPU not
available" :-).  Add a T_DNA case for kernel mode in trap() by copying
the first 5 lines from the user mode T_DNA case (`break;' if npxdna()
doesn't handle the panic (this "can't happen")).  When you get everything
working, add some tests and flags to restore the panic if an T_DNA
trap occurs unexpectedly (set a flag FP_KERNEL_USING_FP in pcb->pcbflags
while the kernel is using FP in fastmove() or elsewhere, and `break;'
for the kernel T_DNA case if this flag isn't set).

Also, the `intr_nesting_level > 0' case needs to preserve the TS bit.
This case probably hasn't been executed yet (it will be executed when
bcopy() uses fastmove() and an interrupt handler calls bcopy()).

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605151358.XAA22996>