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:
94de157
)
Revert "gesamt: sicheres umgehen mit den vars, aber dafuer mehr befehle wo es oft...
author
Bernhard Urban
<lewurm@gmail.com>
Mon, 7 Jun 2010 18:23:08 +0000
(20:23 +0200)
committer
Bernhard Urban
<lewurm@gmail.com>
Mon, 7 Jun 2010 18:47:31 +0000
(20:47 +0200)
This reverts commit
2286a935e6993a6bc756cf1a05b3b170229cd83f
.
gesamt/chelper.c
patch
|
blob
|
history
diff --git
a/gesamt/chelper.c
b/gesamt/chelper.c
index ff621b47d2a1017bf369b702773f7342835129af..dd345b0934bf7e8db0b2810ba0a899d51c550326 100644
(file)
--- a/
gesamt/chelper.c
+++ b/
gesamt/chelper.c
@@
-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;
/* 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);
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;
akt_func_name = s;
-#if 0
need_stack = (vars || parms) && call;
need_stack = (vars || parms) && call;
-#else
- need_stack = vars || (parms && call);
- gvars = vars;
-#endif
if(need_stack) {
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)
{
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("\tleave\n");
- }
printf("\tret\n\n\n");
}
printf("\tret\n\n\n");
}