[backport from gcc-4.7/trunk via ARM/embedded-4_6-branch ] gcc/ 2011-09-19 Jiangning Liu Backport r175208 from mainline 2011-06-20 Ramana Radhakrishnan PR target/49385 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast one of the operands is a register. --- gcc-4.6.2/gcc/config/arm/thumb2.md.~1~ 2011-01-03 21:52:22.000000000 +0100 +++ gcc-4.6.2/gcc/config/arm/thumb2.md 2011-12-17 18:47:13.000000000 +0100 @@ -207,7 +207,9 @@ (define_insn "tls_load_dot_plus_four" (define_insn "*thumb2_movhi_insn" [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,m,r") (match_operand:HI 1 "general_operand" "rI,n,r,m"))] - "TARGET_THUMB2" + "TARGET_THUMB2 + && (register_operand (operands[0], HImode) + || register_operand (operands[1], HImode))" "@ mov%?\\t%0, %1\\t%@ movhi movw%?\\t%0, %L1\\t%@ movhi