Stack Adjust

ICG-based versions of the compiler no longer support the _STACK pseudo instruction. For example:

label:

  _STACK  #offs

This pseudo instruction declares that the stack pointer's value at this instruction is (stack pointer's value at label) + offs. It is ignored by the ICG-based Compiler. Also:

_ADJ  #offs

label:

This pseudo instruction adjusts the SP register with appropriate AIS instructions, so that _STACK holds (value at label+offs) afterwards. The _STACK instruction is useful for situations like the following:

Listing: Using the _STACK Pseudo Instruction
base:
    CLRA

    MOV   #8, tmp

loop:

    PSHA

    DBNZ  tmp, loop

    _STACK #-8      ; The pseudo instruction

_STACK  label:offs