http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47442
--- Comment #5 from Joel Sherrill <joel at gcc dot gnu.org> 2011-01-25 18:15:41 UTC --- (In reply to comment #4) > The alternative ABI is just slightly different. When using the 68881, > floating > point values are returned in %fp0. When not using it, floating point values > are returned in %d0 or %d0/%d1. I think I have implemented single and double precision soft float support. How is extended float returned? #if defined(__MC68681__) fmove.x %fp0,(%a1) #endif The only other issue in sysv.S is using tst.l %aX which is not supported on a mc68000. I just used a cmp.l %aX,#0.