KOS_OP_OBJECT_COMPARE_VAR

  • Style: EXTRA (CMP, CONST, VAR, CONST). Row = bare selector, low bound (pool), middle operand name, high bound (pool). Schema-static slots: no source bits, the shape is the opcode.

  • Stack: [...] → [..., result]. The ternary bounds idiom (const < x < const) with the middle operand resolved by name: chain-compare the three operands under the selector and push the chain result.

  • Invariants: Selector is a valid KosCompare ordinal.

  • Compiler form: Produced by ByteCodeProcessor.fuse_feeders when the exact CONST / VAR / CONST feeder shape meets an arity-3 comparison. In value position the OBJECT_COMPARE quartet collapses to this row alone; in branch position the arity-3 CHECK_COMPARE splits into this row plus JUMP_FALSE (five fields cannot ride one row). Lowers to OBJECT_COMPARE_FAST through the generic convert_fast path. Cold handler.

Example: (< 0 x 100) by name.

index

opcode

arg

arg view

comment

0

OBJECT_COMPARE_VAR

0

(LT, c#0 (0), v#1 (‘x’), c#2 (100))

stack: […, bool]