diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2015-04-23 10:26:25 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2015-04-23 10:26:25 +0000 |
commit | f5ee50a5ab6e5211632d7e5dd6c977d715e6f3b6 (patch) | |
tree | 9a62fd3ab219db3aef9a0340398fa12b852ebdf0 | |
parent | dbb2d725173d6f458eaefa62b02f899869f24e22 (diff) | |
download | gcc-f5ee50a5ab6e5211632d7e5dd6c977d715e6f3b6.zip gcc-f5ee50a5ab6e5211632d7e5dd6c977d715e6f3b6.tar.gz gcc-f5ee50a5ab6e5211632d7e5dd6c977d715e6f3b6.tar.bz2 |
[ARM] Restrict {load,store}_multiple expanders to MAX_LD_STM_OPS regs
* config/arm/arm.md (load_multiple): Reject operand 2 greater than
MAX_LDM_STM_OPS.
(store_multiple): Likewise.
From-SVN: r222357
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 488dc89..fbc9ce3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * config/arm/arm.md (load_multiple): Reject operand 2 greater than + MAX_LDM_STM_OPS. + (store_multiple): Likewise. + +2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * config/arm/arm-protos.h (struct tune_params): Add issue_rate field. * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 164ac13..1b5e62e 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -6676,7 +6676,7 @@ /* Support only fixed point registers. */ if (!CONST_INT_P (operands[2]) - || INTVAL (operands[2]) > 14 + || INTVAL (operands[2]) > MAX_LDM_STM_OPS || INTVAL (operands[2]) < 2 || !MEM_P (operands[1]) || !REG_P (operands[0]) @@ -6701,7 +6701,7 @@ /* Support only fixed point registers. */ if (!CONST_INT_P (operands[2]) - || INTVAL (operands[2]) > 14 + || INTVAL (operands[2]) > MAX_LDM_STM_OPS || INTVAL (operands[2]) < 2 || !REG_P (operands[1]) || !MEM_P (operands[0]) |