Windows XP
D:\FPC331D\bin\go32v2>fpc
Free Pascal Compiler version 3.3.1-r20:40421 [2018/11/30] for i386
Copyright (c) 1993-2018 by Florian Klaempfl and others
D:\FPC331D\bin\go32v2>ver
Microsoft Windows XP [Version 5.1.2600]
D:\FPC331D\bin\go32v2>fpc.exe t_abssse.pas
D:\FPC331D\bin\go32v2>t_abssse.exe
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
abs(x)= 1.0000000000000000E+000
D:\FPC331D\bin\go32v2>fpc -CfSSE2 t_abssse.pas
D:\FPC331D\bin\go32v2>t_abssse.exe
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
Runtime error 216 at $000018B2
$000018B2
$00001795
abs(x)=
D:\FPC331D\bin\go32v2>
Windows 8
C:\FPC331D\bin\go32v2>fpc.exe
Free Pascal Compiler version 3.3.1-r20:40421 [2018/11/30] for i386
Copyright (c) 1993-2018 by Florian Klaempfl and others
C:\FPC331D\bin\go32v2>ver
Microsoft Windows [Version 6.2.8400]
C:\FPC331D\bin\go32v2>fpc t_abssse.pas
C:\FPC331D\bin\go32v2>t_abssse.exe
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
abs(x)= 1.0000000000000000E+000
C:\FPC331D\bin\go32v2>fpc -CfSSE2 t_abssse.pas
C:\FPC331D\bin\go32v2>t_abssse.exe
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
Runtime error 216 at $000018B2
$000018B2
$00001795
abs(x)=
C:\FPC331D\bin\go32v2>
Have you tried in an actual DOS box? It may be a strange interaction between the extender and the OS treatment of the FPU.This makes no difference, here the results for Windows 98 and DOSBox (the first runs are without SSE the second with SSE):
C:\TMP>ver
Windows 98 [Version 4.10.1998]
C:\TMP>t_abs.exe
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
abs(x)= 1.0000000000000000E+000
C:\TMP>T_ABSSSE.EXE
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
Runtime error 216 at $000018B2
$000018B2
$00001795
abs(x)=
C:\TMP>
DOSBox version 0.74-2. Reported DOS version 5.00.
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
abs(x)= 1.0000000000000000E+000
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
abs(x)=
Error and error addr only displayed on screen, could not be redirected with DOSBox
Sorry, by "DOS box" I meant a computer with a real DOS (as in MS-DOS, DR-DOS, FreeDOS, ...) in it, not the emulator :D But Windows 98 (boot-up with no GUI, I hope?) is enough test.Again no difference, same output for Win98 GUI / NoGUI, and the results for
MS-DOS Version 6.22
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
abs(x)= 1.0000000000000000E+000
Abs bug with SSE/GO32V2
x=-1.0000000000000000E+000
sin(x)=-8.41470984807896506665E-0001
abs(x)=
DOS version run from floppy on real hardware (Pentium 4).