X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcc65%2Ffunction.h;h=d56d30757645ee45b84e27ab1fcb4eb49f4f91a9;hb=17ac0cb4fab28b3a77abcf79ebf01b402b1192aa;hp=f7563e3f2780cfd66f97b0d6138d886a74759ee8;hpb=c3ec23aed0377bf7b6a4449289535a6e33ce6994;p=cc65 diff --git a/src/cc65/function.h b/src/cc65/function.h index f7563e3f2..d56d30757 100644 --- a/src/cc65/function.h +++ b/src/cc65/function.h @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (C) 1998-2001 Ullrich von Bassewitz */ -/* Wacholderweg 14 */ -/* D-70597 Stuttgart */ -/* EMail: uz@musoftware.de */ +/* (C) 1998-2006 Ullrich von Bassewitz */ +/* Römerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -58,40 +58,52 @@ extern Function* CurrentFunc; -const char* GetFuncName (const Function* F); +const char* F_GetFuncName (const Function* F); /* Return the name of the current function */ -unsigned GetParamCount (const Function* F); +unsigned F_GetParamCount (const Function* F); /* Return the parameter count for the current function */ -unsigned GetParamSize (const Function* F); +unsigned F_GetParamSize (const Function* F); /* Return the parameter size for the current function */ -type* GetReturnType (Function* F); +Type* F_GetReturnType (Function* F); /* Get the return type for the function */ -int HasVoidReturn (const Function* F); +int F_HasVoidReturn (const Function* F); /* Return true if the function does not have a return value */ -int IsVariadic (const Function* F); +int F_IsVariadic (const Function* F); /* Return true if this is a variadic function */ -unsigned GetRetLab (const Function* F); +int F_IsOldStyle (const Function* F); +/* Return true if this is an old style (K&R) function */ + +int F_HasOldStyleIntRet (const Function* F); +/* Return true if this is an old style (K&R) function with an implicit int return */ + +unsigned F_GetRetLab (const Function* F); /* Return the return jump label */ -int GetTopLevelSP (const Function* F); +int F_GetTopLevelSP (const Function* F); /* Get the value of the stack pointer on function top level */ -int ReserveLocalSpace (Function* F, unsigned Size); +int F_ReserveLocalSpace (Function* F, unsigned Size); /* Reserve (but don't allocate) the given local space and return the stack * offset. */ -void AllocLocalSpace (Function* F); +void F_AllocLocalSpace (Function* F); /* Allocate any local space previously reserved. The function will do * nothing if there is no reserved local space. */ +int F_AllocRegVar (Function* F, const Type* Type); +/* Allocate a register variable for the given variable type. If the allocation + * was successful, return the offset of the register variable in the register + * bank (zero page storage). If there is no register space left, return -1. + */ + void NewFunc (struct SymEntry* Func); /* Parse argument declarations and function body. */