gesamt: registerbelegung fuer VARs doch wieder geaendert...
[uebersetzerbau-ss10.git] / gesamt / code.bfe
index 14121c9cff5246867efc17004f3175f0975943f5..33979ba71c1aed73be25d9e7cb0e8298e453f5bd 100644 (file)
@@ -195,7 +195,7 @@ void make_call(struct treenode *bnode)
                printf("\txchg %%%s, %d(%%rsp)\n", param_reg(j), j*8);
        }
        printf("\t//vars pushen\n");
-       for(j = VARBEGIN; j > VARBEGIN - bnode->vars; j--) {
+       for(j = bnode->soffset; j < bnode->soffset + bnode->vars; j++) {
                printf("\tpushq %%%s\n", param_reg(j));
        }
 
@@ -217,7 +217,7 @@ void make_call(struct treenode *bnode)
        }
 
        /* vars poppen */
-       for(j = VARBEGIN+1 - bnode->vars; j < VARBEGIN+1; j++) {
+       for(j = bnode->soffset + bnode->vars - 1; j > bnode->soffset - 1; j--) {
                printf("\tpopq %%%s\n", param_reg(j));
        }