This is the mail archive of the gcc-patches@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]

x86 fix operand 2 constraint on *ffs_no_cmove"


Hi,

Building an uberbaum mips-elf toolchain with mainline fails on i686-pc-linux-gnu due to

In file included from /usr/local/src/uberbaum/bfd/elfcode.h:1798,
                 from /usr/local/src/uberbaum/bfd/elf32.c:22:
/usr/local/src/uberbaum/bfd/elflink.h: In function `elf_link_add_object_symbols':
/usr/local/src/uberbaum/bfd/elflink.h:1708: error: insn does not satisfy its constraints:
(insn 5641 5640 5642 200 0x40b1cfd0 (set (strict_low_part (reg:QI 4 sil))
        (eq:QI (reg:CCZ 17 flags)
            (const_int 0 [0x0]))) 362 {setcc_2} (insn_list 5639 (insn_list 5640 (nil)))
    (expr_list:REG_DEAD (reg:CCZ 17 flags)
        (nil)))
/usr/local/src/uberbaum/bfd/elflink.h:1708: internal compiler error: in copyprop_hardreg_forward_1, at regrename

The problem here is that "(reg:QI 4 sil)" isn't valid for x86 although it is valid for x64.

Bootstrapped x86-pc-linux-gnu all languages no regressions and sucessfully built an uberbaum mips-elf toolchain.

Graham

ChangeLog

* config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint,

-------------------------------------------------------------------
Index: i386.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.md,v
retrieving revision 1.470
diff -c -p -r1.470 i386.md
*** i386.md     15 Jun 2003 13:32:29 -0000      1.470
--- i386.md     15 Jun 2003 15:01:15 -0000
***************
*** 14414,14420 ****
  (define_insn_and_split "*ffs_no_cmove"
    [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
        (ffs:SI (match_operand:SI 1 "nonimmediate_operand" "rm")))
!    (clobber (match_scratch:SI 2 "=&r"))
     (clobber (reg:CC 17))]
    ""
    "#"
--- 14414,14420 ----
  (define_insn_and_split "*ffs_no_cmove"
    [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
        (ffs:SI (match_operand:SI 1 "nonimmediate_operand" "rm")))
!    (clobber (match_scratch:SI 2 "=&q"))
     (clobber (reg:CC 17))]
    ""
    "#"
---------------------------------------------------------------------


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