[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

x86 question


So if I have the control and number stacks unified, how do I deal with
{alloc,dealloc}-number-stack-space?  I can't just grow the control
stack, because that that would confuse/invalidate stack analysis.

Ideally, alloc- and dealloc-number-stack-space should be flushed and
aliens should just be allocated on the regular frame.  But then if someone
allocated a huge alien, the allocator would choke.

Or we could use the lexenv to keep track of the quantity of allocated stack
aliens, and keep track of the maximum this ever becomes.  When we allocate
a frame (number-frame for non-x86, any frame for x86) we include this
maximum in the amount we change the stack pointer by, but never really tell
pack about it.  Alloc-number-stack-space would be replaced with something
that just computes the offset of the next batch of stuff.  All that info
should be statically determinable.