This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/21291] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 29 Apr 2005 21:45:47 -0000
- Subject: [Bug rtl-optimization/21291] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
- References: <20050429212215.21291.pluto@pld-linux.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-04-29 21:45 -------
Reduced testcase:
typedef unsigned long bngdigit;
typedef bngdigit * bng;
typedef unsigned int bngcarry;
typedef unsigned long bngsize;
bngdigit bng_ia32_mult_sub_digit
(bng a , bngsize alen,
bng b , bngsize blen,
bngdigit d)
{
bngdigit out, tmp;
bngcarry carry;
bngdigit a11;
alen -= blen;
out = 0;
asm(""
: "+r" (a), "+r" (b), "+mr" (blen), "+mr" (out), "=&r" (tmp)
: "mr" (d)
: "eax", "edx");
if (alen == 0) {a11 =out; goto t;}
a11 = 1;
t:
return a11;
}
We are just running out of registers which is what x86 is known for.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21291