Patchwork [ARM] Thumb2 replicated constants

login
register
mail settings
Submitter Andrew Stubbs
Date Aug. 30, 2011, 2:32 p.m.
Message ID <4E5CF46F.5090809@codesourcery.com>
Download mbox | patch
Permalink /patch/112339/
State New
Headers show

Comments

Andrew Stubbs - Aug. 30, 2011, 2:32 p.m.
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

Patch

2011-08-30  Andrew Stubbs  <ams@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)