Using gcc version 4.4.0 20090207 (experimental) (GCC) > /usr/local/gcc44/bin/gcc -O0 -fno-pic -fomit-frame-pointer -S cabac-ret.i > /usr/local/gcc44/bin/gcc -O1 -fno-pic -fomit-frame-pointer -S cabac-ret.i cabac-ret.i: In function 'get_cabac_minput': cabac-ret.i:24: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' cabac-ret.i:24: error: 'asm' operand has impossible constraints
This is an asm using 7 registers; above -O0 one of the inputs in the second version is combined into a complex memory operand, which uses 8 registers in one statement and fails to compile. It would be nice if it could fall back to a seperate add for x86-32, since the memory clobber in the first version might cause suboptimal code. -- Summary: x86 asm *(a+b) input causes out of registers above -O0 Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: astrange at ithinksw dot com GCC build triplet: i?86-*-* GCC host triplet: i?86-*-* GCC target triplet: i?86-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39123