modified to generate the clashes table in another form too
authorceriel <none@none>
Thu, 31 Mar 1988 10:00:07 +0000 (10:00 +0000)
committerceriel <none@none>
Thu, 31 Mar 1988 10:00:07 +0000 (10:00 +0000)
util/ncgg/output.c

index 298a008..0b0f546 100644 (file)
@@ -261,6 +261,8 @@ outincludes() {
 outregs() {
        register i,j,k;
        short rset[SZOFSET(MAXREGS)];
+       short clashlist[MAXREGS*MAXREGS];
+       int iclashlist = 0;
        int t,ready;
 
 
@@ -308,12 +310,21 @@ outregs() {
                        fprintf(ctable,"},{");
                        for (j=0;j<SZOFSET(nregs);j++)
                                fprintf(ctable,"0%o,",rset[j]&0xFFFF);
-                       fprintf(ctable,"}");
+                       fprintf(ctable,"}, %d", iclashlist);
+                       for (j = 1; j < nregs; j++) {
+                               if (BIT(rset, j)) clashlist[iclashlist++] = j;
+                       }
+                       clashlist[iclashlist++] = 0;
                }
                fprintf(ctable,",%d",l_regs[i].ri_rregvar>=0);
                fprintf(ctable,"},\n");
        }
-       fprintf(ctable,"};\n\n");
+       fprintf(ctable,"};\n\n short clashlist[] = {\n\t");
+       for (i = 0; i < iclashlist; i++) {
+               fprintf(ctable, "%d, ", clashlist[i]);
+               if (clashlist[i] == 0) fprintf(ctable, "\n\t");
+       }
+       fprintf(ctable, "0};\n\n");
 }
 
 outregvars() {