Skip to content

Commit da3ff7a

Browse files
committed
Add support for Apple's vendor-specific aarch64 instructions
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.
1 parent c293c36 commit da3ff7a

5 files changed

Lines changed: 647 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)