what 68k platform config switch put float return values in fpu register ?

Gunther Nikl gnikl@users.sourceforge.net
Mon Jan 25 18:57:00 GMT 2010


Bernd Roesch wrote:
> a call of a function and return value with double float is on all
> m68k-amigaos compiler (that use only other 68k config files but
> same main source) as this.
> 
>   jsr testfunc
>     move.l d1,-(sp)
>     move.l d0,-(sp)
>     fdmove.d (sp)+,fp1
>     fsmove.x fp1,fp0
>     lea (16,sp),sp
>     fjgt L6 
> 
> You see the func always return the values in Integer Register d0 and
> d1 put it to stack and then move it from stack to FPU regsiter.
> 
> m68k-elf use the FPU Register and produce shorter and faster code

You cannot change the way doubles are returned for you target! Doing 
this would render all existing object files useless since the return
value is suddenly at a different place. Furthermore you would loose
the ability to mix soft-float and hard-float compiled code.

Gunther



More information about the Gcc mailing list