A move from a nonreg to a reg did not have the effect that all
authorsater <none@none>
Thu, 2 Aug 1984 16:31:25 +0000 (16:31 +0000)
committersater <none@none>
Thu, 2 Aug 1984 16:31:25 +0000 (16:31 +0000)
registers clashing with the destination were erased. Erase added.

mach/proto/cg/move.c

index b74e550..3230aa8 100644 (file)
@@ -57,6 +57,7 @@ move(tp1,tp2,ply,toplevel,maxcost) token_p tp1,tp2; unsigned maxcost; {
                } else {
                        if (eqtoken(&machregs[tp2->t_att[0].ar].r_contents,tp1))
                                return(0);
+                       erasereg(tp2->t_att[0].ar);
                        machregs[tp2->t_att[0].ar].r_contents = *tp1;
                }
                for (rp=machregs;rp<machregs+NREGS;rp++) {