mirror of
https://github.com/cc65/cc65.git
synced 2025-02-26 23:30:03 +00:00
Fix minor function handling stuff
git-svn-id: svn://svn.cc65.org/cc65/trunk@53 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
e932798ead
commit
4219ffcb6a
@ -60,8 +60,8 @@ struct Function {
|
||||
type* ReturnType; /* Function return type */
|
||||
struct FuncDesc* Desc; /* Function descriptor */
|
||||
CodeMark EntryCode; /* Backpatch addr for entry code */
|
||||
unsigned LocalMax; /* Total space for locals */
|
||||
unsigned LocalSize; /* Current space for locals */
|
||||
int LocalMax; /* Total space for locals */
|
||||
int LocalSize; /* Current space for locals */
|
||||
unsigned RetLab; /* Return code label */
|
||||
};
|
||||
|
||||
@ -156,9 +156,6 @@ unsigned GetRetLab (const Function* F)
|
||||
int AllocLocalSpace (Function* F, unsigned Size)
|
||||
/* Allocate space for the function locals, return stack offset */
|
||||
{
|
||||
/* Remember the current offset */
|
||||
unsigned Offs = F->LocalSize;
|
||||
|
||||
/* Add the size */
|
||||
F->LocalSize += Size;
|
||||
if (F->LocalSize > F->LocalMax) {
|
||||
@ -166,7 +163,7 @@ int AllocLocalSpace (Function* F, unsigned Size)
|
||||
}
|
||||
|
||||
/* Return the offset, it is below the initial stack pointer */
|
||||
return -(int)Offs;
|
||||
return -F->LocalSize;;
|
||||
}
|
||||
|
||||
|
||||
@ -230,10 +227,12 @@ void NewFunc (SymEntry* Func)
|
||||
/* Generate function entry code if needed */
|
||||
g_enter (TypeOf (Func->Type), GetParamSize (CurrentFunc));
|
||||
|
||||
/* Remember the current code position to create local variable space once
|
||||
* we have created the function body itself.
|
||||
/* Remember the current code position. This may be used later to create
|
||||
* local variable space once we have created the function body itself.
|
||||
* Currently this is not possible because the stack offsets of all locals
|
||||
* have to be known in advance.
|
||||
*/
|
||||
RememberEntry (Func);
|
||||
RememberEntry (CurrentFunc);
|
||||
|
||||
/* Parse the function body */
|
||||
oursp = 0;
|
||||
@ -267,3 +266,4 @@ void NewFunc (SymEntry* Func)
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user