http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57299
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Chris Mihelich from comment #6) > I agree with your interpretation in this one sense: GCC appears to be > assigning registers to the "m" and "=m" values as you suggest. That makes > my test case need six registers (not four) instead of the two it really > needs. That is the defect I was trying to describe. Actually it only needs 4 (and not 6) due to holding of the pointer of y and x can happen with only 2 registers. And you can use the operands of the m inside the inline-asm which is why it needs to store the pointer in a register.