This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/65304] New: [4.9] [ARM] incorrect "asm operand has impossible constraints" error


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

            Bug ID: 65304
           Summary: [4.9] [ARM] incorrect "asm operand has impossible
                    constraints" error
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: cbaylis at gcc dot gnu.org
            Target: arm-unknown-linux-gnueabihf

Created attachment 34940
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34940&action=edit
Original test case

The attached test case, and reduced variant result in an error: "asm operand
has impossible constraints". This is a regression since 4.8.

$ arm-unknown-linux-gnueabihf-gcc -O2 -S orig.c -mbig-endian -mthumb
-march=armv7-a -mtune=cortex-a8
orig.c: In function ârpc_print_iostatsâ:
orig.c:169:4: error: âasmâ operand has impossible constraints
    asm ( "umlal %R0, %Q0, %R2, %Q3\n\t"  \
    ^
orig.c:215:2: note: in expansion of macro âdo_divâ
  do_div(t, 1000000);
  ^
-----
or

$ arm-unknown-linux-gnueabihf-gcc -O2 -S reduced.c -mbig-endian -mthumb
-march=armv7-a -mtune=cortex-a8
reduced.c: In function âfn2â:
reduced.c:26:7: error: âasmâ operand has impossible constraints
       asm("    @asm2 %R0 %Q0 %R1 %R2 %Q2 %R3 %Q3" : "+&r"(n), "+&r"(q) :
"r"(o), "r"(p));
       ^


This does not occur on trunk, due to commit r209615:
2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

       * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
       restrictions on core registers for DImode values in Thumb2.

However, since similar restrictions still exist in ARM state, it is possible
that there remains a latent bug on trunk.

This bug was originally reported in Linaro bugzilla
https://bugs.linaro.org/show_bug.cgi?id=1199

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]