https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120011

            Bug ID: 120011
           Summary: [15 Regression] Impossible asm constraints in 32 bit
                    libgcc when compiling with -march=x86-64-v4
           Product: gcc
           Version: 15.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libgcc
          Assignee: unassigned at gcc dot gnu.org
          Reporter: stefan.kneifel at bluewin dot ch
  Target Milestone: ---

Regression 15.1.1 against 15.0:

When compiling gcc itself using -march=x86-64-v4, it stops at compiling the 32
bit version of libgcc with the following error:

'asm' operand has impossible constraints or there are not enough registers

creduc'ing the regression gives the following code snippet:
--------------------------------------------------------------------------
long a, b, c, d;

void f()
{
        long e[2];

        if (e[0] | e[1])
        {
                __asm__("add %7,%3; adc %6,%2; adc %5,%1; adc %4,%0"
                        : "=r"(d), "=&r"(c), "=&r"(b), "=&r"(a)
                        : "0"(0L), "g"(e), "g"(e[1]), "g"(e[0]));
        }
}
--------------------------------------------------------------------------

Compiling this with gcc 15.0 works with -march=x86-64-v4 -m32, gcc 15.1.1 does
not work and gives the mentioned error. 64 bit compiling works fine with both
versions.

Reply via email to