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

Reply via email to