-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Revise arm platform notes regarding soft float #130987
base: master
Are you sure you want to change the base?
Revise arm platform notes regarding soft float #130987
Conversation
These arrived in rust-lang#125690, I think by mistake.
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @ehuss (or someone else) some time within the next two weeks. Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (
|
Some changes occurred in src/doc/rustc/src/platform-support cc @Noratrieb |
Has the same effect, but turning off a feature matches the other flags better than turning on a feature (which actually turns off a feature).
b6a713b
to
1bec022
Compare
Hey ARM Group! This bug has been identified as a good "ARM candidate". cc @adamgemmell @davidtwco @hug-dev @jacobbramley @JamieCunliffe @joaopaulocarreiro @raw-bin @Stammark |
AIUI there are no Arm maintainers for M-Profile, only for the Aarch64 A-Profile. Although they offered to help on a best-effort basis. The designated maintainer is the Cortex-M Team in the Embedded Devices Working Group. I don't think you can ping them on github but I'll post this on their matrix room. |
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.
This seems to do the right thing (at least for the cases I tried and based on the Zulip discussion), and no alarm bells went off when I discussed it with our LLVM teams.
One caveat we noticed — which is really a separate concern — is that there's no way to specify eabihf with no FP. That sounds nonsensical, but it's potentially useful with integer MVE, which uses the same registers. Clang achieves that with +nofp
, which seems to get translated into -mfpu=none
, but I can't find a way to control that through Rust.
Does Integer MVE let you use s0 and d0 even without an FPU?! Wild. |
Yes, at least for the few instructions you'd need to use this ABI. I've not done any real work on these devices so can't claim to be an expert, but the Armv8-M reference manual says that the necessary The FP/vector register file is overlaid so that |
OK, I added some notes to mention that this is a potentially valid setup. |
This PR updates the Arm microcontroller platform docs to recommend
-fpregs
instead of+soft-float
as discussed on Zulip