# Step 11.1 — real-comparison codegen fix (tag: `step11.1`) Real `< > <= >=` never emitted `D5` (`0D5H`) — only `=` / `#` did. `RealLt/Le/Gt/Ge` (comments even said `[gt lt] -> ...`, inputs no caller provides) emitted bare stack juggling, leaving a raw operand bit-pattern as the boolean, so e.g. `-1.0 < 0.0` read back FALSE. The same recipe was shared with m2compiler-V2 (found via its step-5.2 probe; full story in its `docs/summary_m2comp_step5.2.md`). `D5` itself was always correct — no VM change. Fix: one `OPrCmp` prepended per procedure (contracts now `[r1 r2]`). New regression `tests/t_rcmp.mod` (13 cases incl. negative-vs-zero and `-0.0`, ExitCode 31). Suite 158/158 with no other expectation touched (`t_real` passes genuinely now).