aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-10-31 03:04:16 +0000
committerRichard Stallman <rms@gnu.org>1993-10-31 03:04:16 +0000
commita81fee56a95764ef7040351599e20506c879fa6a (patch)
treeaed9a7f6b85581b21416150e6e6dd6892f623148
parent41ebeb1d4dcc106019b11f09c0eda48d9470203d (diff)
downloadgcc-a81fee56a95764ef7040351599e20506c879fa6a.zip
gcc-a81fee56a95764ef7040351599e20506c879fa6a.tar.gz
gcc-a81fee56a95764ef7040351599e20506c879fa6a.tar.bz2
(convert_move): When extending to multi-word register
via its low word, clobber the whole thing. From-SVN: r5953
-rw-r--r--gcc/expr.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 0b1eb55..7bf4768 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -874,6 +874,8 @@ convert_move (to, from, unsignedp)
&& ((code = can_extend_p (to_mode, word_mode, unsignedp))
!= CODE_FOR_nothing))
{
+ if (GET_CODE (to) == REG)
+ emit_insn (gen_rtx (CLOBBER, VOIDmode, to));
convert_move (gen_lowpart (word_mode, to), from, unsignedp);
emit_unop_insn (code, to,
gen_lowpart (word_mode, to), equiv_code);