2012-01-16 Michael Hope Backport from mainline r182561: 2011-12-20 Richard Henderson gcc/ * config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2. * config/arm/arm.c (arm_select_cc_mode): Use it. === modified file 'gcc/config/arm/arm.c' --- old/gcc/config/arm/arm.c 2012-01-15 22:02:31 +0000 +++ new/gcc/config/arm/arm.c 2012-01-23 00:06:27 +0000 @@ -11602,7 +11602,7 @@ return CC_Zmode; /* We can do an equality test in three Thumb instructions. */ - if (!TARGET_ARM) + if (!TARGET_32BIT) return CC_Zmode; /* FALLTHROUGH */ @@ -11614,7 +11614,7 @@ /* DImode unsigned comparisons can be implemented by cmp + cmpeq without a scratch register. Not worth doing in Thumb-2. */ - if (TARGET_ARM) + if (TARGET_32BIT) return CC_CZmode; /* FALLTHROUGH */ === modified file 'gcc/config/arm/arm.md' --- old/gcc/config/arm/arm.md 2012-01-05 15:35:39 +0000 +++ new/gcc/config/arm/arm.md 2012-01-15 21:02:00 +0000 @@ -7515,8 +7515,8 @@ [(set (reg:CC_CZ CC_REGNUM) (compare:CC_CZ (match_operand:DI 0 "s_register_operand" "r") (match_operand:DI 1 "arm_di_operand" "rDi")))] - "TARGET_ARM" - "cmp%?\\t%R0, %R1\;cmpeq\\t%Q0, %Q1" + "TARGET_32BIT" + "cmp\\t%R0, %R1\;it eq\;cmpeq\\t%Q0, %Q1" [(set_attr "conds" "set") (set_attr "length" "8")] )