aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Stubbs <ams@codesourcery.com>2010-10-28 12:36:14 +0000
committerAndrew Stubbs <ams@gcc.gnu.org>2010-10-28 12:36:14 +0000
commitd724c8f0a9ea6bbb8bfd10fc00754902093e40ce (patch)
tree5ecc5941cbe449b5107364ca72b17038d0ffc40a /gcc
parent2a6fa9aeede4ec1fc977aca8d0ddb8d8f2f89ab9 (diff)
downloadgcc-d724c8f0a9ea6bbb8bfd10fc00754902093e40ce.zip
gcc-d724c8f0a9ea6bbb8bfd10fc00754902093e40ce.tar.gz
gcc-d724c8f0a9ea6bbb8bfd10fc00754902093e40ce.tar.bz2
arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern constants in thumb2.
2010-10-28 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern constants in thumb2. From-SVN: r166029
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2437bfd..bcdb1c2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-10-28 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
+ constants in thumb2.
+
2010-10-28 Eric Botcazou <ebotcazou@adacore.com>
* combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 2586a27..a246d5b 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -2363,11 +2363,17 @@ const_ok_for_arm (HOST_WIDE_INT i)
{
HOST_WIDE_INT v;
- /* Allow repeated pattern. */
+ /* Allow repeated patterns 0x00XY00XY or 0xXYXYXYXY. */
v = i & 0xff;
v |= v << 16;
if (i == v || i == (v | (v << 8)))
return TRUE;
+
+ /* Allow repeated pattern 0xXY00XY00. */
+ v = i & 0xff00;
+ v |= v << 16;
+ if (i == v)
+ return TRUE;
}
return FALSE;