On Wed, Jan 29, 2020 at 06:02:34PM +0100, Florian Weimer wrote: > * Segher Boessenkool: > > > On Wed, Jan 29, 2020 at 05:19:19PM +0100, Florian Weimer wrote: > >> * Segher Boessenkool: > >> >> But GCC doesn't expose them as integers to C code, so you can't do much > >> >> without them. > >> > > >> > Sure, it doesn't expose any other registers directly, either. > >> > >> I can use r0 & 1 with a register variable r0 to check a bit. > > > > That is not reliable, or supported, and it *will* break. This is > > explicit for local register asm, and global register asm is > > underdefined. > > Ugh. I did not know that. And neither did the person who wrote > powerpc64/sysdep.h because it uses register variables in regular C > expressions. 8-( Other architectures are affected as well.
Where? I don't see any? Ah, the other one, heh (there are two). No, that *is* supported: as input to or output from an asm, a local register asm variable *is* guaranteed to live in the specified register. This is the *only* supported use. Other uses may sometimes still work, but they never worked reliably, and it cannot be made reliable; it has been documented as not supported since ages, and it will not work at all anymore some day. Segher