aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>2009-06-04 14:59:12 +0000
committerRamana Radhakrishnan <ramana@gcc.gnu.org>2009-06-04 14:59:12 +0000
commite07e020bbc7c6a0a103a21dccbfa69a110f3e819 (patch)
tree999a9460253b4503b9d74f22b60c34f4b790574b
parent4970671dca2be827d483a2fa50357c1bf013e046 (diff)
downloadgcc-e07e020bbc7c6a0a103a21dccbfa69a110f3e819.zip
gcc-e07e020bbc7c6a0a103a21dccbfa69a110f3e819.tar.gz
gcc-e07e020bbc7c6a0a103a21dccbfa69a110f3e819.tar.bz2
arm.c (thumb2_legitimate_index_p): Initialize val after checking for integers.
2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * config/arm/arm.c (thumb2_legitimate_index_p): Initialize val after checking for integers. From-SVN: r148170
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.c18
2 files changed, 15 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 84bf219..9c3de31 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
+ val after checking for integers.
+
2009-06-04 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 141a4b8..1f5c3ae 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -4266,15 +4266,17 @@ thumb2_legitimate_index_p (enum machine_mode mode, rtx index, int strict_p)
if (mode == DImode || mode == DFmode)
{
- HOST_WIDE_INT val = INTVAL (index);
- /* ??? Can we assume ldrd for thumb2? */
- /* Thumb-2 ldrd only has reg+const addressing modes. */
- if (code != CONST_INT)
+ if (code == CONST_INT)
+ {
+ HOST_WIDE_INT val = INTVAL (index);
+ /* ??? Can we assume ldrd for thumb2? */
+ /* Thumb-2 ldrd only has reg+const addressing modes. */
+ /* ldrd supports offsets of +-1020.
+ However the ldr fallback does not. */
+ return val > -256 && val < 256 && (val & 3) == 0;
+ }
+ else
return 0;
-
- /* ldrd supports offsets of +-1020.
- However the ldr fallback does not. */
- return val > -256 && val < 256 && (val & 3) == 0;
}
if (code == MULT)