如果您为没有协处理器的系统编译,编译器会在软件中实现计算。例如,编译器选项-mfloat-abi=hard选择硬件 VFP 协处理器,该选项-mfloat-abi=soft指定算术运算将在软件中执行,而不使用任何协处理器指令。 2、armv8中的浮点型介绍 浮点寄存器组与 SIMD 寄存器使用相同的扩展寄存器,且是banked的。 在AArch32 状态下,...
在有fpu的情况下,就可以通过gcc的选项-mfloat-abi来指定使用哪种,有如下三种值: soft:不用fpu计算,即使有fpu浮点运算单元也不用。 armel:(arm eabi little endian)也即softfp,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。 armhf:(arm h...
-mfloat-abi=softfp/hard 因为使用不同的参数传递方式,所以你不能将一个使用softfp另外一个使用hardfp的库或目标文件链接起来。 正式因为如此,在armv7的时候有些编译好的库(比如glibc使用softfp)没法在使用另一种(使用hardfp)的应用编译中。 有的工具链直接只支持一种方式比如arm-linux-gnueabi,和arm-linux-gnueabi...
shared:-dynamic-linker %{muclibc:/lib/ld-uClibc.so.0;:%{mbionic:/system/bin/linker;:%{mmusl:/lib/ld-musl-arm%{mbig-endian:eb}%{mfloat-abi=hard:hf}.so.1;:%{mfloat-abi=hard:/lib/ld-linux-armhf.so.3} %{mfloat-abi=soft*:/lib/ld-linux.so.3} %{!mfloat-abi=*:/lib/ld-...