KOS_OP_JUMP
Style: LABEL. Arg = target pc (post-compile).
Stack: No change.
Invariants: Target must be inside current extent or at its
pop_pc(jump locality).Compiler form: Pre-compile arg = string label name (must match a LABEL in the same compilation unit). Post-compile arg = pc of that LABEL.
Pre-compile example: Same snippet as LABEL; JUMP uses the string "done".
["JUMP", "done"],
["CONST", 99],
["LABEL", "done"],
["RETURN", 1],
Post-compile example: After finalize, LABEL is stripped (see LABEL). JUMP’s target was the LABEL; it becomes the next instruction (index 1). Constant pool: 0 = 99.
index |
opcode |
arg |
arg view |
comment |
|---|---|---|---|---|
0 |
JUMP |
1 |
1 (-> 1) |
pc := 1 (target “done” after LABEL stripped) |
1 |
CONST |
0 |
0 (99) |
dead code |
2 |
RETURN |
1 |
1 |