-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Support 128-bit atomics on x86_64-fortanix-unknown-sgx #130552
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
base: master
Are you sure you want to change the base?
Conversation
r? @wesleywiser rustbot has assigned @wesleywiser. Use |
These commits modify compiler targets. |
Yes SGX is generally considered Intel-specific. If you could point to where in the Intel documentation it talks about 128-bit atomics always being supported, that would be helpful. |
Sorry, I do not know of any Intel documentation that explains this. I mainly referred to the following three resources:
|
Ah, "CMPXCHG8B/CMPXCHG16B—Compare and Exchange Bytes" section in Intel 64 and IA-32 Architectures Software Developer’s Manual says CMPXCHG16B in 64-Bit Mode is "Valid". (When it is not available on older CPUs, such as CMPXCHG8B/CMPXCHG in Compat/Leg Mode, it has annotation about compatibility -- they are "Valid*" not "Valid" and have "IA-32 Architecture Compatibility" sections that say "not supported on Intel processors earlier than ...".) EDIT: I missed exceptions sections #130552 (comment) |
Just the “valid” note is not sufficient. In the instruction description under 64-mode exceptions, it says:
Which indicates that CPU support is not guaranteed in general. |
@taiki-e FYI: when a PR is ready for review, send a message containing |
Based on my comment in #99069 (comment):
cc @jethrogb: Is it okay to have the above assumptions for this target? (Or is this target intentionally not currently enabling cx16 for some reason?)