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.



Reply via email to