Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Mach-O] arm64e.x1 is mislabeled as arm64 in UI

Closed
#8,571 0 comments 0 reactions 1 assignee View on GitHub

@bdash is already working on this.

Since Sep 21, 2026.

Assessment

This issue has not been assessed yet.

Description

File Format: Mach-O Impact: Medium

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.

Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
4d 13h
Merged PRs (30d)
20

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Vector35/binaryninja-api

All issues in Vector35/binaryninja-api

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.