On Fri, 10 Apr 2015, Hale Wang wrote: > According to the run-time ABI for ARM architecture, this function is allowed > to corrupt only the integer core registers permitted to be corrupted by the > [AAPCS] (r0-r3, ip, lr, and CPSR). So we can't just simply use the existing > GNU conversion functions to implement this function.
I don't see that "only". Indeed, at the bottom of page 15 in IHI0043D, "If the FP instruction set is available, implementations of these functions may use it. Consequently, FP hardware-using code that calls one of these helper functions directly, or indirectly by calling a function with a base-standard interface, must assume that the FP parameter, result, scratch, and status registers might be altered by a call to it.". (Furthermore, the ideal result on implementations with VFP but not hardware half-precision support would be that the software conversions interact properly with hardware exceptions and rounding modes (so using FPSCR).) -- Joseph S. Myers jos...@codesourcery.com