[Bug inline-asm/22045] New: can't find a register in class 'GENERAL_REGS'
macro at linux-mips dot org
gcc-bugzilla@gcc.gnu.org
Mon Jun 13 13:32:00 GMT 2005
This seems a bit different to the two other bugs in this class, so I'm filing
it separately. For the attached code (extracted from glibc, with some
modifications), built with:
$ i386-linux-gcc md5-crypt.i -c -O2 -pipe -fPIC -fomit-frame-pointer -o md5-crypt.os
(-fomit-frame-pointer given for illustration only) GCC runs out of registers,
even though the problematic asm insists on having four registers available
only. That means at least one free register is still available (there would
be two if alloca() didn't consume %ebp) -- how many is GCC meant to require?
What's interesting, replacing the "=&g" constraint for "__d3" with "=m"
(a patch attached for clarity) makes the failure go away, so it looks like
it is really a wrong one.
--
Summary: can't find a register in class 'GENERAL_REGS'
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: inline-asm
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: macro at linux-mips dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i386-linux-gnu
GCC host triplet: i386-linux-gnu
GCC target triplet: i386-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22045
More information about the Gcc-bugs
mailing list