KOS_OP_VAR3
Style: EXTRA (VAR, VAR, VAR, NOARG). Row = three constant pool name indices (post-compile).
Stack:
[...] → [..., a, b, c]. Load the three names from the frame namespace and push in row order. Every name resolves before any push, so a missing name errors with nothing pushed.Invariants: Names in constant pool.
Compiler form: As VAR2: produced only by
ByteCodeProcessor.pack_runsfrom a run of three consecutive bare VAR loads (quads first, then one triple or one pair).convert_fastlowers to FAST3 when all three names have fast slots (all-or-nothing; a mixed-eligibility row stays VAR3).
Example: Load “a”, “b”, “c”. Pool: 0-2 = names.
index |
opcode |
arg |
arg view |
comment |
|---|---|---|---|---|
0 |
VAR3 |
0 |
(0 (‘a’), 1 (‘b’), 2 (‘c’), 0) |
stack: […, a, b, c] |
1 |
RETURN |
1 |
1 |