Hi Guys,

  I am checking in the patch below to the mainline and 4.7 branch
  sources to fix a typo in the comparesi3_extend patterns in the rx.md
  file.  Operand 0 is an input operand but it had an = modifier applied
  to it.  This confused gcc's internals and resulted in several ICEs in
  the gcc testsuite.

Cheers
  Nick

gcc/ChangeLog
2012-06-27  Nick Clifton  <ni...@redhat.com>

        * config/rx/rx.md (comparesi3_extend): Remove = modifier from
        input operand.

Index: gcc/config/rx/rx.md
===================================================================
--- gcc/config/rx/rx.md (revision 189013)
+++ gcc/config/rx/rx.md (working copy)
@@ -1868,7 +1868,7 @@
 
 (define_insn "comparesi3_<extend_types:code><small_int_modes:mode>"
   [(set (reg:CC CC_REG)
-       (compare:CC (match_operand:SI                               0 
"register_operand" "=r")
+       (compare:CC (match_operand:SI                               0 
"register_operand" "r")
                    (extend_types:SI (match_operand:small_int_modes 1 
"rx_restricted_mem_operand" "Q"))))]
   "(optimize < 3 || optimize_size)"
   "cmp\t%<extend_types:letter>1, %0"

Reply via email to