Version and Platform (required):
- Binary Ninja Version: 6.1.10653-dev Ultimate, 30f6d3a0
- OS: macos
- OS Version: 26.6.2
- CPU Architecture: arm64
Bug Description:
macOS 27 introduces a new arm64e.x1 CPU slice in many binaries that ship with the OS. This is a slice that is otherwise the same as arm64e, but assumes a minimum CPU baseline of Apple M6. When opening a binary containing an arm64e.x1 slice, it is reported as being a plain arm64 slice due to how our Mach-O code handles fallback when facing an unknown CPU subtype.
I expect this may result in behavioral problems if a binary contains both arm64 and arm64e.x1 slices, but I didn't find such a binary to test with.
arm64e.x1 has these aarch64 features available without any runtime detection:
#define __ARM_ARCH_8_6__ 1
#define __ARM_ARCH_8_7__ 1
#define __ARM_BF16_FORMAT_ALTERNATIVE 1
#define __ARM_FEATURE_BF16 1
#define __ARM_FEATURE_BF16_SCALAR_ARITHMETIC 1
#define __ARM_FEATURE_BF16_VECTOR_ARITHMETIC 1
#define __ARM_FEATURE_CSSC 1
#define __ARM_FEATURE_FP8 1
#define __ARM_FEATURE_LOCALLY_STREAMING 1
#define __ARM_FEATURE_MATMUL_INT8 1
#define __ARM_FEATURE_MEMORY_TAGGING 1
#define __ARM_FEATURE_PAUTH_LR 1
#define __ARM_FEATURE_SME 1
#define __ARM_FEATURE_SME2 1
#define __ARM_FEATURE_SME2p1 1
#define __ARM_FEATURE_SME_B16B16 1
#define __ARM_FEATURE_SME_F16F16 1
#define __ARM_FEATURE_SME_F8F16 1
#define __ARM_FEATURE_SME_F8F32 1
#define __ARM_FEATURE_SVE_B16B16 1
Steps To Reproduce:
Open /bin/ls from a macOS 27 system and look at the list of architectures in the Select Architecture dialog.
Version and Platform (required):
Bug Description:
macOS 27 introduces a new
arm64e.x1CPU slice in many binaries that ship with the OS. This is a slice that is otherwise the same asarm64e, but assumes a minimum CPU baseline of Apple M6. When opening a binary containing anarm64e.x1slice, it is reported as being a plainarm64slice due to how our Mach-O code handles fallback when facing an unknown CPU subtype.I expect this may result in behavioral problems if a binary contains both
arm64andarm64e.x1slices, but I didn't find such a binary to test with.arm64e.x1has these aarch64 features available without any runtime detection:Steps To Reproduce:
Open
/bin/lsfrom a macOS 27 system and look at the list of architectures in the Select Architecture dialog.