Revert "gesamt: sicheres umgehen mit den vars, aber dafuer mehr befehle wo es oft...
authorBernhard Urban <lewurm@gmail.com>
Mon, 7 Jun 2010 18:23:08 +0000 (20:23 +0200)
committerBernhard Urban <lewurm@gmail.com>
Mon, 7 Jun 2010 18:47:31 +0000 (20:47 +0200)
This reverts commit 2286a935e6993a6bc756cf1a05b3b170229cd83f.

gesamt/chelper.c

index ff621b47d2a1017bf369b702773f7342835129af..dd345b0934bf7e8db0b2810ba0a899d51c550326 100644 (file)
@@ -15,29 +15,16 @@ static char *regs8l[] = {"al", "r10b", "r11b", "r9b"};
 /* ja, dirty.. */
 static char *akt_func_name = (char*) NULL;
 static char need_stack = 0;
-static int gvars;
 
 void func_header(char *s, int vars, int parms, int call)
 {
        printf("\t.globl %1$s\n\t.type %1$s, @function\n%1$s:\n", s);
-       printf("\t//vars-> %i, parms-> %i, call(bool)-> %i\n", vars, parms, call);
+       printf("\t//vars: %i, parms: %i, call(bool): %i\n", vars, parms, call);
        akt_func_name = s;
 
-#if 0
        need_stack = (vars || parms) && call;
-#else
-       need_stack = vars || (parms && call);
-       gvars = vars;
-#endif
        if(need_stack) {
-               /* 2 * 7 fuer paramterregs reservieren + 2 fuer rax und r10 */
-               printf("\tenter $%d, $0\n", 8*(2*7 + 2));
-
-               int j;
-               printf("\t//vars pushen\n"); /* koennten parameter enthalten von anderen fkts... */
-               for(j = VARBEGIN; j > VARBEGIN - vars; j--) {
-                       printf("\tpushq %%%s\n", param_reg(j));
-               }
+               printf("\tenter $%d, $0\n", 8*(vars + parms + 2 /* fuer rax und r10 */));
        }
 }
 
@@ -48,14 +35,8 @@ char *get_func_name(void)
 
 void func_footer(void)
 {
-       if(need_stack) {
-               int j;
-               /* vars poppen */
-               for(j = VARBEGIN+1 - gvars; j < VARBEGIN+1; j++) {
-                       printf("\tpopq %%%s\n", param_reg(j));
-               }
+       if(need_stack)
                printf("\tleave\n");
-       }
        printf("\tret\n\n\n");
 }