Closed Bearsoft749 closed 8 months ago
The code looks totally fine. What's the problem?
I have set it to not use the fpu "-msoft-float".
with option -m68020-60, it works correctly. It's using the library. The code works on a 060 without fpu.
.LFB0: move.l (8,sp),-(sp) .LCFI0: move.l (8,sp),-(sp) .LCFI1: jsr ___addsf3 addq.l bebbo/amiga-gcc#8,sp .LCFI2: rts
With option -m68060 it's using the fpu. The code crashes on a 060 without fpu.
.LFB0: fsmove.s (4,sp),fp0 fsadd.s (8,sp),fp0 rts
The switch -msoft-float
has no effect if the cpu is 68060
or 68080
.
Okay... but it works on GCC13.1... Is there a way to fix it so it has an effect? Worse optimization with "-m68020-60".
m68k-amigaos-g++ 6.50b
//floatadd.cpp
float addValue(float a, float b) { return a+b; }
int main() { float result=addValue(10.0f, 20.0f); return 0;
}
m68k-amigaos-g++ -w -O3 -mno-align-int -funsafe-math-optimizations -ffast-math -msoft-float -fomit-frame-pointer -m68060 -noixemul -S floatadd.cpp
NO_APP
__Z8addValueff: .LFB0: fsmove.s (4,sp),fp0 fsadd.s (8,sp),fp0 rts .LFE0: .section .text .align 2 .globl _main _main: .LFB1: clr.l d0 rts .LFE1:
m68k-amigaos-g++ -w -O3 -mno-align-int -funsafe-math-optimizations -ffast-math -msoft-float -fomit-frame-pointer -m68020-60 -noixemul -S floatadd.cpp
NO_APP
__Z8addValueff: .LFB0: move.l (8,sp),-(sp) .LCFI0: move.l (8,sp),-(sp) .LCFI1: jsr ___addsf3 addq.l bebbo/amiga-gcc#8,sp .LCFI2: rts .LFE0: .section .text .align 2 .globl _main _main: .LFB1: clr.l d0 rts .LFE1: