diff options
author | tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2008-03-20 00:54:21 +0000 |
---|---|---|
committer | tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2008-03-20 00:54:21 +0000 |
commit | 1a16f5c72896d243cac33147e8ca28079b882ecf (patch) | |
tree | d973ef180bfd57d029a8771d9f465f76ff602890 /Game/Code/lib/zlportio/ddkint.pas | |
parent | beccaf9c93dcbab557d4b2fe6845a424f4f47e32 (diff) | |
download | usdx-1a16f5c72896d243cac33147e8ca28079b882ecf.tar.gz usdx-1a16f5c72896d243cac33147e8ca28079b882ecf.tar.xz usdx-1a16f5c72896d243cac33147e8ca28079b882ecf.zip |
- Delphi (in contrast to C/C++) handles floating-point multiplications with NaN or divisions by 0.0 as floating-point exceptions (FPE). This is a problem with some libraries which expect that e.g. "NaN * 3.0" is NaN or "4.0 / 0" is INFINITY.
- The (strange) default behavior can be changed by setting the control word of the FPU. This is done by assigning $133F to this register via Set8087CW() in delphi. In FPC it was not available for a long time but now it is. OpenGL12.pas contained an own version of Set8087CW() which was totally wrong because the important asm-directives (fclex and fldcw) were missing so it was not of any use. Hence it was removed from the unit so it does not hide the correct FPC version anymore.
- This should fix some EDivByZero exceptions in floating-point expressions (as with projectM).
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@962 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'Game/Code/lib/zlportio/ddkint.pas')
0 files changed, 0 insertions, 0 deletions