This patch changes the LRA emit_inc routine so that it takes a poly_int64 rather than an int.
2017-10-23 Richard Sandiford <richard.sandif...@linaro.org> Alan Hayward <alan.hayw...@arm.com> David Sherwood <david.sherw...@arm.com> gcc/ * lra-constraints.c (emit_inc): Change inc_amount from an int to a poly_int64. Index: gcc/lra-constraints.c =================================================================== --- gcc/lra-constraints.c 2017-10-23 17:19:21.001863152 +0100 +++ gcc/lra-constraints.c 2017-10-23 17:20:47.003797985 +0100 @@ -3533,7 +3533,7 @@ process_address (int nop, bool check_onl Return pseudo containing the result. */ static rtx -emit_inc (enum reg_class new_rclass, rtx in, rtx value, int inc_amount) +emit_inc (enum reg_class new_rclass, rtx in, rtx value, poly_int64 inc_amount) { /* REG or MEM to be copied and incremented. */ rtx incloc = XEXP (value, 0); @@ -3561,7 +3561,7 @@ emit_inc (enum reg_class new_rclass, rtx if (GET_CODE (value) == PRE_DEC || GET_CODE (value) == POST_DEC) inc_amount = -inc_amount; - inc = GEN_INT (inc_amount); + inc = gen_int_mode (inc_amount, GET_MODE (value)); } if (! post && REG_P (incloc))