https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87733
--- Comment #15 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Rich Felker from comment #12) > > You can work around it on older GCC by simply not using a register var > > for more than one asm operand, I think? > > Nope. Making a syscall inherently requires binding specific registers for > all of the inputs/outputs, unless you want to spill everything to an > explicit structure in memory and load them all explicitly in the asm block. > So it really is a big deal. I didn't say this very well... The only issue is using the same hard register for two different operands. You don't need to do this for syscalls (and you do not *need* that *ever*, of course). Can you post some code that fails? If you think this is a GCC bug (in some older branch?) that we should fix, please open a new PR for it.