Mail Archives: djgpp-workers/1999/05/06/19:41:53
Eli Zaretskii wrote:
>
> On Thu, 6 May 1999, DJ Delorie wrote:
>
> > I wouldn't call _clear87() unless we know we've detected and used the
> > FPU, else exiting the program may *load* the FPU emulator.
>
> Right. This is easy enough to do, I just have to look at the value of
> _8087.
>
> Hmm... it seems we need to change npxsetup.c to set _8087 when $387 is
> set to Y in the environment. Right now it is left at zero; however, my
> references indicate that in Borland _8087's value reflects the override
> of the environment. Comments?
>
> Nate, is there any reason why _8087 isn't set in the case of 387=Y?
Laziness?
No, there isn't really, and it does seem Borland wants it to. Here is a
patch which I don't have time to test right now, but is "obviously"
correct.
--- src/libc/emu387/npxsetup.c Sat Mar 20 16:36:18 1999
+++ src/libc/emu387/npxsetup.c.new Thu May 6 16:37:28 1999
@@ -72,6 +72,7 @@
if (cp && (tolower((unsigned char)cp[0]) == 'y'))
{
_control87(0x033f, 0xffff); /* mask all numeric exceptions
*/
+ _8087 = 3;
return;
}
if (cp && (tolower((unsigned char)cp[0]) == 'n'))
@@ -82,8 +83,8 @@
nested FPU client fault - DJ */
__dpmi_set_coprocessor_emulation(1);
have_80387 = _detect_80387();
- _8087 = (have_80387 ? 3 : 0);
}
+ _8087 = (have_80387 ? 3 : 0);
if (cp && (tolower((unsigned char)cp[0]) == 'q')) {
if (!have_80387)
--
Nate Eldredge
nate AT cartsys DOT com
- Raw text -