# KOS_OP_FAST3 - **Style**: EXTRA (FASTVAR, FASTVAR, FASTVAR, NOARG). Row = three fast local slot indices. - **Stack**: `[...] → [..., a, b, c]`. Load the three slots and push in row order. Every slot resolves before any push, so an unbound slot errors with nothing pushed. - **Invariants**: Slot indices in range for frame. - **Compiler form:** Post-compile only: `convert_fast` lowering of VAR3 when all three names have fast slots, or `ByteCodeProcessor.pack_runs` on a run of three bare FAST loads. **Example:** Load fast locals 0-2. | index | opcode | arg | arg view | comment | |------:|--------|-----|----------|---------| | 0 | FAST3 | 0 | (fast 0 (a), fast 1 (b), fast 2 (c), 0) | stack: [..., a, b, c] | | 1 | RETURN | 1 | 1 | |