From 1a7cb241b30eace4ffa11d9254a442c830480050 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 31 Mar 1998 19:24:52 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 3 +++ gcc/config/alpha/alpha.c | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9f8b341257a..6a0f8565807 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Tue Mar 31 16:57:33 1998 Jim Wilson + * 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 171b311e201..43aeab37161 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); } -- 2.30.2