projects
/
uebersetzerbau-ss10.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
98b6e9e
)
Revert "gesamt: teilweise mehrere befehle in einer zeile -- mal schauen ob das dem...
author
Bernhard Urban
<lewurm@gmail.com>
Tue, 13 Jul 2010 07:56:10 +0000
(09:56 +0200)
committer
Bernhard Urban
<lewurm@gmail.com>
Tue, 13 Jul 2010 07:56:10 +0000
(09:56 +0200)
This reverts commit
98b6e9ee3e4ae4fd21bfb9394f56eafbfd62061e
.
... weils nix brachte ;)
gesamt/code.bfe
patch
|
blob
|
history
diff --git
a/gesamt/code.bfe
b/gesamt/code.bfe
index 15d02f3eb0a6de0001a50940fca1b8bf7513e392..cad2d58c65c320dadee096a663bed538cc3efe1a 100644
(file)
--- a/
gesamt/code.bfe
+++ b/
gesamt/code.bfe
@@
-46,8
+46,8
@@
void gen_id_eno(struct treenode *bnode)
KIDKIDREG2PARM(1,1);
KIDREG2PARM(0);
move(KID_REG(0), BN_REG);
KIDKIDREG2PARM(1,1);
KIDREG2PARM(0);
move(KID_REG(0), BN_REG);
- printf("\tsubq %%%s, %%%s", KIDKID_REG(1,1), BN_REG);
- printf("
;
subq %%%s, %%%s\n", KIDKID_REG(1,0), BN_REG);
+ printf("\tsubq %%%s, %%%s
\n
", KIDKID_REG(1,1), BN_REG);
+ printf("
\t
subq %%%s, %%%s\n", KIDKID_REG(1,0), BN_REG);
}
void gen_e_field(struct treenode *bnode, char *instr)
}
void gen_e_field(struct treenode *bnode, char *instr)
@@
-125,25
+125,25
@@
void gen_eqless(struct treenode *bnode, char *op, short e0, short e1, short deep
if(e0 && e1) {
if(deep) {
KIDKIDREG2PARM(1,0);
if(e0 && e1) {
if(deep) {
KIDKIDREG2PARM(1,0);
- printf("\tcmp %d(%%%s), %%%s", bnode->kids[1]->soffset *8, KIDKID_REG(1,0), KID_REG(0));
+ printf("\tcmp %d(%%%s), %%%s
\n
", bnode->kids[1]->soffset *8, KIDKID_REG(1,0), KID_REG(0));
} else {
} else {
- printf("\tcmp %%%s, %%%s", KID_REG(1), KID_REG(0));
+ printf("\tcmp %%%s, %%%s
\n
", KID_REG(1), KID_REG(0));
}
} else if(e0 && !e1) {
if (deep == 0) {
}
} else if(e0 && !e1) {
if (deep == 0) {
- printf("\tcmp $%d, %%%s", KID_VAL(1), KID_REG(0));
+ printf("\tcmp $%d, %%%s
\n
", KID_VAL(1), KID_REG(0));
} else if (deep == 1) {
KIDKIDREG2PARM(0,0);
} else if (deep == 1) {
KIDKIDREG2PARM(0,0);
- printf("\tcmp $%d, %%%s", KID_VAL(1), KIDKID_REG(0,0));
+ printf("\tcmp $%d, %%%s
\n
", KID_VAL(1), KIDKID_REG(0,0));
} else if (deep == 2) {
KIDKIDKIDREG2PARM(0,0,0);
} else if (deep == 2) {
KIDKIDKIDREG2PARM(0,0,0);
- printf("\tcmp $%d, %%%s", KID_VAL(1), KIDKIDKID_REG(0,0,0));
+ printf("\tcmp $%d, %%%s
\n
", KID_VAL(1), KIDKIDKID_REG(0,0,0));
}
} else if(!e0 && e1) {
}
} else if(!e0 && e1) {
- printf("\tcmp $%d, %%%s", KID_VAL(0), KID_REG(1));
+ printf("\tcmp $%d, %%%s
\n
", KID_VAL(0), KID_REG(1));
}
}
- printf("
; set%s %%%s
", op, reg_64to8l(BN_REG));
- printf("
;
and $1, %%%s\n", BN_REG);
+ printf("
\tset%s %%%s\n
", op, reg_64to8l(BN_REG));
+ printf("
\t
and $1, %%%s\n", BN_REG);
}
void gen_lea(struct treenode *bnode, short e)
}
void gen_lea(struct treenode *bnode, short e)
@@
-168,13
+168,13
@@
void gen_subspecial(struct treenode *bnode, short e)
if(e) {
if(KIDKID_VAL(1,0) != 0) {
if(e) {
if(KIDKID_VAL(1,0) != 0) {
- printf("\tsubq $%d, %%%s", KIDKID_VAL(1,0), BN_REG);
+ printf("\tsubq $%d, %%%s
\n
", KIDKID_VAL(1,0), BN_REG);
}
} else {
}
} else {
- printf("\tsubq %%%s, %%%s", KIDKID_REG(1,0), BN_REG);
+ printf("\tsubq %%%s, %%%s
\n
", KIDKID_REG(1,0), BN_REG);
}
if(e) KIDKIDREG2PARM(1,1);
}
if(e) KIDKIDREG2PARM(1,1);
- printf("
;
addq %%%s, %%%s\n", KIDKID_REG(1,1), BN_REG);
+ printf("
\t
addq %%%s, %%%s\n", KIDKID_REG(1,1), BN_REG);
}
void assign_var(struct treenode *bnode)
}
void assign_var(struct treenode *bnode)
@@
-191,22
+191,21
@@
void make_call(struct treenode *bnode, short skippop)
{
short *sc = bnode->sc;
int j, off = 0;
{
short *sc = bnode->sc;
int j, off = 0;
- printf("\t//params pushen (skippop: %d)\n
\t
", skippop);
+ printf("\t//params pushen (skippop: %d)\n", skippop);
for(j = 0; j < bnode->soffset; j++) {
if(sc[j] == 1)
for(j = 0; j < bnode->soffset; j++) {
if(sc[j] == 1)
- printf("
xchg %%%s, %d(%%rsp);
", param_reg(j), (j - off)*8);
+ printf("
\txchg %%%s, %d(%%rsp)\n
", param_reg(j), (j - off)*8);
else {
if (sc[j] == 0) {
else {
if (sc[j] == 0) {
- printf("
pushq %%%s;
", param_reg(j));
+ printf("
\tpushq %%%s\n
", param_reg(j));
off++;
}
}
}
off++;
}
}
}
- printf("\
n\t//vars pushen\n\t
");
+ printf("\
t//vars pushen\n
");
for(j = bnode->soffset; j < bnode->soffset + bnode->vars; j++) {
for(j = bnode->soffset; j < bnode->soffset + bnode->vars; j++) {
- printf("
pushq %%%s;
", param_reg(j));
+ printf("
\tpushq %%%s\n
", param_reg(j));
}
}
- printf("\n");
/* TODO: schoener machen... */
if(strcmp(BN_REG, "rax")!=0) {
/* TODO: schoener machen... */
if(strcmp(BN_REG, "rax")!=0) {
@@
-229,20
+228,20
@@
void make_call(struct treenode *bnode, short skippop)
if(skippop)
goto cleanup;
if(skippop)
goto cleanup;
- printf("\t//vars poppen\n
\t
");
+ printf("\t//vars poppen\n");
for(j = bnode->soffset + bnode->vars - 1; j > bnode->soffset - 1; j--) {
for(j = bnode->soffset + bnode->vars - 1; j > bnode->soffset - 1; j--) {
- printf("
popq %%%s;
", param_reg(j));
+ printf("
\tpopq %%%s\n
", param_reg(j));
}
}
- printf("\t//params poppen (sc == 0)\n
\t
");
+ printf("\t//params poppen (sc == 0)\n");
for(j = bnode->soffset - 1; j >= 0; j--) {
if(sc[j] == 0)
for(j = bnode->soffset - 1; j >= 0; j--) {
if(sc[j] == 0)
- printf("
popq %%%s;
", param_reg(j));
+ printf("
\tpopq %%%s\n
", param_reg(j));
}
}
- printf("\t//params poppen (sc != 0)\n
\t
");
+ printf("\t//params poppen (sc != 0)\n");
for(j = 0; j < bnode->soffset; j++) {
if(sc[j] > 0)
for(j = 0; j < bnode->soffset; j++) {
if(sc[j] > 0)
- printf("
popq %%%s;
", param_reg(j));
+ printf("
\tpopq %%%s\n
", param_reg(j));
}
cleanup:
}
cleanup: