mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 14:02:04 -04:00
a1024ab76d
Distilled from 35 wave transcripts (12 byte-proven, 23 drafted-but-ungated and marked UNPROVEN),
each extracted then adversarially novelty-verified against the book. 57/57 agents, 0 errors.
Verdicts: 4 NEW, 15 ADDENDUM, 6 COVERED (rediscoveries — the signal to fix RETRIEVAL, not to write
more prose), 1 REFUTED.
The NEW laws:
§315 all-constant aggregate fill emits in SHARED-LITERAL GROUPS x destination order
§316 IMM-OFFSET-only residual: early "return 0" guards skip the flag test
§317 a narrow struct-field store distributes the truncation (convert.c convert_to_integer
trunc1), minting a HImode copy whose source cse rewrites to the equivalent constant --
so a LIVE variable becomes an immediate load. Fix: route the arithmetic through a FRESH
s32 temp. Byte-proven func_8017EF94 (293->292 ins, closeness 73 -> MATCH); the control
that reused an EXISTING scratch var regressed to 63, so freshness is the lever.
§318 a unary minus stored back into the same halfword is computed in HImode (lhu)
Notable addendum: §167-12's own scope note asked for a byte-proven instance of the single-operand
volatile keepalive; func_8017F498 supplies it (closeness 2 -> MATCH, 99 ins), and extends the tell
from unary ops to a three-operand non-commutative subu whose dest ties its PINNED source.
This is the step I skipped for eight waves. Drew: harvesting is the project thesis, not hygiene --
new idioms make the next exemplars cheaper and mint free banks.