There is one aspect of the control stack format that is fixed, and which concerns us at this level. This is the format of the "frames" which mark the destination of non-local exits, such as for BLOCK and CATCH. These frames are collectively known as unwind blocks. The basic unwind block is used for lexical exists such as BLOCK, and for UNWIND-PROTECT. Its format is the following:
0 Pointer to current unwind-protect. 1 Control stack context to restore on entry. 2 PC to enter at.
The unwind block for CATCH is identical except for additional cells containing the catch tag and previous catch.
0 Pointer to current unwind-protect. 1 Control stack context to restore on entry. 2 PC to enter at. 3 Catch tag. 4 Previous catch.
The conventions used to manipulate unwind blocks are described in chapter .