From b8b9b052fd59524a854233cb8286ccc863ddbd39 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Sun, 30 May 2010 14:48:25 +0200 Subject: [PATCH] codeb: labels mit . davor versehen (fuer bench.sh...) --- codeb/parser.y | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/codeb/parser.y b/codeb/parser.y index 6512c0c..279576d 100644 --- a/codeb/parser.y +++ b/codeb/parser.y @@ -198,12 +198,12 @@ Statement: @reg @Statement.node@->reg = @Expr.node@->reg = next_reg((char *)NULL, @Expr.gparamges@); @gen { - printf("%s_ifstart_%d:\n", get_func_name(), @Statement.lblcnt_in@); + printf(".%s_ifstart_%d:\n", get_func_name(), @Statement.lblcnt_in@); write_tree(@Statement.node@, 0); burm_label(@Statement.node@); burm_reduce(@Statement.node@, 1); /* TODO: kann ich mir das test wirklich wegan and davor sparen? */ - printf("\ttest %s-1, %%rax\n\tjz %s_ifend_%d\n", "$", get_func_name(), @Statement.lblcnt_in@); + printf("\ttest %s-1, %%rax\n\tjz .%s_ifend_%d\n", "$", get_func_name(), @Statement.lblcnt_in@); } - @gen @revorder(1) printf("%s_ifend_%d:\n", get_func_name(), @Statement.lblcnt_in@); + @gen @revorder(1) printf(".%s_ifend_%d:\n", get_func_name(), @Statement.lblcnt_in@); @} | IF Expr THEN Statseq Elsestat END @@ -225,12 +225,12 @@ Statement: @reg @Statement.node@->reg = @Expr.node@->reg = next_reg((char *)NULL, @Expr.gparamges@); @gen { - printf("%s_ifstart_%d:\n", get_func_name(), @Statement.lblcnt_in@); + printf(".%s_ifstart_%d:\n", get_func_name(), @Statement.lblcnt_in@); write_tree(@Statement.node@, 0); burm_label(@Statement.node@); burm_reduce(@Statement.node@, 1); /* TODO: kann ich mir das test wirklich wegan and davor sparen? */ - printf("\ttest %s-1, %%rax\n\tjz %s_ifelse_%d\n", "$", get_func_name(), @Statement.lblcnt_in@); + printf("\ttest %s-1, %%rax\n\tjz .%s_ifelse_%d\n", "$", get_func_name(), @Statement.lblcnt_in@); } - @gen @revorder(1) printf("%s_ifend_%d:\n", get_func_name(), @Statement.lblcnt_in@); + @gen @revorder(1) printf(".%s_ifend_%d:\n", get_func_name(), @Statement.lblcnt_in@); @} | WHILE Expr DO Statseq END @@ -246,12 +246,12 @@ Statement: @reg @Statement.node@->reg = @Expr.node@->reg = next_reg((char *)NULL, @Expr.gparamges@); @gen { - printf("%s_whilestart_%d:\n", get_func_name(), @Statement.lblcnt_in@); + printf(".%s_whilestart_%d:\n", get_func_name(), @Statement.lblcnt_in@); write_tree(@Statement.node@, 0); burm_label(@Statement.node@); burm_reduce(@Statement.node@, 1); /* TODO: kann ich mir das test wirklich wegan and davor sparen? */ - printf("\ttest %s-1, %%rax\n\tjz %s_whileend_%d\n", "$", get_func_name(), @Statement.lblcnt_in@); + printf("\ttest %s-1, %%rax\n\tjz .%s_whileend_%d\n", "$", get_func_name(), @Statement.lblcnt_in@); } - @gen @revorder(1) printf("\tjmp %s_whilestart_%d\n%s_whileend_%d:\n", get_func_name(), @Statement.lblcnt_in@, get_func_name(), @Statement.lblcnt_in@); + @gen @revorder(1) printf("\tjmp .%s_whilestart_%d\n.%s_whileend_%d:\n", get_func_name(), @Statement.lblcnt_in@, get_func_name(), @Statement.lblcnt_in@); @} | RETURN Expr @@ -274,7 +274,7 @@ Elsestat: @i @Statseq.lblcnt_in@ = @Elsestat.lblcnt_in@; @i @Elsestat.lblcnt_out@ = @Statseq.lblcnt_out@; - @gen printf("\tjmp %s_ifend_%d\n%s_ifelse_%d:\n", get_func_name(), @Elsestat.reallblcnt@, get_func_name(), @Elsestat.reallblcnt@); + @gen printf("\tjmp .%s_ifend_%d\n.%s_ifelse_%d:\n", get_func_name(), @Elsestat.reallblcnt@, get_func_name(), @Elsestat.reallblcnt@); @} Lexpr: -- 2.25.1