据微软(此处和此处)称,该公司将在即将推出的Windows 10版本中支持ARMv8/Aarch64(ARM-64).此外,微软已经提供了预览,因此我猜测工具支持已到位.
对于那些不知道的人,文章提供的图像清楚地显示了Qualcomm Snapdragon 410.这是一个A-53核心,它的Aarch64/ARM-64.
Microsoft定义_M_ARM了ARM-32,我们目前使用它来检测NEON可用性.ARMv8支持可选扩展CRC32,AES,SHA-1和SHA-2.我们已经为Apple和Linux编写了代码,我们希望为Microsoft平台启用它.
微软也有__M_ARM_FP,但不清楚用它来检测ARM64.我也不清楚x86的相关性:
扩展为整数字面值,指示使用了哪个/ arch编译器选项:
- 如果未指定/ arch ARM选项,则在30-39范围内,表示使用了ARM的默认体系结构(VFPv3).
- 如果使用/ arch:VFPv4,则在40-49范围内.
- 有关更多信息,请参见/ arch(x86).
我对我可用的Microsoft编译器进行了一些快速测试(所有这些都可以追溯到VC++ 5.0).他们没有消耗ARMv8内在函数,这并不奇怪.我猜我需要一个MSDN订阅来测试最新的工具,但我不再订阅了.
我的问题是:
_M_ARM64?)_MSC_VER)支持ARMv8指令这可能是相关的:什么是WINAPI_FAMILY_ONECORE_APP?