Open
Description
On several architectures, some registers are considered reserved by LLVM. These registers effectively can't be used by LLVM's inline assembly instruction as in input/output/clobber.
rustc
currently disallows using these registers in asm!
. This seems to be in contradiction with a stated goal in the RFC:
The intent is that support for asm! should be independent of the rustc back-end used
As such, I'd expect there to be no backend-specific limitations on inline assembly.
Current LLVM-reserved registers are:
- x86: esi
- x86-64: rbx
- ARM: r7