aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYvan Roux <yvan.roux@linaro.org>2015-12-02 11:30:47 +0100
committerLinaro Code Review <review@review.linaro.org>2015-12-03 12:56:20 +0000
commitf4736e4769745c8fb39a811c6276df1984355540 (patch)
tree9912bbd9d0980847c6c169d3931de33c41097b2e
parent82e3552f42380db76826dccbdc2f55e4de594aa3 (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.c6
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))