- pinned since S76/S79 as PROVED (§474: fold-const.c:882 split_tree merges MULT(MULT(i,2),2) in every C spelling; the two escapes
each cost one instruction — stupid.c adjacency / expand_decl use-brackets); 20 spellings + statement-expression + register
temp forms measured; the S83 hand pass measured four block-scoped forms at 193/131
- the mechanism (dumps + source): split_tree only decomposes MULT/PLUS/MINUS and never distributes MULT over PLUS, so
MULT(PLUS(MULT(i,2),1),2) survives fold; expr.c:5368's EXPAND_SUM distributive law returns (plus (mult (mult X 2) 2) 2);
both_summands (expr.c:5248) + plus_constant cancel the +2 against the -2 into the bare symbol; memory_address -> force_operand
expands the two expand_mult copy;sll pairs adjacent (expmed.c:2227/2244) with no note or variable, so stupid.c's born+2
rule 2-colours v1/a0 exactly as the target and expand_binop's late copy_to_mode_reg(sym) gives la $a0 / addu / lbu 0()
- ruled out from source: a hard-reg pin + shift outer form (191, LENGTH-DRIFT — a REG index makes (plus sym reg) a legitimate
MIPS address so la/addu vanish: the target's la;addu;lbu shape REQUIRES the index to reach memory_address as a MULT rtx),
COMPOUND_EXPR shield (fold distributes), SAVE_EXPR via ?:, COND shields, builtin pseudo-constants, pin+MULT
- draft .run/P32/t5x/fable/func_80011380.c; report .run/P32/t5x/reports/func_80011380.md; coordinator rtu_match MATCH 192/192
in src/boot.c (--o0); gate_main slate_11380: BANKED, 143dbb89 BYTE-IDENTICAL; all 15 jal callees + data-symbol counts equal
- main open 3 -> 2 (func_80032A74 pinned NEAR 1; func_80039308 NEAR 4)
- func_8017DC80: draft .run/P32/t5x/fable/func_8017DC80.c (fable agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=ov_SC07_002 -j8 rc 0; sha1 fad71342019704d1dd6ec25f2f3934c97e322624 == config/check.ov_SC07_002.sha (BYTE-IDENTICAL)
- src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c: 2 INCLUDE_ASM left
- func_800CD92C: draft .run/P32/t5x/fable/func_800CD92C.c (fable agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=md_MAIN_009 -j8 rc 0; sha1 d270f695b793b5c03db159b7aabcc066daa87eda == config/check.md_MAIN_009.sha (BYTE-IDENTICAL)
- src/md_MAIN_009/md_MAIN_009.c: 0 INCLUDE_ASM left
- func_800CF3E8: draft .run/P32/t5x/fable/func_800CF3E8.c (fable agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=md_MAIN_003 -j8 rc 0; sha1 dd1b32ecf1103c6f7cf1943d25546a3046e17b14 == config/check.md_MAIN_003.sha (BYTE-IDENTICAL)
- src/md_MAIN_003/md_MAIN_003.c: 0 INCLUDE_ASM left
- func_801834A4: draft .run/P32/t5x/fable/func_801834A4.c (fable agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=ov_SC03_105 -j8 rc 0; sha1 d305ff6da199b52d0d44023766643a8b661ed524 == config/check.ov_SC03_105.sha (BYTE-IDENTICAL)
- src/ov_SC03_105/ov_SC03_105_jr_80181C84.c: 2 INCLUDE_ASM left
- pinned since S79 as "mflo destination $t0 vs $a2 (REGALLOC-PERM), pinning regresses to 79"; 5 attempts 51->20->14->8->2 +
permuter_ils null (S80); T4 re-probed DIFF 2; the S83 hand pass measured the variable-reuse form at 80
- mechanism (dumps + source): the mult results are GLOBAL allocnos (mulsi3_internal '=l', mips.md:848; 'pref LO_REG');
global.c parks m3/m8/m13 in LO, reload spills LO ("Spilling reg 65") and retries via retry_global_alloc (reload1.c:3497)
with losers = forbidden_regs, seeded from bad_spill_regs = regs_explicitly_used = regs_ever_live at reload entry
(reload1.c:486, 3651-3660, 709) — the S76 `register s32 e0 __asm__("$6")` made $a2 ever-live, so m13's retry could not
take it and first-fit gave $t0 ("Register 102 now in 8")
- fix: unpin e0; `__asm__("" : "=r"(e1) : "0"(e1))` immediately before `dst[6] = -e1` (e1's qty 6666 -> 8750, allocated
before e0's 7894, holds $v1, e0's first fit drops to $a2) + `__asm__("" : "=r"(p1) : "0"(p1))` between p1's andi and sll
(undoes the global-allocno tie the first launder created; the $t6/$t7/$t8 rotation). Ladder 2 (pinned) -> 37 (unpinned)
-> 15 -> 6 -> MATCH; a byte-identical alternate launders addr1 after its addu
- draft .run/P32/t5x/fable/func_80020DA4.c; report .run/P32/t5x/reports/func_80020DA4.md; coordinator rtu_match MATCH
100/100 in src/800.c; gate_main slate_20DA4: BANKED, 143dbb89 BYTE-IDENTICAL
- main open 4 -> 3 (2 pinned walls + func_80039308 NEAR)
- func_8017DF28: draft .run/P32/t5x/fable/func_8017DF28.c (fable agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=ov_SC06_022 -j8 rc 0; sha1 2a7d7d4e2fe2f87a83a065686731c7942b3c70ef == config/check.ov_SC06_022.sha (BYTE-IDENTICAL)
- src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c: 3 INCLUDE_ASM left
- func_800CD674: draft .run/P32/t5x/fable/func_800CD674.c (fable agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=md_MAIN_009 -j8 rc 0; sha1 d270f695b793b5c03db159b7aabcc066daa87eda == config/check.md_MAIN_009.sha (BYTE-IDENTICAL)
- src/md_MAIN_009/md_MAIN_009.c: 1 INCLUDE_ASM left
- pinned since S79 as "the $a3<->$t0 swap of the two K&R raw-preserve parameter copies is fixed by ARGUMENT POSITION" —
3 attempts + permuter_ils 9->2 (S80); T4 re-probed DIFF 2 in a sandbox TU; the S83 hand pass hypothesised a local pseudo
in $a3 (global.c find_reg pass-1 local_reg_n_refs) — REFUTED by the agent: that check is only in the best_reg<0 retry
- the real mechanism (global.c:587-608 allocno_compare, pri = floor_log2(n_refs)*n_refs/live_length; find_reg hands the
lowest free reg to whichever parm copy is allocated FIRST): every prior draft merged the 0x14/0x28 tails at C level
(goto L_merge + a `kind` temp), deleting one `sb a2` use, so a2-raw had 3 refs/45 (pri 666) and lost $a3 to a1-raw
(3 refs/26, pri 1153). Writing the 3-case `switch (a2)` with the tails DUPLICATED (the original's tails are merged by
jump.c cross-jump AFTER allocation) gives a2-raw 4 refs/41 (floor_log2(4)=2 -> pri 1951) -> allocated first -> $a3; a
block-scope `u8 *p` per case; no pins, no fences, no do-while (dumps .run/c294/dumps_t5x_9DEC_sw2: `73 in 8 75 in 7`)
- the permuter's closeness-2 draft was R63-unsound (`tmp` uninitialised on the default path — its pseudo took $a3)
- draft .run/P32/t5x/fable/func_80039DEC.c; report .run/P32/t5x/reports/func_80039DEC.md; coordinator rtu_match MATCH 74/74 in
src/800_c.c (the no-proto TU decl from commit:3953 admits the K&R definition); gate_main slate_39DEC: BANKED, 143dbb89 BYTE-IDENTICAL
- main open 5 -> 4 (3 pinned walls + func_80039308 NEAR)
- pinned since S79 as "move_movables splices hoisted invariants after preheader flow code, so off's init cannot follow arg1's
hoisted sign-extend from C" — 4 prior attempts + S79 Sonnet (64→3) + permuter_ils null (S80); T4 re-probed DIFF 3 in a
sandbox TU; the S83 hand pass measured the explicit promotion at 18 and stopped
- the Fable agent read the .loop dump: with `a1v = arg1;` written BEFORE `off = 0;` the extend IS emitted first (T1 of the
hand-pass NOTES) — the 18 was a CASCADE: removing the two extend insns from the body dropped the loop's insn_count 59→57,
flipping loop.c:1631's desirability test (threshold 58 ≥ 57) so the D_800C6DD0 address got hoisted (+2 preheader insns and a
register cascade). Nine `__asm__("")` pads instead of seven restore insn_count 59 → "not desirable" → the target's preheader
tail `sll/sra $a1; move $t0,$zero`. Kept: the `$7` pin on i (a hard reg is not a biv, loop.c:3572) and the [][1] table type
- draft .run/P32/t5x/fable/func_800391D4.c; report .run/P32/t5x/reports/func_800391D4.md; coordinator rtu_match MATCH 75/75 in
src/800_c.c; gate_main slate_391D4: BANKED, 143dbb89f34491258bbc27810d0a12ec8b43a8dd BYTE-IDENTICAL (.run/P32/t4b/gate/gate_391D4.log)
- main open 6 -> 5 (4 pinned walls + func_80039308 NEAR)
- Drew's directive (2026-09-05): nothing but the original hand-asm and the PsyQ libs may remain; hand-crack each row and
name the blocker before spawning Fable agents. CURRENT_PHASE.md T4b row records the pass.
- func_80032A74: the missing 8 frame bytes = §172 producer 3, a TRANSIENT caller-save area — reload1.c's loop runs
setup_save_areas BEFORE spill_hard_reg in the same iteration (source-read), the draft already spills $t0 at iteration 1;
needs a rematerialisable call-crossing pseudo with 4*calls < weighted refs (regs.h:165); the lhu variant is byte-exact in all
422 instructions except the 22 frame-offset rows (HYPOTHESIS.md)
- func_80020DA4 (reuse lo0: 80), func_800CD674 (prim-4 temp forms: 31/44), func_800391D4 (giv / early promotion / order: 11–69),
func_800CD92C (constant birth position: no effect on pinned hard regs), func_80011380 (block-scoped register temp: 193/131),
func_80039308 (the TU's [][1] spelling: 517/81) — each NOTES.md carries the measurement and the next lever
- func_8017DF28: the target's `addiu $s2,$sp,0x10` in the bnez slot is the branch-target's first insn (reorg); the block-move
address pseudo must DIE at the copy. func_801834A4: sign-hoist vs const-hoist thresholds (S71 proof) + the mulsidi3 +2.
func_80039DEC: global.c find_reg's first pass avoids regs used by local pseudos — find the draft's local in $a3.
- .run/P32/t5x/BRIEF.md (the Fable contract: instruments incl. cc1_dumps/gcc source/permuter --j 2, laws, output JSON),
targets.json (15, sub = TU basename), packs regenerated; .gitignore allowlists for .run/P32/t4b and .run/P32/t5x
- the two TU-side declaration walls of the pinned main rows (§500-I); needed so the func_80039DEC / func_800391D4 drafts can be
verified and gated in the REAL TU (T4b hand-crack pass, Drew's directive)
- arbiter: make extract BINARY=main && make build BINARY=main -j8 → EXIT 0/0, sha1 143dbb89f34491258bbc27810d0a12ec8b43a8dd
(.run/P32/t4b/plumb2_result.log). NOTE: gate_main --assert-baseline --allow-dirty RESTORES the working tree's TUs before
building (its GREEN measured the committed tree, not the edit) — use the in-tree extract+build for an uncommitted TU edit
- every wall's best draft re-run with rtu_match in its CURRENT real TU: func_80011380 DIFF 6 (--o0, §474 PROVED),
func_80020DA4 DIFF 2, func_8017DF28 DIFF 2, func_801834A4 DIFF 6 ×3 variants; leaf match_one re-measured the CC1 rows
(func_80032A74 1, func_80039DEC 2 permuter / 9 sonnet, func_800391D4 3)
- the three CC1-FAIL rows: func_80032A74 = 7 typedefs the TU provides via 800_shared.h + 4 decl spellings → synced copy
(.run/P32/t4/drafts/func_80032A74_tuclean.c) DIFF 1 in the real TU (idx 244 lh vs lhu); func_80039DEC = the TU's narrow
prototype (800_c.c:3496) vs the K&R def → sandbox TU (.run/P32/t4/tu/, no-proto decl) DIFF 2; func_800391D4 = the
load-bearing `D_80073140[][1]` vs the TU's `[]` → sandbox TU DIFF 3 (TU-compatible spellings regress to 65 @ 76)
- config/wave_exclude.txt: each of the 7 lines carries its S83 re-probe verdict; exclude_audit --assert-fresh 7/7
- backlog: rows for all 7 walls (the path-less func_80011380/func_801834A4 given existing drafts, R62; two rows re-logged
after a shell-quoting mangle); docs/backlog.md 16 open
- CURRENT_PHASE.md: T4 row DONE, the wall ledger table (row · ins · class · leaf/real-TU closeness · mechanism+citation ·
attempt record · verdict · best draft; func_800CF3E8 listed as an unpinned candidate), the T4 log entry, 🛑 block → T5
(R27 Max prompt + the gate-2 procedure)
- cookbook §500-I (the sandbox-TU re-probe method + the verdict table); accelerators (8); decision-log P32 S83 (R31)
- CURRENT_PHASE.md: T3 row DONE with the close numbers; the S83 steps 8–9 log entry; the 🛑 SESSION CHECKPOINT rewritten
(T3 CLOSED, T4 NEXT; the 15-row census with draft paths and mechanisms; the T4 procedure incl. the §376 re-probe of the
three CC1-FAIL walls before any verdict; T5 carry)
- step 8 tail: func_8001BC6C BANKED (commit:3948); func_800CD674 plateau ledgered; func_800CF3E8 Opus second look 27 HOLDS —
§500-D1's mechanism corrected to cse.c find_best_addr (fold_rtx MEM, COST pseudo 0 vs hard reg 1), the alias lever refuted
5/5, a new zero-byte pinned-pointer launder found (79 @ 470) — cookbook §500-H, backlog row with cost (245k tokens / 29 min)
- make report: fleet instr 13,484,739 / 13,488,497 = 100.0% · distinct 5,812,831 / 5,816,589 = 99.9% (90,975 / 90,984 unique)
· fn-count 363,199 / 363,214 = 100.00% · INCLUDE_ASM 15; main REAL 783 · LINKED 1,256 · VERBATIM 3 · stubs 6 ·
byte-identical 2,085 / 2,091 = 99.71% · 143dbb89; census .run/P32/frontier_t3_close.json; twin_rescan 0 free
- R22 (clean + extract-all + check-all) after the Makefile guard + the main bank: 218 passed / 0 failed, exits 0/0/0
(.run/P32/t3s3/r22c_full.log) — the third green fleet sweep of the session (10:46, 11:09, 12:00)
- docs/accelerators.md (5)–(7): the build is the batch verdict / read a waypoint's diff both ways / a live probe in src/ is
build input; docs/backlog.md 14 open; verdicts.jsonl 50 rows; the s83 Opus draft + report kept (R20)
- kill gate: 29 banks + 3 new verdicts this session, the three bounded tail attempts spent — T3 closes on the evidence
- `C_SRCS := $(shell find src -name '*.c' …)` admitted src/.masked_diff_probe.<pid>.c — masked_diff._common_typedefs()'s
per-process probe, written and deleted within one process — when a concurrent agent's probe existed at make's parse
time; the file was gone by compile time and the clean main rebuild failed with "No rule to make target
build/src/.masked_diff_probe.3973390.o, needed by build/us/SLUS_007.26" (gate_main3 log: "batch FAILED (sha None);
bisecting" -> one wasted rebuild, then BANKED)
- byte-neutral: md_SC03_056 smoke build bc768a6b BYTE-IDENTICAL rc 0; with a throwaway src/.probe_test_s83.c present,
`make -pn build BINARY=main` shows C_SRCS without it and with src/800.c; the fleet R22 at the T3 close re-verifies
- the consumer is the right place for this guard (R54): every tool that probes in src/ is covered at once
- seed: the Opus NEAR-6 draft (.run/P32/t3/opus/func_8001BC6C.c; §500-C REGALLOC-PERM $v0<->$v1 across the six OT-chain insns,
local-alloc qty_compare one span unit). permuter_ils 8x150s -j3 --klass REGALLOC: cycles 6/7/8 = 6, 5, 1 (output-1-1)
- R63 read of the "1": three mutations — (a) `idx` computed AFTER `color`, (b) an early dead `tag = (a1 << 8) | k;` before
k's assignment, (c) `(D_800B9A02 & 0xFFu) << 14` — and (c) turns the target's `lhu` into an `lbu` (semantically WRONG:
the masked score rewards it; second witness after S80). (a)+(b) alone = leaf MATCH 69/69; (a) alone 8, (b) alone 21
- well-defined re-spelling: `k = 0; tag = (a1 << 8) | k;` at the top (I1) MATCHES; k-initialised-first (15), tag=a1<<8 (19),
tag=a1 (8), tag=(a1<<8)|K (20), tag=0 (8), tag-then-k (8) all regress — the lever is the early BIRTH of the tag/k pseudos
(§47 live-length: qty_compare = floor_log2(n_refs)·n_refs·size/(death−birth)), documented in the source comment
- rtu_match MATCH 69/69 in src/800.c; gate_main slate_main3: "slate 1 -> 1 compatible … BANKED 1 of 1 … 143dbb89 BYTE-IDENTICAL",
EXIT 0 (.run/P32/t3s3/gate/gate_main3.log); main open 7 -> 6 (5 pinned walls + func_80039308 NEAR 17)
- func_800CD674's ILS plateaued at the SAME $a3<->$t1 pair (output-2-1 = 2 rows, no drift) — ledgered with its cost (R41)
- variants kept under .run/P32/t3s3/p1bc6c/ (the 11 spellings measured)
- func_800CD520: draft .run/P32/t3/haiku/func_800CD520.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=md_MAIN_009 -j8 rc 0; sha1 d270f695b793b5c03db159b7aabcc066daa87eda == config/check.md_MAIN_009.sha (BYTE-IDENTICAL)
- src/md_MAIN_009/md_MAIN_009.c: 2 INCLUDE_ASM left
- func_801CBB80: draft .run/P32/t3/haiku/func_801CBB80.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=md_SC03_056 -j8 rc 0; sha1 bc768a6b7baa911e0a0cb9175b33550851d6c1eb == config/check.md_SC03_056.sha (BYTE-IDENTICAL)
- src/md_SC03_056/md_SC03_056.c: 0 INCLUDE_ASM left
- func_801F0048: draft .run/P32/t3/haiku/func_801F0048.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- func_801F00C8: draft .run/P32/t3/haiku/func_801F00C8.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=md_SC03_054 -j8 rc 0; sha1 06bd73dfbdb10748adcbac7093ead5d76131206a == config/check.md_SC03_054.sha (BYTE-IDENTICAL)
- src/md_SC03_054/md_SC03_054.c: 0 INCLUDE_ASM left
- func_800CD3B8: draft .run/P32/t3/haiku/func_800CD3B8.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- func_800CD408: draft .run/P32/t3/haiku/func_800CD408.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- func_800CD464: draft .run/P32/t3/haiku/func_800CD464.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- func_800CD4C8: draft .run/P32/t3/haiku/func_800CD4C8.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- func_800CD558: draft .run/P32/t3/haiku/func_800CD558.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- func_800CD5B8: draft .run/P32/t3/haiku/func_800CD5B8.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- func_800CD614: draft .run/P32/t3/haiku/func_800CD614.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=md_MAIN_009 -j8 rc 0; sha1 d270f695b793b5c03db159b7aabcc066daa87eda == config/check.md_MAIN_009.sha (BYTE-IDENTICAL)
- src/md_MAIN_009/md_MAIN_009.c: 3 INCLUDE_ASM left
- func_800CF220: draft .run/P32/t3/haiku/func_800CF220.c (haiku agent, agent MATCH re-verified by coordinator rtu_match in the real TU)
- one build for the same-TU batch: make build BINARY=md_MAIN_007 -j8 rc 0; sha1 2ff702b605ab5cfc18474c464c4c07e5f8ffd48c == config/check.md_MAIN_007.sha (BYTE-IDENTICAL)
- src/md_MAIN_007/md_MAIN_007.c: 2 INCLUDE_ASM left
- the first five verdicts of the 17-row Haiku launch (10:57 MDT, one Agent-tool subagent per function, prompts
.run/P32/t3s3/prompts/<fn>.txt); drafts .run/P32/t3/haiku/<fn>.c; each agent-reported MATCH re-verified by the
coordinator with rtu_match in the real TU (.run/P32/t3s3/verify3/); verbatim grep 0; one build for the same-TU
batch: make build -j8 rc 0; sha1 2ff702b605ab5cfc18474c464c4c07e5f8ffd48c == config/check.md_MAIN_007.sha
- func_800CEFF8 (13) came from the ov_SC02_005:0x801865d0 twin route; the other four are the module's
func_800167F0(k)&0xFFFF -> D_800D1374++ shape, ~45-50k tokens each
- md_MAIN_007 stubs 8 -> 3 (func_800CF220 MATCH pending, func_800CF408 NEAR 49, func_800CF6D0 NEAR 137)