From: Bernhard Urban Date: Mon, 7 Jun 2010 10:31:33 +0000 (+0200) Subject: gesamt: enter verwenden X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=uebersetzerbau-ss10.git;a=commitdiff_plain;h=bb2b8ce82db6ac53f2973df099f0da7e62970b86 gesamt: enter verwenden --- diff --git a/gesamt/TODO b/gesamt/TODO index 39f9a26..7327635 100644 --- a/gesamt/TODO +++ b/gesamt/TODO @@ -1,2 +1,2 @@ -- enter verwenden statt selbst prolog zu machen +- bench.sh fixen, zomg - intelli_03: seiteneffekte in der ersten zeile *ahhhh* diff --git a/gesamt/chelper.c b/gesamt/chelper.c index 25362dd..dd345b0 100644 --- a/gesamt/chelper.c +++ b/gesamt/chelper.c @@ -24,9 +24,7 @@ void func_header(char *s, int vars, int parms, int call) need_stack = (vars || parms) && call; if(need_stack) { - printf("\tpushq %%rbp\n" - "\tmovq %%rsp, %%rbp\n" - "\tsubq $%d, %%rsp\n", 8*(vars+parms+2 /* fuer rax und r10*/)); + printf("\tenter $%d, $0\n", 8*(vars + parms + 2 /* fuer rax und r10 */)); } } diff --git a/gesamt/code.bfe b/gesamt/code.bfe index b1afba6..dba5023 100644 --- a/gesamt/code.bfe +++ b/gesamt/code.bfe @@ -148,7 +148,7 @@ void gen_eqless(struct treenode *bnode, char *op, short e0, short e1, short deep void gen_lea(struct treenode *bnode, short e) { - printf("\t//gen_lea(e: %i)\n", e); + printf("\t//gen_lea(e= %i)\n", e); KIDREG2PARM(0); if(e) { KIDKIDREG2PARM(1,0); @@ -232,7 +232,7 @@ void make_call(struct treenode *bnode) void prep_arg(struct treenode *bnode, int moveit) { - printf("\t//args-nr.: %i (%%%s) [moveit: %i]\n", bnode->soffset, param_reg(bnode->soffset), moveit); + printf("\t//args-nr-> %i (%%%s) [moveit= %i]\n", bnode->soffset, param_reg(bnode->soffset), moveit); xchg_param[bnode->soffset] = 1; if(moveit) { /* expr */ if((BN_REG == (char *) NULL) || (bnode->kids[1] != TREENULL && bnode->kids[1]->op == O_ID && bnode->kids[1]->kids[0] == TREENULL && bnode->kids[1]->kids[1] == TREENULL)) {