Skip to content

Add support for Apple's vendor-specific aarch64 instructions#8316

Open
bdash wants to merge 1 commit into
devfrom
test_aarch64_apple_extensions
Open

Add support for Apple's vendor-specific aarch64 instructions#8316
bdash wants to merge 1 commit into
devfrom
test_aarch64_apple_extensions

Conversation

@bdash

@bdash bdash commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

The following instructions are disassembled and lifted to intrinsics:

  • genter #imm5
  • gexit
  • sdsb <domain>
  • wkdmc <Xd>, <Xs>
  • wkdmd <Xd>, <Xs>
  • at_as1elx <Xt>
  • mul53lo <Vd>.2d, <Vm>.2d
  • mul53hi <Vd>.2d, <Vm>.2d

Additionally, AMX instructions are disassembled but not yet lifted.

Fixes #5933.

These instructions are in encoding space that is unallocated by ARM. As we do not currently have any mechanism for architecture variants (#979) and these encodings are not currently used by any other vendor, I've opted to have Arm64Architecture decode these unconditionally.

In hopes of a better future, I've structured the code such that the vendor-specific instruction handling is entirely separate from the primary disassembler / lifting logic. When support for architecture variants is added in the future, this logic can all be moved into an Apple-specific variant.

The following instructions are disassembled and lifted to intrinsics:
* `genter #imm5`
* `gexit`
* `sdsb <domain>`
* `wkdmc <Xd>, <Xs>`
* `wkdmd <Xd>, <Xs>`
* `at_as1elx <Xt>`
* `mul53lo <Vd>.2d, <Vm>.2d`
* `mul53hi <Vd>.2d, <Vm>.2d`

Additionally, AMX instructions are disassembled but not yet lifted.

Fixes #5933.

These instructions are in encoding space that is unallocated by ARM. As
we do not currently have any mechanism for architecture variants
(#979) and these
encodings are not currently used by any other vendor, I've opted to have
`Arm64Architecture` decode these unconditionally.

In hopes of a better future, I've structured the code such that the
vendor-specific instruction handling is entirely separate from the
primary disassembler / lifting logic. When support for architecture
variants is added in the future, this logic can all be moved into an
Apple-specific variant.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for GENTER and GEXIT in AArch64 on Apple platforms

1 participant