如果我们为 -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 定义了错误的标志会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章