This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/32004] [4.1/4.2/4.3 regression] : can't find a register in class 'GENERAL_REGS' while reloading 'asm'
- From: "hjl at lucon dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 May 2007 14:33:44 -0000
- Subject: [Bug middle-end/32004] [4.1/4.2/4.3 regression] : can't find a register in class 'GENERAL_REGS' while reloading 'asm'
- References: <bug-32004-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #16 from hjl at lucon dot org 2007-05-21 15:33 -------
Gcc 4.1/4.2/4.3 will fail and gcc 3.4 has no problem:
---
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;
int x = blen;
out = 0;
asm (""
: "+r" (a), "+r" (b), "+mr" (blen), "+mr" (out), "=&r" (tmp)
: "mr" (d)
: "eax", "edx");
if (alen == blen)
{
a11 = out;
goto t;
}
if (x == 0)
goto t;
a11 = 1;
t:
return a11;
}
---
--
hjl at lucon dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[4.3 regression] : |[4.1/4.2/4.3 regression] :
|gcc.target/i386/pr21291.c |can't find a register in
| |class 'GENERAL_REGS' while
| |reloading 'asm'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32004