aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-12-04 10:13:50 -0800
committerRichard Henderson <rth@gcc.gnu.org>2004-12-04 10:13:50 -0800
commit346424935e4288bbe4de8b454dad3c83cefeede6 (patch)
tree03056581479653e466bfeed6116819ebbaec80f6
parent8138dfe456d828aeac384816f3378fb8636b34d9 (diff)
downloadgcc-346424935e4288bbe4de8b454dad3c83cefeede6.zip
gcc-346424935e4288bbe4de8b454dad3c83cefeede6.tar.gz
gcc-346424935e4288bbe4de8b454dad3c83cefeede6.tar.bz2
alpha.c (alpha_expand_unaligned_load): Don't forget to use ofs in BWX two byte special case.
* config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to use ofs in BWX two byte special case. (alpha_expand_unaligned_store): Likewise. From-SVN: r91731
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/alpha/alpha.c8
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 06074e1..2b45485 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-04 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to
+ use ofs in BWX two byte special case.
+ (alpha_expand_unaligned_store): Likewise.
+
2004-12-04 Kazu Hirata <kazu@cs.umass.edu>
* gcse.c (gcse_main): Add a comment.
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 125f01a6..26a1cd7 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -3166,8 +3166,8 @@ alpha_expand_unaligned_load (rtx tgt, rtx mem, HOST_WIDE_INT size,
if (TARGET_BWX && size == 2)
{
- meml = adjust_address (mem, QImode, 0);
- memh = adjust_address (mem, QImode, 1);
+ meml = adjust_address (mem, QImode, ofs);
+ memh = adjust_address (mem, QImode, ofs+1);
if (BYTES_BIG_ENDIAN)
tmp = meml, meml = memh, memh = tmp;
extl = gen_reg_rtx (DImode);
@@ -3328,8 +3328,8 @@ alpha_expand_unaligned_store (rtx dst, rtx src,
else
dstl = dsth = const0_rtx;
- meml = adjust_address (dst, QImode, 0);
- memh = adjust_address (dst, QImode, 1);
+ meml = adjust_address (dst, QImode, ofs);
+ memh = adjust_address (dst, QImode, ofs+1);
if (BYTES_BIG_ENDIAN)
addr = meml, meml = memh, memh = addr;