From bbf73e27ac8bd56e5a3d96c7fd361c0605b8d0d1 Mon Sep 17 00:00:00 2001 From: vmakarov Date: Fri, 6 Jun 2014 17:22:34 +0000 Subject: 2014-06-06 Vladimir Makarov PR rtl-optimization/61325 * lra-constraints.c (process_address_1): Check scale equal to one to prevent transformation: base + scale * index => base + new_reg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211320 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/lra-constraints.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc/lra-constraints.c') diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index cafbc898c66..08716fe698a 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -3033,6 +3033,13 @@ process_address_1 (int nop, rtx *before, rtx *after) *ad.inner = simplify_gen_binary (PLUS, GET_MODE (new_reg), new_reg, *ad.index); } + else if (get_index_scale (&ad) == 1) + { + /* The last transformation to one reg will be made in + curr_insn_transform function. */ + end_sequence (); + return false; + } else { /* base + scale * index => base + new_reg, -- cgit v1.2.1