On Jan 10, 2006, at 9:46 PM, David Edelsohn wrote:
Perry Smith writes:
Perry> The call to _restf14 is not explicit so I assume the
compiler is
Perry> generating it for some reason.
Yes, because one of the exception handling support functions can
clobber all registers, but also can return upon error, so all
registers
need to be restored -- including FP registers.
Perry> I believe the soft-float is the route I want to go. Right
now, I
Perry> took the t-aix52 file and changed it to have:
Perry> MULTILIB_OPTIONS = pthread maix64 msoft-float
Perry> MULTILIB_DIRNAMES = pthread ppc64 soft-float
Perry> I could not find a way to do this via configure options. I'm
Perry> rebuilding the whole compiler at this point. I didn't know
any other
Perry> way to get the new versions of the libraries to be created.
Most users do not want or need that configuration because all AIX
systems have floating point hardware support.
Well, except any kernel extension like a device driver, virtual file
system, etc, can not use the FP registers. So any use trying to
write a device drive wants and needs a soft-float library. The
kmstsave (the kernel mst save structure) does not save the fp
registers like the mstsave (the per process mst save structure)
does. This is to save time in system calls.
So, my thought is that if it was provided and maybe some
documentation as to why it is provided, then gcc could and would
start to be used for AIX kernel extensions.