You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
LLVM-reserved registers can't be used in inline assembly #85056
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.
Activity
jethrogb commentedon May 7, 2021
At this time, solutions other than “fixing LLVM” seem non-exhaustive or non-trivial. See additional discussion at https://rust-lang.zulipchat.com/#narrow/stream/216763-project-inline-asm/topic/Handling.20clobbers
bstrie commentedon May 7, 2021
Un-reserving registers can be done backwards-compatibly, yes? Presumably this does not block stabilization of
asm!.Merge #336
Lokathor commentedon Jun 24, 2022
It seems that
r6is also reserved by LLVM on ARM with both T32 and A32.r7seems to now be available with A32 (but still not T32).sel4-sys: fixup MCS-affected syscall wrappers for aarch32
Fix r7 register usage in ARM syscall
sel4-sys: fixup MCS-affected syscall wrappers for aarch32
linux-x86: Disable asm version on x86.
oxalica commentedon Mar 12, 2025
Some update in LLVM: llvm/llvm-project#81048
It tried to correctly handle clobbering of BX and BP on x86_64, but turns out the patch does not keep stack alignment correct.