On 26/08/11 11:03, Andrew Stubbs wrote:
There was a bug I found in final testing, so this has been delayed
somewhat.

I've just committed this version. There are a few minor changes to the
way negative/inverted constants are generated.

Bernd found another bug whist testing for arm. Apparently there was a bug that didn't show up in my thumb tests, although I have no clue why?

Anyway, fixed thusly and committed as obvious (and urgent).

Andrew
2011-08-30  Andrew Stubbs  <a...@codesourcery.com>

	gcc/
	* config/arm/arm.c (arm_gen_constant): Set can_negate correctly
	when code is SET.

--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -3367,8 +3367,8 @@ arm_gen_constant (enum rtx_code code, enum machine_mode mode, rtx cond,
 
 	  if (code == SET)
 	    {
+	      can_negate = can_invert;
 	      can_invert = 0;
-	      can_negate = 1;
 	      code = PLUS;
 	    }
 	  else if (code == MINUS)

Reply via email to