X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcc65%2Ffunction.h;h=04c855e6eab081ede215af420d82dfb51931837d;hb=1cfec2492e0e8e392fbfe1f736df476e875ea2f8;hp=a2b11f1b7ad1f53de3f66b3c5776f2c82297902a;hpb=9e83b00152d9b82528eabb92f7f45076c5f4e5ca;p=cc65 diff --git a/src/cc65/function.h b/src/cc65/function.h index a2b11f1b7..04c855e6e 100644 --- a/src/cc65/function.h +++ b/src/cc65/function.h @@ -1,8 +1,35 @@ -/* - * function.h - * - * Ullrich von Bassewitz, 07.06.1998 - */ +/*****************************************************************************/ +/* */ +/* function.h */ +/* */ +/* Function management */ +/* */ +/* */ +/* */ +/* (C) 1998-2001 Ullrich von Bassewitz */ +/* Wacholderweg 14 */ +/* D-70597 Stuttgart */ +/* EMail: uz@cc65.org */ +/* */ +/* */ +/* This software is provided 'as-is', without any expressed or implied */ +/* warranty. In no event will the authors be held liable for any damages */ +/* arising from the use of this software. */ +/* */ +/* Permission is granted to anyone to use this software for any purpose, */ +/* including commercial applications, and to alter it and redistribute it */ +/* freely, subject to the following restrictions: */ +/* */ +/* 1. The origin of this software must not be misrepresented; you must not */ +/* claim that you wrote the original software. If you use this software */ +/* in a product, an acknowledgment in the product documentation would be */ +/* appreciated but is not required. */ +/* 2. Altered source versions must be plainly marked as such, and must not */ +/* be misrepresented as being the original software. */ +/* 3. This notice may not be removed or altered from any source */ +/* distribution. */ +/* */ +/*****************************************************************************/ @@ -34,6 +61,9 @@ extern Function* CurrentFunc; const char* GetFuncName (const Function* F); /* Return the name of the current function */ +unsigned GetParamCount (const Function* F); +/* Return the parameter count for the current function */ + unsigned GetParamSize (const Function* F); /* Return the parameter size for the current function */ @@ -43,12 +73,15 @@ type* GetReturnType (Function* F); int HasVoidReturn (const Function* F); /* Return true if the function does not have a return value */ -void RememberEntry (Function* F); -/* Remember the current output position for local space creation later */ +int IsVariadic (const Function* F); +/* Return true if this is a variadic function */ unsigned GetRetLab (const Function* F); /* Return the return jump label */ +int GetTopLevelSP (const Function* F); +/* Get the value of the stack pointer on function top level */ + int ReserveLocalSpace (Function* F, unsigned Size); /* Reserve (but don't allocate) the given local space and return the stack * offset.