An attempt to make "erasereg" a little more efficient, as it seems
authorceriel <none@none>
Sat, 21 Feb 1987 22:20:10 +0000 (22:20 +0000)
committerceriel <none@none>
Sat, 21 Feb 1987 22:20:10 +0000 (22:20 +0000)
often to be called to erase the condition codes.

mach/proto/cg/reg.c

index 187c924..3b394ec 100644 (file)
@@ -73,14 +73,19 @@ erasereg(regno) {
        register struct reginfo *rp;
        register int i;
 
-#if MAXMEMBERS==0
+#if MAXMEMBERS!=0
+       if (regno == 1)  { /* condition codes */
+#endif
        rp = &machregs[regno];
        rp->r_contents.t_token = 0;
        for (i=0;i<TOKENSIZE;i++)
                rp->r_contents.t_att[i].aw = 0;
 
+#if MAXMEMBERS == 0
        awayreg(regno);
+
 #else
+       } else
        for (rp=machregs;rp<machregs+NREGS;rp++)
                if (rp->r_clash[regno>>4]&(1<<(regno&017))) {
                        rp->r_contents.t_token = 0;