2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
* config/arm/arm.c (arm_legitimize_reload_address): For NEON
quad-word modes, reduce to 9-bit index range when above 1016
limit.
From-SVN: r172779
+2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
+
+ * config/arm/arm.c (arm_legitimize_reload_address): For NEON
+ quad-word modes, reduce to 9-bit index range when above 1016
+ limit.
+
2011-04-20 Andrew Stubbs <ams@codesourcery.com>
* config/arm/arm.c (arm_gen_constant): Move movw support ....
: 0)
if (coproc_p)
- low = SIGN_MAG_LOW_ADDR_BITS (val, 10);
+ {
+ low = SIGN_MAG_LOW_ADDR_BITS (val, 10);
+
+ /* NEON quad-word load/stores are made of two double-word accesses,
+ so the valid index range is reduced by 8. Treat as 9-bit range if
+ we go over it. */
+ if (TARGET_NEON && VALID_NEON_QREG_MODE (mode) && low >= 1016)
+ low = SIGN_MAG_LOW_ADDR_BITS (val, 9);
+ }
else if (GET_MODE_SIZE (mode) == 8)
{
if (TARGET_LDRD)