Repository navigation
Support for Apple arm64e and arm64e.x1 (Pointer Authentication & Checked Pointer Arithmetic) targets #9651
jpoumailloux
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi folks,
We would like to upstream support for Apple's
arm64eandarm64e.x1ABIs on 64-bit Darwin ARM (iosandmacos) in two small, self-contained PRs:arm64etarget feature & Pointer Authentication (PAC) codegen:Target::ARM64e(arm64e), valid on 64-bitarmwithiosormacos(implyingarmv83aandarm_fp16, and treated as an ABI-matching feature inget_runtime_compatible_target).llvm::Triple::AArch64SubArch_arm64eoniosandmacos, defaults iOSmcpu_target()toapple-a12, and adds the Darwinarm64eptrauth-*/aarch64-jump-table-hardeningfunction attributes.llvm::ConstantPtrAuth(IAkey0, discriminator0, matching Darwin userspacearm64e), attaches"ptrauth"(i32 0, i64 0)operand bundles to indirect calls across AOT and JIT modules, and signs JIT-resolved function pointers viallvm::orc::ExecutorAddr::toPtronptrauth_callshosts.arm64e_x1target feature (FEAT_PAuth_LR+FEAT_CPA2):Target::ARM64eX1(arm64e_x1, implyingarm64e,armv87a,arm_fp16, andarm_dot_prod), usingapple-m5(currently the newest Apple CPU model in LLVM) asmcpu_target()and enabling+pauth-lr(branch-protection-pauth-lr) and+cpa(-aarch64-use-featcpa-codegen=true).CPU_SUBTYPE_ARM64E_X1(0x8000000c) Mach-Ocpusubtypewhen writing Darwinarm64eobject files with+cpa.Please let us know if the target naming (
arm64e/arm64e_x1) or overall design looks good, or if you prefer any adjustments!All reactions