(convert_move): When extending to multi-word register
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 31 Oct 1993 03:04:16 +0000 (03:04 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 31 Oct 1993 03:04:16 +0000 (03:04 +0000)
via its low word, clobber the whole thing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5953 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/expr.c

index 0b1eb55..7bf4768 100644 (file)
@@ -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);