ZHCU876Z July 2001 – October 2023 SM320F28335-EP
支持以下内置函数:
__builtin_frame_address() 函数始终返回 0,。
仅当启用了硬件浮点支持时,才支持 __builtin_sqrt() 和 __builtin_sqrtf() 函数。也就是说,只有在启用三角函数加速器 (TMU) 的情况下,才支持 __builtin_sqrt()。而且,只有在启用 TMU 或使用 CLA 编译器的情况下,才支持 __builtin_sqrtf()。
调用运行时可能不可用的内置函数时,请使用以下示例中所示的 Clang __has_builtin 宏命令,以确保该函数受支持:
#if __has_builtin(__builtin_sqrt)
double estimate = __builtin_sqrt(x);
#else
double estimate = fast_approximate_sqrt(x);
#endif
如果支持内置函数,且设备具有适当的硬件支持,则内置函数将调用硬件支持。
如果支持内置函数,但设备未启用相应的硬件,则内置函数通常会成为对 RTS 库函数的调用。例如,__builtin_sqrt() 将成为对库函数 sqrt() 的调用。
__builtin_return_address() 函数始终返回零。