# KOS_OP_CALL_STAR - **Style**: STAR. Arg = bitflags (1 = has *args, 2 = has **kwargs). - **Stack**: `[..., callable, pos, kwd]` with kwd at TOS. pos = *args (tuple or iterable); kwd = **kwargs (dict). Pop per opa: both (opa & 3 == 3): pop 3; **kwargs only (opa & 2): pop 2, pos = (); *args only (opa & 1): pop 2, kwd = NULL; neither: pop 1, pos = (), kwd = NULL. Ensure pos is tuple (PySequence_Tuple if needed). Call via kos_callable_call(ctx, out_ev, callable, pos, kwd). - **Invariants**: Stack height per opa; pos converted to tuple when *args present. **Example:** Call with *args and **kwargs. Pool: 0 = fn, 1 = (1,2), 2 = {"x": 3}. | index | opcode | arg | arg view | comment | |------:|---------|-----|----------|---------| | 0 | CONST | 0 | 0 (fn) | stack: [..., callable] | | 1 | CONST | 1 | 1 (pos) | stack: [..., callable, pos] | | 2 | CONST | 2 | 2 (kwd) | stack: [..., callable, pos, kwd] | | 3 | CALL_STAR | 3 | 3 (bits) | stack: [..., result] | | 4 | RETURN | 1 | 1 | |