http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56121



Oleg Endo <olegendo at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Target|sh*-*-*                     |sh2a-*-*



--- Comment #1 from Oleg Endo <olegendo at gcc dot gnu.org> 2013-01-27 15:44:23 
UTC ---

This is an SH2A specific problem.

If I understand correctly, in this case two reloads for the failing bld_reg

insn are required, one for operands[0] and one for operands[1].

Applying the following:



Index: gcc/config/sh/sh.md

===================================================================

--- gcc/config/sh/sh.md    (revision 195493)

+++ gcc/config/sh/sh.md    (working copy)

@@ -13236,7 +13236,7 @@

     (zero_extract:SI (match_operand:SI 0 "arith_reg_operand" "r")

              (const_int 1)

              (match_operand 1 "const_int_operand" "K03")))]

-  "TARGET_SH2A"

+  "TARGET_SH2A && satisfies_constraint_K03 (operands[1])"

   "bld    %1,%0")



 (define_insn "*bld_regqi"



fixes the problem.  However, there are more insns of this type that might be

fail and probably should be modified as well...

Reply via email to