projects
/
uebersetzerbau-ss10.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gesamt: registerbelegung fuer VARs doch wieder geaendert...
[uebersetzerbau-ss10.git]
/
gesamt
/
code.bfe
diff --git
a/gesamt/code.bfe
b/gesamt/code.bfe
index 14121c9cff5246867efc17004f3175f0975943f5..33979ba71c1aed73be25d9e7cb0e8298e453f5bd 100644
(file)
--- a/
gesamt/code.bfe
+++ b/
gesamt/code.bfe
@@
-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");
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));
}
printf("\tpushq %%%s\n", param_reg(j));
}
@@
-217,7
+217,7
@@
void make_call(struct treenode *bnode)
}
/* vars poppen */
}
/* 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));
}
printf("\tpopq %%%s\n", param_reg(j));
}