如果我们为 -mfpu 定义了错误的标志会发生啥?

Posted

技术标签:

【中文标题】如果我们为 -mfpu 定义了错误的标志会发生啥?【英文标题】:What happens if we define wrong flag for -mfpu?如果我们为 -mfpu 定义了错误的标志会发生什么? 【发布时间】:2017-11-14 08:58:14 【问题描述】:

例如,如果我有一个芯片 -mcpu=cortex-a7 ,我应该定义 -mfpu=neon-vfpv4 ,而不是 -mfpu=neon 。但是,我想知道如果我在 Cortex-A7 上定义 -mfpu=neon 会发生什么?它会忽略该标志而不执行 SIMD,或者它会如何处理这样的错误标志?

【问题讨论】:

一个相关问题:***.com/questions/7269946/… 它要么抱怨要么使用错误的指令。 【参考方案1】:

它将使用一组较旧的 NEON 指令(-mfpu=neon 用于选择 Cortex-A8 内核上可用的 NEON 指令)。例如,它不会包含 VFMA 指令。

请注意,从GCC 8(仍在开发中)您将能够只使用-mfpu=auto 或完全省略-mfpu,并让编译器为您选择的-mcpu 选项选择最佳FPU 设置

【讨论】:

【参考方案2】:

如果您这样做,此编译器将不会使用 VFPv4 指令并可能生成次优代码。

【讨论】:

以上是关于如果我们为 -mfpu 定义了错误的标志会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

如果同时指定 EHsc 和 EHa 会发生啥

-ObjC 链接器标志有啥作用?

是啥导致发生分段错误?

如果我将字节数组转换为 __attribute__((packed, aligned(2))) 结构会发生啥?

单片机的中断标志位是有啥作用?

如果我们在 requestAnimationFrame 中操作 DOM 会发生啥?