Xcode arm64 Vs arm64e



Xcode 10.1提到了对arm64e的支持(预览版)。任何人都知道arm64e。扶手64和扶手64e之间的任何差异。

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_1_beta_2_release_notes?language=objc

我搜索了arm64e,但找不到任何正确的解释。

arm64e架构用于A12芯片组,该芯片组添加在最新的2018款iPhone机型(XS/XS Max/XR)中。该代码编译为ARMv8.3,从而提供了对新功能的支持。即:

  • 指针身份验证
  • 嵌套虚拟化
  • 高级SIMD复数支持
  • 改进的Javascript数据类型转换支持
  • 内存一致性模型的更改
  • ID机制支持更大的系统可见缓存

A12采用苹果设计的64位ARMv8.3-A六核CPU

https://en.wikipedia.org/wiki/Apple_A12

在这里阅读更多关于架构的信息:

https://community.arm.com/processors/b/blog/posts/armv8-a-architecture-2016-additions

arm64arm64e

两者都是编译为指令(由ISA/指令集体系结构定义)的ABI(较低级别API)。arm64e在Mac M1和iPhone上使用。他们之间的差异是乔瓦尼回答的要点。

arm64eARMv8.3

两者都含糊地称为";架构";。arm64e不是ISA,而是ABI(应用程序二进制接口),ARMv8.3是ARM ISA(技术上是对AArch64的扩展)。

总之,arm64e是一个ABI(通常称为体系结构,但不是ISA),它可以编译成真正的ISA。新的苹果设备使用arm64e,包括M1 Mac。

iPhone(例如A14、A15)、M1 Mac、M1 Pro Mac等

他们都使用arm64e ABI,但苹果有ISA许可证,并创建自定义ISA。

ABI与架构

Android文档中有一个关于Android ABI的有用指南,其中包含一般信息:

不同的Android设备使用不同的CPU,这些CPU反过来支持不同的指令集。CPU和指令的每种组合集合有自己的应用程序二进制接口(ABI)。ABI包括以下信息:阅读更多

要使用应用程序测试arm64e,请更新Build Settings中的Architectures设置。更多详细信息,请访问https://developer.apple.com/documentation/security/preparing_your_app_to_work_with_pointer_authentication.

请注意,如果您有CocoaPods依赖项,那么所有Pods构建目标都必须进行类似的更改。

如果任何CocoaPods依赖项是二进制的,而不是源pod,请向供应商发出如下请求https://github.com/firebase/firebase-ios-sdk/issues/4110

最新更新