diff options
author | Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | 2009-06-04 14:59:12 +0000 |
---|---|---|
committer | Ramana Radhakrishnan <ramana@gcc.gnu.org> | 2009-06-04 14:59:12 +0000 |
commit | e07e020bbc7c6a0a103a21dccbfa69a110f3e819 (patch) | |
tree | 999a9460253b4503b9d74f22b60c34f4b790574b | |
parent | 4970671dca2be827d483a2fa50357c1bf013e046 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 18 |
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) |