aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1998-03-31 19:24:52 +0000
committerJim Wilson <wilson@gcc.gnu.org>1998-03-31 11:24:52 -0800
commit1a7cb241b30eace4ffa11d9254a442c830480050 (patch)
treec12913968eb1e8252b3df28cc04e032829d1d81c /gcc
parent221a9f65a1cf81b1987c151515f668b774c2e65f (diff)
downloadgcc-1a7cb241b30eace4ffa11d9254a442c830480050.zip
gcc-1a7cb241b30eace4ffa11d9254a442c830480050.tar.gz
gcc-1a7cb241b30eace4ffa11d9254a442c830480050.tar.bz2
Fix alpha-vms packed-1 failure.
* alpha.c (alpha_expand_unaligned_load): Use tgt instead of addr as dest of expand_binop call. From-SVN: r18921
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/alpha/alpha.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9f8b341..6a0f856 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
Tue Mar 31 16:57:33 1998 Jim Wilson <wilson@cygnus.com>
+ * alpha.c (alpha_expand_unaligned_load): Use tgt instead of addr
+ as dest of expand_binop call.
+
* alpha.md (extzv): Correct check for valid operand[2] values.
* profile.c (branch_prob): Add code to recognize HPPA tablejump entry
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 171b311..43aeab3 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -1337,7 +1337,10 @@ alpha_expand_unaligned_load (tgt, mem, size, ofs, sign)
emit_insn (gen_extxl (extl, meml, GEN_INT (64), addr));
emit_insn (gen_extqh (exth, memh, addr));
- addr = expand_binop (DImode, ior_optab, extl, exth, addr, 1, OPTAB_WIDEN);
+ /* We must use tgt here for the target. Alpha-vms port fails if we use
+ addr for the target, because addr is marked as a pointer and combine
+ knows that pointers are always sign-extended 32 bit values. */
+ addr = expand_binop (DImode, ior_optab, extl, exth, tgt, 1, OPTAB_WIDEN);
addr = expand_binop (DImode, ashr_optab, addr, GEN_INT (48),
addr, 1, OPTAB_WIDEN);
}