Native support for AVR instrinsics
Patryk27 opened this issue · 23 comments
At the moment compiler-builtins isn't useful for AVR, because that platform uses a custom calling convention for intrinsics - supporting AVR here would require:
- Implementing this custom calling convention in LLVM.
- Exposing it in rustc.
- Finally, using it within compiler-builtins.
There are no ongoing plans to do so yet, but over rust-lang/rust#131651 it was pointed out it would be nice to have some kind of message of this issue left, so here we go 🙂
Thanks for filing this. I don't think we are blocked on LLVM having support for the calling convention, instead we should be able to use naked functions to translate the cc like we do for aeabi intrinsics
Lines 21 to 35 in cb06005
I'm not positive how this would interact with the clobbers, however.
Oh, sure, that seems like a good idea 🙂
Separately you may be interested in getting AVR asm to stable. This isn't a blocker for this crate but it may be useful in user code rust-lang/rust#93335
Also, do you know if there is a version of these symbols in assembly that don't come from libgcc? Some of these are probably easy enough that we could provide our own assembly implementations, but we need to be careful with licensing.
Also, do you know if there is a version of these symbols in assembly that don't come from libgcc?
I'm aware only of the libgcc implementation, unfortunately.