6fe335b9e9
bug caused by this instruction: fmove.l fp0,d0 problem was caused by a conflict between the fpu emulator (softfloat) and the compiler. the emulator implemented this as a purely arithmetic move & conversion, but the compiler assumed that the result could be interpreted as a logical (ie unsigned) conversion. rightly or wrongly. for example, if fp0 contained the value 2576980377.0 which is unsigned integer -1717987328 the emulator would treat this as an integer overflow and move 0x7fffffff (INT_MAX) into d0. The complier on the other hand would assume that d0 contained 2576980377 (the unsigned value). I don't know which is correct, but this is my fix for the time being. |
||
---|---|---|
.. | ||
cpm | ||
em | ||
em22 | ||
linux | ||
linux68k | ||
linux386 | ||
linuxmips | ||
linuxppc | ||
osx | ||
osx386 | ||
osxppc | ||
pc86 | ||
pdpv7 | ||
qemuppc | ||
rpi | ||
build.lua |