On Thu, 02 Jun 2011 16:35:01 +0100 Richard Earnshaw wrote: > I see Paul has already approved this, but I've just spotted one > potential problem that might cause latent bugs sometime in the future. > > The code to register the libcalls is only run once, the first time we > try to look up a libcall. If we ever end up allowing dynamic changing > of CPU and optimization options, not registering the other libcalls > will lead to subtle problems at run time. I suggest that these > functions be unconditionally added along with the other libcalls. Done. > I also don't understand why all the tests are needed in > arm_init_cumulative_args? Surely arm_libcall_uses_aapcs_base() will > already have run that test. I did some archaeology to try to figure out why things were like that (the patch was written a while ago) -- and yeah, it looks like it's completely unnecessary to have those tests in arm_init_cumulative_args. That bit of code was refactored a while ago, and it looks like the patch wasn't ever updated properly. My mistake! I'm re-testing the attached version. Thanks, Julian ChangeLog gcc/ * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI for double-precision helper functions in hard-float mode if only single-precision arithmetic is supported in hardware.