64

Xcode 10.1 提到了对 arm64e 的支持(预览版)。任何人都对 arm64e 有任何想法。arm64 和 arm64e 之间的任何区别。

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

我搜索了arm64e。但找不到合适的解释。

4

3 回答 3

122

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

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

A12 配备 Apple 设计的 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

于 2018-10-03T09:57:45.050 回答
7

要使用应用程序测试 arm64e,请更新Architectures. Build Settings更多详细信息,请访问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

于 2019-11-15T22:24:20.023 回答
7

arm64对比arm64e

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

arm64eARMv8.3

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

总之,arm64e是一个 ABI(通常称为架构,但不是ISA),它编译为真正的 ISA。新的 Apple 设备使用 arm64e,包括 M1 mac。

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

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

ABI 与架构?

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

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

于 2021-01-27T12:15:47.357 回答