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]

[ARM, 4.4] Fix thumb2 ICE with unmatched pattern


This patch fixes an ICE on thumb2 in gcc-4.4.  The equivalent patch was
applied by Ramana to trunk earlier this year as part of a larger change,
but only this bit is needed to fix the ICE.

Essentially a thumb2 pattern (used as part of a compulsory split) had a
final condition of TARGET_ARM, and thus never matched.  This caused an
ICE when the resulting RTL was unmatched.

Reg-tested on arm-eabi and applied to the 4.4 branch.

2009-12-02  Richard Earnshaw  <rearnsha@arm.com>

	* arm/thumb2.md (thumb_andsi_not_shiftsi_si): Final condition should
	be TARGET_THUMB2.

*** config/arm/thumb2.md	(revision 154919)
--- config/arm/thumb2.md	(local)
*************** (define_insn "*thumb_andsi_not_shiftsi_s
*** 57,63 ****
  			 [(match_operand:SI 2 "s_register_operand" "r")
  			  (match_operand:SI 3 "const_int_operand" "M")]))
  		(match_operand:SI 1 "s_register_operand" "r")))]
!   "TARGET_ARM"
    "bic%?\\t%0, %1, %2%S4"
    [(set_attr "predicable" "yes")
     (set_attr "shift" "2")
--- 57,63 ----
  			 [(match_operand:SI 2 "s_register_operand" "r")
  			  (match_operand:SI 3 "const_int_operand" "M")]))
  		(match_operand:SI 1 "s_register_operand" "r")))]
!   "TARGET_THUMB2"
    "bic%?\\t%0, %1, %2%S4"
    [(set_attr "predicable" "yes")
     (set_attr "shift" "2")

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