Native开发工具之CPU-和架构(三,含小米、腾讯、阿里

x86

此 ABI 适用于支持通常称为“x86”或“IA-32”的指令集的 CPU。此 ABI 的特性包括:

  • 指令一般由具有编译器标记的 GCC 生成,如下所示:
  -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32

这些标记指向 Pentium Pro 指令集,以及 MMXSSESSE2SSE3 及 SSSE3 扩展指令集。生成的代码在顶层 Intel 32 位 CPU 之间进行了均衡优化。

如需了解有关编译器标记的更多信息,特别是与性能优化相关的信息,请参阅 GCC x86 性能提示

ABI 不含任何其他可选 IA-32 扩展指令集,例如:

  • MOVBE
  • SSE4 的任何变体。

您仍可使用这些扩展指令集,只要您使用运行时功能探测来启用它们,并且为不支持它们的设备提供回退机制。

NDK 工具链假设在函数调用之前进行 16 字节堆栈对齐。默认工具和选项会强制实施此规则。如果编写的是汇编代码,必须确保堆栈对齐,而且其他编译器也遵守此规则。

请参阅以下文档了解更多详情:

x86_64

此 ABI 适用于支持通常称为“x86-64”的指令集的 CPU。它支持 GCC 通常使用以下编译器标记生成的指令:

 -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel

这些标记指向 x86-64 指令集(根据 GCC 文档),以及 MMXSSESSE2SSE3SSSE3SSE4.1SSE4.2 和 POPCNT 扩展指令集。生成的代码在顶层 Intel 64 位 CPU 之间进行了均衡优化。

如需了解有关编译器标记的更多信息,特别是与性能优化相关的信息,请参阅 GCC x86 性能

此 ABI 不含任何其他可选的 x86-64 扩展指令集,例如:

  • MOVBE
  • SHA
  • AVX
  • AVX2

您仍可使用这些扩展指令集,只要您使用运行时功能探测来启用它们,并且为不支持它们的设备提供回退机制。

请参阅以下文档了解更多详情:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值