This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug inline-asm/22045] can't find a register in class 'GENERAL_REGS'


------- Additional Comments From rth at gcc dot gnu dot org  2005-08-08 22:31 -------
I'm calling this one invalid.  We've got:

  eax     __d0 early clobber
  ebx     pic
  ecx     __d1 early clobber
  edx     __s input
  esi     __res early clobber
  edi     __d2 early clobber
  ebp     frame pointer forced by alloca

The problem with the "=&g"(__d3) operand is that (1) there are no more 
registers, and (2) there is no memory that doesn't conflict with the
(*(struct { char __x[0xfffffff]; } *)__s) input, and thus there is no
memory that can satisfy the early clobber.

I'm not 100% certain why this was accepted before gcc 4, but I'm not
curious enough to go looking.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22045


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]