diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4212388..cc3bd64 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-04-17 Chung-Lin Tang <cltang@codesourcery.com> + + * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC + memory operands. + 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com> * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index d9b9829..dc45eb0 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -9070,6 +9070,11 @@ neon_struct_mem_operand (rtx op) if (GET_CODE (ind) == REG) return arm_address_register_rtx_p (ind, 0); + /* vldm/vstm allows POST_INC (ia) and PRE_DEC (db). */ + if (GET_CODE (ind) == POST_INC + || GET_CODE (ind) == PRE_DEC) + return arm_address_register_rtx_p (XEXP (ind, 0), 0); + return FALSE; } |