http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59086
--- Comment #8 from Jan Hubicka <hubicka at ucw dot cz> --- > Do we have any documentation that states how many registers can be used in > inline assembler for a particular arch and optset? "almost all" is not good > enough for that. It is somewhat difficult question. Basically you are not supposed to use any "fixed" registers where fixed set of registers depends on compilation flags. For example ESP is always fixed, EBP is fixed depending on frame pointer elimination. With PIC you need also EBP for GOT pointer and for DRAP you need another register. You need to leave enough registers so reload can load all additional operand and addresses. Things may have also changes with IRA - last time I looked into this was with old reload. Vladimir, do you have idea about more precise description? > > If the user code that worked in 4.8 correctly is now broken for 4.9, we better > need to respect the user and document it properly. Well, the problem is that precise set of constraints is exremely tied to compiler internals (and it also changes from release to release, indeed). It is overall problem of ASM statement extension in GCC, sadly. Honza