Generating instructions for accessing the data and retain stacks


This vocab contains utility words for manipulating the analysis data and retain stacks.

When nodes in the dataflow IR pushes or pops items from the stacks, instructions for performing those actions aren't immediately emitted. Instead the analysis stacks are manipulated and when the stack analysis phase is complete, optimal stack shuffling code is emitted. This way, exactly the same instructions are emitted for equivalent quotations such as [ dup drop ] and [ ].

Popping from the datastack:
2inputs ( -- vreg1 vreg2 )

3inputs ( -- vreg1 vreg2 vreg3 )

ds-drop ( -- )


Pushing to the datastack:
ds-push ( vreg -- )

store-vregs ( vregs loc-class -- )