-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Future-proof the ARM64 ABI by not reserving the entire top byte #21453
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
Conversation
Targets that want to use armv8.5a memory tagging will need this. Hopefully nobody comes up with a brilliant reason they need to use anything else.
41ccda9
to
6936ce7
Compare
@swift-ci Please test. |
Build failed |
Build failed |
@swift-ci Please clean test. |
Both test-suite failures were LLDB failures involving |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
Build failed |
Build failed |
@swift-ci Please test. |
Apparently my latest test run might have just not included apple/swift-lldb#1168. |
Targets that want to use armv8.5a memory tagging will need this. Hopefully nobody comes up with a brilliant reason they need to use anything else.
I considered whether to push this to other 64-bit targets and decided that it was pretty architecture-specific. If somehow x86-64 adds a similar feature, there's no reason to think it'll look exactly the same down to the range of bits it claims. (Intel is probably also less likely to be willing to sacrifice address space, whereas ARM already made that decision due to TBI.)
This is a re-submission of #21000 now that
String
is no longer assuming that it can use the entire top 8 bits (#21310). I've also added a test that the behavior changes on ARM64.