Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for arm64e (Fixes #4490) #8330

Draft
wants to merge 8 commits into
base: main
Choose a base branch
from
Draft

Add support for arm64e (Fixes #4490) #8330

wants to merge 8 commits into from

Conversation

steven-johnson
Copy link
Contributor

No description provided.

@steven-johnson steven-johnson marked this pull request as ready for review June 27, 2024 00:17
Copy link
Member

@alexreinking alexreinking left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing Python enum values?

Copy link
Member

@alexreinking alexreinking left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Never mind. Mobile is dumb.

@abadams
Copy link
Member

abadams commented Jun 27, 2024

Does it pass the checks it injects though? Last time we talked about this I thought there was going to be a problem around our use of function pointers because indirect branches need special treatment. It looks almost impossible to test on macos: (https://stackoverflow.com/questions/75186888/how-to-enable-the-arm-pointer-authentication-code-pac-on-macos)

Edit: simd_op_check would at least let us test that the instructions are being emitted.

@steven-johnson
Copy link
Contributor Author

Does it pass the checks it injects though?

No idea. Still testing. Converting back to draft for now.

@steven-johnson steven-johnson marked this pull request as draft June 27, 2024 15:43
@steven-johnson
Copy link
Contributor Author

Last time we talked about this I thought there was going to be a problem around our use of function pointers because indirect branches need special treatment.

Did we talk about this before? I've apparently flushed those memories.

It looks almost impossible to test on macos: (https://stackoverflow.com/questions/75186888/how-to-enable-the-arm-pointer-authentication-code-pac-on-macos)

That's likely gonna rule me out for testing anything, then (at least in the short term) because I don't possess any iDevices, nor can I get any in the next couple of days.

Is this something that anyone at Adobe has the bandwidth or expertise to look into in the short term? I hate to punt something after seeing that it's hard to do, but I'm about to take two weeks vacation, and if this is something that might be resolvable by someone who won't be starting from ground zero on iOS it would be a big favor (I haven't even attempted to build/debug/etc for an iDevice pre-pandemic, at least)

@steven-johnson steven-johnson changed the title Add support for arm64e Add support for arm64e (Fixes #4490) Jun 27, 2024
@steven-johnson
Copy link
Contributor Author

This appears to be a good overview of arm64e: https://github.com/lelegard/arm-cpusysregs/blob/main/docs/arm64e-on-macos.md

@steven-johnson
Copy link
Contributor Author

I've brought this up to date, but as of July 2024, the support for arm64e in upstream LLVM doesn't appear to match that in recent XCode versions, so it's not really useful. This will likely need to wait for Apple to upstream their fixes from their private branch into the main branch.

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.

3 participants