> Can you please post a real-world example, where using %r15 would break > existing code?
I used to run into problems like this when porting code to gcc from icc or VC. A lot of hyper optimized inline assembler snippets wants to use all registers and icc/VC support that. With gcc usually had to add some manual push/pops. In older gcc versions usually more than one because reload tended to error out otherwise. So by try and error used the non fixed registers, but let the compiler know about the others. This case would break. In 64bit it was less a problem than on 32bit, but could still happen. Admittedly medium is somewhat obscure and rarely used (and very slow), but someone could be still using it. -Andi