Date: Wed, 22 Feb 1995 06:39:12 +1100 From: Bruce Evans <bde@zeta.org.au> To: freebsd-bugs@FreeBSD.org, seb@erix.ericsson.se Subject: Re: npxprobe1() machine freezes Message-ID: <199502211939.GAA21457@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>The probing for npx0 causes my machine to completely lock up. The >cause seems to be the fnop() that has been added in npxprobe1() (in >i386/isa/npx.c) since 2.0-RELEASE. (I am running 950210-SNAP now). It >works just fine if you comment out the fnop(). My machine is an old >386 (Chips&Technologies chipset, AMI BIOS, and no math co-processor). ?? This should be fixed, sort of, in the current sources. The `outb(0xf0, 0);' instruction should be before the group of 3 floating point instructions ending with the fnop() instead of after. It's interesting that removing the fnop() also fixes the problem. The `no-wait' floating point instructions apparently work like they are supposed to. Does replacing the fnop() by an fwait() also fix the problem? I expect not. The fnop() is wrong for another reason. It messes up the FPU cs:eip and opcode so you can't see where the exception occurred. Deleting it entirely is a good fix. I may delete the other two floating point instructions too. They only allow signal handlers to do the wrong thing (to return so that execution continues with bogus values on the FPU stack). Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199502211939.GAA21457>