aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCatherine Moore <clm@cygnus.com>1999-04-20 16:42:31 +0000
committerCatherine Moore <clm@gcc.gnu.org>1999-04-20 12:42:31 -0400
commit0f834f0a3e618d5af3dfdeb1dba4ffe085fd4484 (patch)
treef59673008b570f512eadcb31c01109d6ef5a8c9b
parent76409268c445eaaa65619bcc0266661b779409f5 (diff)
downloadgcc-0f834f0a3e618d5af3dfdeb1dba4ffe085fd4484.zip
gcc-0f834f0a3e618d5af3dfdeb1dba4ffe085fd4484.tar.gz
gcc-0f834f0a3e618d5af3dfdeb1dba4ffe085fd4484.tar.bz2
arm.md (movhi): Add check for odd offset.
Tue Apr 20 17:57:14 1999 Catherine Moore <clm@cygnus.com> * config/arm/arm.md (movhi): Add check for odd offset. From-SVN: r26564
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/arm/arm.md3
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c31352a..fd67f31 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Tue Apr 20 17:57:14 1999 Catherine Moore <clm@cygnus.com>
+
+ * config/arm/arm.md (movhi): Add check for odd offset.
+
Tue Apr 20 13:14:58 EDT 1999 John Wehle (john@feith.com)
* i386.c (output_move_double): Abort if a non-offsettable
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 2c2d48b..174b00b 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -2913,10 +2913,11 @@
if ((GET_CODE (base = XEXP (operands[1], 0)) == REG
|| (GET_CODE (base) == PLUS
&& GET_CODE (offset = XEXP (base, 1)) == CONST_INT
+ && ((INTVAL(offset) & 1) != 1)
&& GET_CODE (base = XEXP (base, 0)) == REG))
&& REGNO_POINTER_ALIGN (REGNO (base)) >= 4)
{
- HOST_WIDE_INT new_offset = INTVAL (offset) & ~2;
+ HOST_WIDE_INT new_offset = INTVAL (offset) & ~3;
rtx new;
new = gen_rtx_MEM (SImode,