This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/18630] can't find a register in class `GENERAL_REGS' when trying to make Firefox 1.0
- From: "uweigand at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Nov 2004 13:27:28 -0000
- Subject: [Bug target/18630] can't find a register in class `GENERAL_REGS' when trying to make Firefox 1.0
- References: <20041123161631.18630.Dirk.Schwartzkopff@gmx.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From uweigand at gcc dot gnu dot org 2004-11-24 13:27 -------
The inline assembly statement is impossible to reload under the
given circumstances. Note that the statement requires 12 general
purpose registers at the same time (6 inputs and 6 clobbers), but
using the options you give, GCC 3.2 has only 11 general purpose
registers available for general use (namely %r0 .. %r10; %r11 is
the frame pointer, %r12 the GOT pointer, %r13 the literal pool
pointer, %r14 the return address register and %r15 the stack pointer).
You could either
- rewrite the assembly to require one fewer register
- build with -O (or -fomit-frame-pointer) to free up %r11
- build without -fPIC to free up %r12 (probably impossible)
- use GCC 3.4 (as this makes %r14 available for general use)
I'd recommend to simply use -O2.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18630