arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC memory operands.
authorChung-Lin Tang <cltang@codesourcery.com>
Sun, 17 Apr 2011 18:17:15 +0000 (18:17 +0000)
committerChung-Lin Tang <cltang@gcc.gnu.org>
Sun, 17 Apr 2011 18:17:15 +0000 (18:17 +0000)
2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>

* config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
memory operands.

From-SVN: r172617

gcc/ChangeLog
gcc/config/arm/arm.c

index 4212388a4b4034fada71b0f4d13924481f23d9fc..cc3bd641021c8659798459bfa0c40505716a24bf 100644 (file)
@@ -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
index d9b9829c3c682fcbbadd180d8431d0a256bb4e39..dc45eb0203cbf8ca3be3ffcfd3687352e654a794 100644 (file)
@@ -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;
 }