From 4003003e8552b71d32d4401ec5211fcfe99561b5 Mon Sep 17 00:00:00 2001 From: deadwood Date: Tue, 13 Aug 2013 18:30:10 +0000 Subject: [PATCH] genmodule: do not generate defines/inline for stack call functions All calls need to go vial linklib. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@47810 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- tools/genmodule/genmodule.h | 1 - tools/genmodule/writeincdefines.c | 41 +++++---------------------------------- tools/genmodule/writeincinline.c | 16 ++++----------- 3 files changed, 9 insertions(+), 49 deletions(-) diff --git a/tools/genmodule/genmodule.h b/tools/genmodule/genmodule.h index a8053fea69..7fa28d04d7 100644 --- a/tools/genmodule/genmodule.h +++ b/tools/genmodule/genmodule.h @@ -29,7 +29,6 @@ void writestubs(struct config *, int); void writefunclist(struct config *); void writefd(struct config *); void writeskel(struct config *cfg); -void writedefinestack(FILE *out, struct functionhead *funclistit, struct config *cfg); void writegetlibbase(struct config *cfg, int is_rel); #endif diff --git a/tools/genmodule/writeincdefines.c b/tools/genmodule/writeincdefines.c index 8e16cd2c0f..ce2311f0a9 100644 --- a/tools/genmodule/writeincdefines.c +++ b/tools/genmodule/writeincdefines.c @@ -49,7 +49,7 @@ void writeincdefines(struct config *cfg) for (funclistit = cfg->funclist; funclistit!=NULL; funclistit = funclistit->next) { - if (!funclistit->priv && (funclistit->lvo >= cfg->firstlvo)) + if (!funclistit->priv && (funclistit->lvo >= cfg->firstlvo) && funclistit->libcall != STACK) { fprintf(out, "\n" @@ -60,18 +60,11 @@ void writeincdefines(struct config *cfg) cfg->modulenameupper ); - if (funclistit->libcall != STACK) - { - writedefineregister(out, funclistit, cfg); - if (!funclistit->novararg) - writedefinevararg(out, funclistit, cfg); - } - else /* libcall == STACK */ - { - writedefinestack(out, funclistit, cfg); - } + writedefineregister(out, funclistit, cfg); + if (!funclistit->novararg) + writedefinevararg(out, funclistit, cfg); - writealiases(out, funclistit, cfg); + writealiases(out, funclistit, cfg); fprintf(out, "\n" @@ -417,30 +410,6 @@ writedefinevararg(FILE *out, struct functionhead *funclistit, struct config *cfg } void -writedefinestack(FILE *out, struct functionhead *funclistit, struct config *cfg) -{ - struct functionarg *arglistit; - - /* Only if no peropener or pertask base */ - if (cfg->options & OPTION_DUPBASE) - return; - - fprintf(out, "#define %s ((%s (*)(", funclistit->name, funclistit->type); - for (arglistit = funclistit->arguments; - arglistit != NULL; - arglistit = arglistit->next - ) - { - fprintf(out, "%s", arglistit->arg); - if (arglistit->next != NULL) - fprintf(out, ", "); - } - fprintf(out, "))__AROS_GETVECADDR(__aros_getbase_%s(),%d))\n", - cfg->libbase, funclistit->lvo - ); -} - -void writealiases(FILE *out, struct functionhead *funclistit, struct config *cfg) { struct stringlist *aliasesit; diff --git a/tools/genmodule/writeincinline.c b/tools/genmodule/writeincinline.c index 08a7c26431..f0386281af 100644 --- a/tools/genmodule/writeincinline.c +++ b/tools/genmodule/writeincinline.c @@ -47,7 +47,7 @@ void writeincinline(struct config *cfg) for (funclistit = cfg->funclist; funclistit!=NULL; funclistit = funclistit->next) { - if (!funclistit->priv && (funclistit->lvo >= cfg->firstlvo)) + if (!funclistit->priv && (funclistit->lvo >= cfg->firstlvo) && funclistit->libcall != STACK) { fprintf(out, "\n" @@ -58,17 +58,9 @@ void writeincinline(struct config *cfg) cfg->modulenameupper ); - if (funclistit->libcall != STACK) - { - writeinlineregister(out, funclistit, cfg); - if (!funclistit->novararg) - writeinlinevararg(out, funclistit, cfg); - } - else /* libcall == STACK */ - { - /* This is the same as in defines */ - writedefinestack(out, funclistit, cfg); - } + writeinlineregister(out, funclistit, cfg); + if (!funclistit->novararg) + writeinlinevararg(out, funclistit, cfg); writealiases(out, funclistit, cfg); -- 2.11.4.GIT