utah rcsid 1.8 87/09/10 12:54:29: The last fix was too liberal with the
authorDonn Seeley <donn@ucbvax.Berkeley.EDU>
Sat, 12 Dec 1987 12:16:36 +0000 (04:16 -0800)
committerDonn Seeley <donn@ucbvax.Berkeley.EDU>
Sat, 12 Dec 1987 12:16:36 +0000 (04:16 -0800)
definition of 'redundant' -- it deleted the first instruction in pairs like
'cvtdl r0,r0; cvtlb r0,-1(fp)'.  We now only make the deletion if the
source of the first instruction is as small as the source of the second
instruction (we use equtype() instead of compat()).

SCCS-vsn: old/pcc/c2.vax/c21.c 4.22

usr/src/old/pcc/c2.vax/c21.c

index 029e654..99389cc 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char sccsid[] = "@(#)c21.c 4.21 %G%";
+static char sccsid[] = "@(#)c21.c 4.22 %G%";
 #endif
 /* char C21[] = {"@(#)c21.c 1.83 80/10/16 21:18:22 JFR"}; /* sccs ident */
 
 #endif
 /* char C21[] = {"@(#)c21.c 1.83 80/10/16 21:18:22 JFR"}; /* sccs ident */
 
@@ -580,7 +580,7 @@ register struct node *p;
        if ((p->op==CVT || p->op==MOVZ)
                && (p->forw->op==CVT || p->forw->op==MOVZ)
                && p->forw->subop&0xf
        if ((p->op==CVT || p->op==MOVZ)
                && (p->forw->op==CVT || p->forw->op==MOVZ)
                && p->forw->subop&0xf
-               && compat(p->subop,p->forw->subop)
+               && equtype(p->subop,p->forw->subop)
                && !source(cp1=regs[RT1])
                && !indexa(cp1)) goto movit;
        if (equtype(p->subop,regs[r][0])
                && !source(cp1=regs[RT1])
                && !indexa(cp1)) goto movit;
        if (equtype(p->subop,regs[r][0])