diff options
author | Yvan Roux <yvan.roux@linaro.org> | 2015-12-02 11:30:47 +0100 |
---|---|---|
committer | Linaro Code Review <review@review.linaro.org> | 2015-12-03 12:56:20 +0000 |
commit | f4736e4769745c8fb39a811c6276df1984355540 (patch) | |
tree | 9912bbd9d0980847c6c169d3931de33c41097b2e | |
parent | 82e3552f42380db76826dccbdc2f55e4de594aa3 (diff) |
gcc/
Backport from trunk r230158.
2015-11-11 Jiong Wang <jiong.wang@arm.com>
Jim Wilson <wilson@gcc.gnu.org>
PR target/67305
* config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
be true and eliminable registers mentioned.
Change-Id: I10516a6bceca8a2030605e43c99b84832f09f5e2
-rw-r--r-- | gcc/config/arm/arm.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index da8924ed006..eed3bf96582 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -12953,14 +12953,14 @@ neon_vector_mem_operand (rtx op, int type, bool strict) rtx ind; /* Reject eliminable registers. */ - if (! (reload_in_progress || reload_completed) - && ( reg_mentioned_p (frame_pointer_rtx, op) + if (strict && ! (reload_in_progress || reload_completed) + && (reg_mentioned_p (frame_pointer_rtx, op) || reg_mentioned_p (arg_pointer_rtx, op) || reg_mentioned_p (virtual_incoming_args_rtx, op) || reg_mentioned_p (virtual_outgoing_args_rtx, op) || reg_mentioned_p (virtual_stack_dynamic_rtx, op) || reg_mentioned_p (virtual_stack_vars_rtx, op))) - return !strict; + return FALSE; /* Constants are converted into offsets from labels. */ if (!MEM_P (op)) |