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_runs from a run of three consecutive bare VAR loads (quads first, then one triple or one pair). convert_fast lowers 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