diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2014-06-06 17:22:34 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2014-06-06 17:22:34 +0000 |
commit | 5a770e0137b2dbfcf87978b6ec949114449ad1a9 (patch) | |
tree | aefe1ecd4d6369bfc4ffaac75091b8be5f4fb778 /gcc/lra-constraints.c | |
parent | 4dadc66d180efede2b31bc3c45a9602cd03fca84 (diff) | |
download | gcc-5a770e0137b2dbfcf87978b6ec949114449ad1a9.zip gcc-5a770e0137b2dbfcf87978b6ec949114449ad1a9.tar.gz gcc-5a770e0137b2dbfcf87978b6ec949114449ad1a9.tar.bz2 |
re PR rtl-optimization/61325 (aarch64_be build fails)
2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/61325
* lra-constraints.c (process_address_1): Check scale equal to one
to prevent transformation: base + scale * index => base + new_reg.
From-SVN: r211320
Diffstat (limited to 'gcc/lra-constraints.c')
-rw-r--r-- | gcc/lra-constraints.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index cafbc89..08716fe 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, |