Quote:
Originally Posted by BSzili
Did something change recently regarding the code generation for -m68060? I rebuilt Duke3D to test the recently added control presets, and it now has some graphics glitches, sometimes CON parsing won't work, and the maps won't load. I tried to compare the asm output with -m68040 and it looks like the compiler now emits FPU instructions for certain multiplications. For example what compiles to muls.l #936,d0 becomes
Code:
fmove.l d1,fp0
fmul.l #936,fp0
fmod.s #0x4f800000,fp0
fmove.l fp0,d2
This could be a problem, because I change the FPU rounding for the custom 64-bit integer math replacement routines, which probably messes with the ones generated by the compiler. Is it possible to disable this optimization?
Edit: This is a small function that now has FPU instructions with -m68060, but with -m68040 it doesn't:
http://franke.ms/cex/z/T7rj6q
|
I rolled that change back a while ago and now I added another feature:
Quote:
implement direct MathIeeeSingTransBase/MathIeeeDoubTransBase calls
|
this is triggered for 68040/68060 if -ffast-math gets used.