Files
BFM-decomp/docs
Drew T 0c5d6fa909 docs(phase-30 S48): §162 — the wave-1 idiom harvest, deduped by a skeptic pass
17 candidates from the 12 crack agents, each audited against the whole
cookbook by an independent agent before being written: NEW 3, SHARPENS 13,
COVERED 0 (one agent died mid-response — its entry, §162c, is written by the
orchestrator and labelled as the least-audited one).

The three genuinely new laws:
- §162e  LICM: uniform loop-variable indexing is what makes a symbol address a
         MOVABLE at all (a literal index leaves a constant, no base pseudo, no
         hoist), and preheader order is body order.
- §162g  cross-jump DIRECTION is a source-shape oracle: do_cross_jump always
         keeps the LATER copy, so a BACKWARD jump into an earlier block can
         never be cross-jumping — it is a source `goto`.
- §162n  a conditionally-assigned alias pointer kills a spurious giv
         (loop.c cant_derive).

Two in-place CORRECTIONS, because a reader who lands there first must not be
taught the superseded rule:
- §161a's "diagnostic tell (family-wide)" reads as a complete test on entry[0]
  and actively teaches skipping the upper edge. Amended: check BOTH edges.
  The maxval symptom is the OPPOSITE of the minval one — it shifts nothing and
  costs two bytes, so it is functionally invisible.
- §25's triage rule prescribes pins for a symptom whose sibling mechanism
  (local-alloc optimize_reg_copy_1) pins provably cannot reach, because
  SMALL_REGISTER_CLASSES is never defined in config/mips/mips.h. Amended to
  point at §162j.

The skeptic pass also caught two errors in MY submitted evidence: I had copied
§161a's minval symptom onto the maxval case, and I described func_8017F2D4 as
a verified MATCH when the whole-binary gate had refused it (it is still
INCLUDE_ASM). Both corrected in the entries.

cookbook_index.py: 495 sections, 14 symptom buckets.
2026-08-11 18:31:18 -06:00
..