"because it doesn't want to clobber rbx since you have fixed it"
But that doesn't make sense. The "=r" constraint signifies that it's allowed, yes, *expected* to clobber the register! That's important for instruction reordering, so that the compiler knows which blocks have what dependency.

Comments