Commit Graph

205 Commits

Author SHA1 Message Date
Christopher Williams f61795285c phase10: ledger — size-band experiment, restores_unsaved class, A's falsification of the register-field broadcast, C's self-audit catch 2026-09-24 07:53:37 -04:00
Christopher Williams a087b7d936 phase10: merge 18 + negatives — 456 distinct bodies / 465 regions
+1 body (worker B2 claim 1, 0x8008A758, first attempt via the registered callee
func_80073F78). Candidate gate MATCH before promotion.

Worker C's cleanup-audit catch recorded: 0x800A6C34 (88B) is an OPEN near-match at
the correct length (16 differing bytes at 0x800A6C54) that fell out of C's staging
after a DIFF in its first batch. Added to the tracked negatives index. Coordinator
verified the residual exactly as C reported AND tested C's named lever (a) — the
gp=-D_80121B88 override does NOT close it (identical 16 bytes) — so the index
records the untried lever (a source order that stops the hoist) rather than the
disproven one. C's process note is recorded: run the cleanup audit BEFORE the final
report, not after.

make check green: regions=465 AGREE, differing_bytes=0 MATCH, 237 tests OK.
Worklist 1249 rows; index 166 rows, ordered, 0 registered.
2026-09-24 07:53:00 -04:00
Christopher Williams 7f4553c948 phase10: merge 17 — 455 distinct bodies / 464 regions
+2 bodies (worker C claims 21-22; 19-20 were in the previous batch).

SIZE-BAND MEASUREMENT CONFIRMED (worker C, strongest evidence yet for the
size-first re-rank): after switching to the <=200B band, four consecutive rows cost
1, 1, 1 and 2 attempts, against 1-in-12 on the 200B-800B band. Same worker, same
levers, same day -- the only variable is the size band. The <=200B P2 band is where
the remaining bodies are.

make check green: regions=464 AGREE, differing_bytes=0 MATCH, 237 tests OK.
2026-09-24 07:50:45 -04:00
Christopher Williams 091a9020f7 phase10: merge 16 + new worklist exclusion class — 453 bodies / 462 regions
+2 bodies (worker C claims 19-20) and 3 gp symbol rows (D_80121F90,
D_8012196E, D_80121964). Candidate gate MATCH before promotion.

NEW EXCLUSION CLASS `restores_unsaved` (worker A, coordinator-verified). A body
that restores a callee-saved register it never saves cannot be a whole function:
the register it restores was established by an enclosing prologue that the derived
extent cut off. These are jal targets INSIDE a real function, so the walk began
mid-body — distinct from bad_extent_start, which flags starts that are not
function entries at all.

Verified disjoint from the matched corpus before acting, as the project requires:
0 of 462 registered regions trip the rule; 11 worklist rows do.
excluded_restores_unsaved=11; worklist 1265 -> 1253 rows. 5 new tests; suite
229 -> 237, OK. make check green: regions=462 AGREE, differing_bytes=0 MATCH.

Independent corroboration worth recording: the new rule re-derives 0x8010080C,
the false extent start worker C reported earlier via a completely different signal
(the first instruction reads a register the range never defines). Two independent
detections of one defect class. bad_extent_start is False for that row, confirming
C's observation that the older rule missed it. Its Makefile --exclude entry is
retained only as the provenance record for that defect.
2026-09-24 07:49:34 -04:00
Christopher Williams 06f7ff0268 phase10: ledger — ROM firewall audit for the first push (all 200 commits), developer ruling on instruction headers 2026-09-24 07:46:48 -04:00
Christopher Williams e89365295b phase10: merge 15 + size-first re-ranking — 451 distinct bodies / 460 regions
+1 body (0x800C1424, worker C claim 18, closed with two register-allocation
levers: guard-on-the-expression so CSE keeps one load whose destination is the
guard's operand, and a counter initialisation as a statement so the counter
takes a2).

FORECAST FINDING (the important part of this commit): measured the matched
corpus against the remaining pool and re-ranked the lever files.

  matched: 459 regions, median 48 bytes, 454 of 459 at <=200 bytes
  remaining levered rows: median 456 bytes

Size is therefore the strongest predictor left, so .run/p10/lever*.tsv now ranks
size band FIRST and lever second:
  P1 = <=200B and levered (47 rows across partitions)
  P2 = <=200B, no lever (412)  <- the unexploited band that actually matches
  P3 = levered but >200B (503)
  P4 = rest (303)

Worker C had proposed continuing on fresh P1 rows (old meaning: known-callee),
which under the new ranking are mostly P3 -- the 200-800B band where the
allocator/optimiser tie-breaks live. Redirected to P2 from the top.

Worker C's measured re-flag accepted (last 12 attempts produced 1 match, 8 of 9
sub-8-byte negatives being cc1 scheduling/allocation with no spelling lever) and
answered with a band change rather than a stop, since C is at 47% context.
2026-09-24 07:43:34 -04:00
Christopher Williams 53365e0df9 phase10: ledger — B's band stop recorded as a yield basis (not the measured criterion), stack-switch asm proven end-to-end 2026-09-24 07:40:22 -04:00
Christopher Williams b131dc2c7f phase10: convention — inline asm sanctioned for shapes plain C provably cannot express
Developer decision (2026-09-24), extending Phase 8's coprocessor/kernel allowance.
Trigger conditions recorded: plain C attempted and mechanism identified; the
inexpressibility is structural rather than a scheduling/allocation tie-break;
integer logic stays in C and scheduling still comes from cc1/maspsx; per-file
header documents the sequence, the reason and the limit.

First accepted instance: the PSX scratchpad stack switch (lui at,0x1f80 /
sw sp,1020(at) / lui sp,0x1f80 / ori sp,sp,0x3dc ... / lw sp,1020(sp)), found
independently by workers A (0x800BC658) and B (0x800BC6EC). A stack-pointer READ
was already covered by the register-name binding and needs no exemption; only the
switch does.

Explicitly does NOT reopen trapping-arithmetic, rare-epilogue or primitive-init.
2026-09-24 07:38:15 -04:00
Christopher Williams e4a1ae47ca phase10: merge 14 + negatives reconciliation — 450 distinct bodies / 459 regions
+3 bodies from 447. Candidate gate MATCH before promotion.

Negatives reconciliation (the protocol step that protects worker findings from
being lost with ignored staging): imported 26 new negatives from all three
workers' staging into the tracked index. Index 140 -> 166 rows, address-ordered,
0 duplicates, 0 registered. excluded_recorded_negative 116 -> 142; worklist
1268 rows; 0 unregistered negatives survive into the worklist.

make check green: regions=459 disagreements=0 AGREE, c_regions=459
differing_bytes=0 MATCH, SHA-1 e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 07:36:56 -04:00
Christopher Williams c6d0ddd831 phase10: ledger — cluster thinning measured, typo failure mode, A's partial retraction, C redirected to named negatives 2026-09-24 07:33:17 -04:00
Christopher Williams 15fe0195a8 phase10: merges 11-13 — 447 distinct bodies / 456 regions
+7 bodies from 440. Candidate gate MATCH before promotion on every batch.
SHA-1 e173426c157384ebf1b6caf8c6fea18a85a14af9 stable; make check green
(regions=456 disagreements=0 AGREE, c_regions=456 differing_bytes=0 MATCH).

Note: my claims.with-options.tsv for worker B went stale (it predated claims
17-20) and the first attempt silently added 0 regions; regenerated from the
current claims.tsv and re-gated. Standing rule: regenerate the folded-options
claims file from the live claims.tsv immediately before every merge.

Worklist 1294 rows, excluded_already_registered=456 (= registry size).
Partitions refiltered: a=439 b=428 c=427, disjoint, union==worklist.
2026-09-24 07:32:38 -04:00
Christopher Williams e77b744b5f phase10: ledger — merges 8-10, region-option folding rule, false-extent record, leading-indicator ruling 2026-09-24 07:30:21 -04:00
Christopher Williams 3f9fc55efa phase10: merges 8-10 — 440 distinct bodies / 449 regions; exclude false extent start
+8 bodies from 432 (440 total, from 400). All gated on the candidate whole-binary
before promotion. SHA-1 e173426c157384ebf1b6caf8c6fea18a85a14af9 stable.

Registry option granted: gp=-D_801226F4 on 0x8002D364 (worker B). The first
candidate gate for this batch DIFFed (differing_bytes=1117197) because worker B
staged the option in a separate request file rather than in the claim row, so the
region merged without it; the tracked registry was never touched and the gate
caught it. Folded the option into the claim and re-gated to MATCH. Recorded as a
protocol event: a worker's region-option request must be folded into the claim
row before merging.

Evidence model: 0x8010080C is a FALSE EXTENT START (worker C, coordinator-verified
against the payload). Its first instruction is beq s0,zero and s0 is never written
in the range, so it is mid-body. The walk split one real 252-byte function
(0x801007E0..0x801008DC) at a spurious boundary because 0x8010080C is a jal target
from 0x8011419C. The row was unclaimable and is now a named exclusion
(excluded_named_exclusion 8 -> 9) with the reason in the Makefile and the
extents-defect record in the ledger. Fixing sf3_extents itself is left as a
bounded candidate, not attempted here.

Worklist 1304 rows, excluded_already_registered=446 (= registry size).
Partitions refiltered against it: a=441 b=432 c=431, disjoint, union==worklist.
2026-09-24 07:30:03 -04:00
Christopher Williams 3dd4b4537e phase10: cycle-1 merges 1-7 — 432 distinct bodies / 441 regions
32 new bodies from 400, all verified on the candidate whole-binary gate before
promotion. SHA-1 e173426c157384ebf1b6caf8c6fea18a85a14af9 stable.

Registry requests granted (each byte-verified with a failing control):
  cc1=-G8 on 0x800A6BEC; gp=-D_80121B88 on 0x80015D50
  symbols D_80122700, D_80122704, D_80121AD4 (gp)

Harness: per-region maspsx modes wired through sf3_match (maspsx=noreordernop,
maspsx=regread) plus --no-jump-slot-nop/--nop-on-reg-read for range. Both are
opt-in and default-off; make check green at 441 with them off, suite 229 -> 232
tests. Carried as a TRACKED patch (tools/patches/maspsx-phase10-r1r2.patch)
because tools/maspsx/ is git-ignored, so an in-place edit would not survive a
fresh clone; patch verified to reproduce the working tree byte-identically.
R1/R2 are recorded as a MEASURED NEGATIVE: neither closes a region (cookbook
finding 40 has the mechanism and the remaining developer-owned route).

Docs: cookbook finding 40 (rare-epilogue mechanism + why the obvious maspsx fix
fails); SETUP.md maspsx patch provenance and apply step.
Negatives: 0x8010AA28 imported; index sorted by address (140 rows, 0 registered).
Full clean audit green: make clean && make all exit 0, cmp exit 0, both SHA-1
match, registry 441/0 overlaps/0 bad extents/0 missing sources, 0 firewall.
2026-09-24 07:21:56 -04:00
Christopher Williams 26bd9e1f17 phase10: ledger — worker B finding 22 sharpened (commutative + operand order drives local-alloc), claim 1 verified 2026-09-24 06:56:57 -04:00
Christopher Williams dd15442e09 phase10: control-record corrections — symbol count 380 (not 392); record empty-merge pipeline pre-validation 2026-09-24 06:51:50 -04:00
Christopher Williams 5c1212b837 phase10: ledger — P10-T1 close + cycle-1 dispatch (family-set map, 3-way partitions)
- P10-T1: baseline revalidated (make check exit 0, 409 regions AGREE,
  c_regions=409 differing_bytes=0 MATCH, 229 tests OK, SHA-1 stable).
- Probing: all three sessions pass; roster deviation (3 workers) recorded and
  developer-approved.
- Worklist regen: listed=1343, excluded_already_registered=409; byte-identical.
- Negatives index: dropped 6 already-registered rows (145 -> 139, 0 registered);
  exclusion arithmetic now reconciles exactly (0 survivors into the worklist).
- Partitions: a=448 b=448 c=447, disjoint, union == worklist.
- Cycle-1 dispatch aid (ignored .run/p10): family-set map over static jal/j
  targets. 378 worklist rows call an already-registered function (P1 pool).
  Found+fixed a little-endian payload decode bug and a call-site double-count.
- Charters dispatched to all three workers, 12-claim cycle target each.
2026-09-24 06:51:25 -04:00
Christopher Williams 0557281ed4 phase10: P10-T1 — control records, baseline revalidation, negatives reconciliation, partitions
- Phase10_PLAN.md status DRAFT -> APPROVED (Goal A, 475 bodies, 70-80% ctx cap)
- phase-ends/CURRENT_PHASE.md: Phase 10 control record
- config/near_match_negatives.tsv: drop 6 rows that were already registered
  (index header says every row is UNREGISTERED); index 145 -> 139 rows, 0 registered.
  Worklist regenerates byte-identically after the fix.
- Baseline revalidated at 25bf4a3: make check exit 0, regions=409 disagreements=0
  AGREE, c_regions=409 differing_bytes=0 MATCH, 229 tests OK, SHA-1 stable.
- Worklist regen: listed=1343, excluded_already_registered=409 (= registry size).
- 3-way partitions in .run/p10 (448/448/447, pairwise intersection 0, union == worklist).
- Roster deviation recorded and developer-approved: 3 workers, not the plan's 2.
2026-09-24 06:48:00 -04:00
Christopher Williams 25bf4a30ec phase9: CLOSE — PhaseEnd, digest, ledger archive, Phase 10 plan, verification and protocol records
Phase 9 closed at 400 distinct bodies / 409 regions (from 149/158), all
gates green from clean: CMP_OK, SHA-1
e173426c157384ebf1b6caf8c6fea18a85a14af9, 229 tests, make gate
c_regions=409 MATCH, extents-verify AGREE, worklist listed=1343 with
excluded_already_registered=409, firewall 0, src/ 0 untracked.

Milestone partially met (400 of 500): the blocker is recorded with per-class
evidence (tier-1 tie-break domination, class disjointness, measured rate
decay) per the plan's Or branch. PhaseEnd_Phase9.md, digest entry, and the
ledger archive (logs/Phase9.md) written. docs/PHASE9_PROTOCOL.md (scale-run
retrospective: queue fix, tier-2 pivot, family-set lever, rotation
discipline, leading-indicator rule, measured budget), docs/PHASE9_VERIFICATION.md
(all gates, incidents, class exclusions), cookbook findings 29-39,
conventions additions, README updated to 400/409.

Phase10_PLAN.md drafted (Goals A/B/C: tail squeeze vs library-boundary
investigation, developer decisions enumerated) — requires explicit approval
before any Phase 10 task; no Phase 10 work begins in this session.
2026-09-24 06:35:47 -04:00
Christopher Williams 04289b94f6 phase9: ledger — B's encoding-trap synthesis, phase status at ~87% ctx 2026-09-24 02:54:57 -04:00
Christopher Williams 1e2929c128 phase9: ledger — cycle-4 close: 400-body milestone met 2026-09-24 02:54:25 -04:00
Christopher Williams 004531ffb7 phase9: reconcile negatives + regen worklist (409 registered, milestone met) 2026-09-24 02:54:13 -04:00
Christopher Williams 63e1da8bcb phase9: *** MILESTONE MET — 409 regions / 400 distinct bodies ***
The 400-body target (P9-T6 checkpoint, 251 new bodies from 149) is crossed
on the coordinator's own whole-binary gate: c_regions=409, differing_bytes=0,
SHA-1 e173426c157384ebf1b6caf8c6fea18a85a14af9.

Final batch: B's last 2 family members (0x800578EC, 0x800577E8, both 100B),
11 consecutive first-attempt family matches closing the run. Cycle-4 total:
47 new bodies from worker B following the milestone-close directive
(reliable-rows over exploration). The family-as-a-set lever (scan for rows
calling a matched target; stable positions selector->arg2 sentinel->arg3
a1->arg9, per-row elsewhere) drove 11 first-attempt closes.

Workers: B 60 claims (rotated cleanly, handoff block written with 104
report entries and the corrected cookbook items), C 70 claims (earlier
rotation). Coordinator holds merge/gate/ledger at 86% protecting the
essential role.
2026-09-24 02:54:13 -04:00
Christopher Williams d0c655c869 phase9: merge B 3 (selectors 9/12/13) — 407 regions / 398 distinct bodies
B 9-for-9 across the family batches. 0x80057B30 has TWO incoming stack
params; the family-set lever's scope limit sharpened: stable positions
(selector->arg2, sentinel->arg3, a1->arg9, extra->arg10) + per-row
positions elsewhere — the map proves once for the STANDARD form only, and
B corrected its own earlier 'map proves once' framing (belongs in the
cookbook with the lever). Two more 100-byte callers (0x800578EC,
0x800577E8) in flight for margin. Gate MATCH whole-binary SHA-1
e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 02:53:15 -04:00
Christopher Williams f8f26b2cf9 phase9: reconcile negatives + regen worklist (404 registered) 2026-09-24 02:52:35 -04:00
Christopher Williams 2e9d88211c phase9: merge B 3 — 404 regions / 395 distinct bodies
B: 42 new this cycle. Family rows restored the rate 3-for-3 first attempt
(selectors 6/17/15). Boundary note: 0x80057BE8 is in partition C (retired,
no race) — accepted under the standing verified-work-claimable policy. Key
finding: the family's argument map is NOT constant — stable positions
(narrowed a1 -> arg 9, 5th param -> arg 10) + per-row positions elsewhere
(no negu when there is no conditional selection — the discriminator
predicts it). Third selector-proving pair. Gate MATCH whole-binary SHA-1
e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 02:52:35 -04:00
Christopher Williams 1f79de4a24 phase9: ledger — milestone-close directive, coordinator 86% endgame 2026-09-24 02:50:33 -04:00
Christopher Williams 8b1d372997 phase9: ledger — re-partition + B's leading-indicator rule 2026-09-24 02:48:45 -04:00
Christopher Williams 89185e88e5 phase9: ledger — cycle-4 392 bodies, yield-thinning action 2026-09-24 02:47:57 -04:00
Christopher Williams fe392c12c0 phase9: reconcile negatives + regen worklist (401 registered) 2026-09-24 02:47:37 -04:00
Christopher Williams df93551c0e phase9: merge B 0x800B6838 — 401 regions / 392 distinct bodies
B: 39 new this cycle. Finding 5 at its sharpest: ONE byte (ori vs addiu)
was the whole difference — a literal vs symbol with identical address.
Three-way family now: lui-high-half, name-keyed-gp, literal-vs-symbol —
all encoding-only source constructs. 0x8003EB18 duplicated-arms mechanism
(cc1 shares something even with explicit duplication — 100 vs 108) and
0x80012834 tie-break recorded. Gate MATCH whole-binary SHA-1
e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 02:47:37 -04:00
Christopher Williams 51ced85b08 phase9: ledger — 400-region milestone crossed, 391 bodies 2026-09-24 02:46:13 -04:00
Christopher Williams ce09e6fa61 phase9: reconcile negatives + regen worklist (400 registered) 2026-09-24 02:46:02 -04:00
Christopher Williams 861aab3cd5 phase9: merge B 0x800AA01C — 400 regions / 391 distinct bodies (400-region milestone crossed)
B: 38 new this cycle. 0x800AA01C three-way mode switch (if/else-if/else
chain — arms are exact complements: set bit 3/clear 6 vs set 6/clear 3 vs
clear both). Contrast finding: the move a0,v0 after the lookup decides
whether the flush gets the looked-up object or the original a0 — one
instruction, re-verified per family row (0x800AAC44 negative recorded).
Gate MATCH whole-binary SHA-1
e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 02:46:02 -04:00
Christopher Williams 4405bb7e68 phase9: ledger — cycle-4 390 bodies, family scan 3rd payoff 2026-09-24 02:45:14 -04:00
Christopher Williams 94356d6a31 phase9: reconcile negatives + regen worklist (399 registered) 2026-09-24 02:44:59 -04:00
Christopher Williams 21f5fa6695 phase9: merge B 0x80057B84 — 399 regions / 390 distinct bodies
B's family-target scan paid off a 3rd time: 0x80057B84 = the family's 4th
member, matched on the 2nd attempt with two levers — (1) branch-vs-
branchless discriminator (how many distinct values are selected decides
the spelling), (2) the mask must be INLINED not held in a local (here the
repeated expression is correct and the local is the mistake — mirror
image of the usual named-locals lever). Two negatives recorded
(0x800179E0 guard polarity, 0x800C1E54 dead local). Gate MATCH whole-
binary SHA-1 e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 02:44:59 -04:00
Christopher Williams 1d3a307ea8 phase9: ledger — cycle-4 389 bodies, family-as-a-set lever 2026-09-24 02:42:42 -04:00
Christopher Williams b70f504b9c phase9: reconcile negatives + regen worklist (398 registered) 2026-09-24 02:42:21 -04:00
Christopher Williams a9589246d7 phase9: merge B 4 — 398 regions / 389 distinct bodies
B 4-for-4 first attempt via the family-as-a-set lever (scan for rows
calling the same target after a match; the argument map is paid once).
Three siblings of 0x80057748 (selectors 11/4/16, some with the 5th
incoming arg as outgoing arg 10) plus 0x8006B66C (0x8006B1CC sibling with
a per-node flag test). Byte-identical-pair-teaching-constant-as-selector
(0x8005789C vs 0x80057C30 differ only in li a1,4 vs li a1,16). Gate MATCH
whole-binary SHA-1 e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 02:42:21 -04:00
Christopher Williams 47e56eb2ff phase9: ledger — cycle-4 385 bodies 2026-09-24 02:40:43 -04:00
Christopher Williams 4c1530e4af phase9: reconcile negatives + regen worklist (394 registered) 2026-09-24 02:40:27 -04:00
Christopher Williams ebbb0db2ed phase9: merge B 2 — 394 regions / 385 distinct bodies
B: 32 new this cycle. Load-bearing insight: frame slots never read back are
the callee's 9th/10th stack arguments (0x80057748 was 68-vs-80 until the
10-arg call). Branchless conditional lever (ternary-zero differs from
if/else — sltu+negu+and). negu evidence set grows (3rd row) for finding
26's toolchain direction. Sibling 0x8005789C (11th stack arg) recorded
with the start-from-10-args note. Gate MATCH whole-binary SHA-1
e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 02:40:27 -04:00
Christopher Williams 811af05171 phase9: ledger — B's pre-screen correction, name-keyed gp finding 2026-09-24 02:36:46 -04:00
Christopher Williams 2131faf4e6 phase9: reconcile negatives + regen worklist (392 registered) 2026-09-24 02:36:33 -04:00
Christopher Williams 157b247a5c phase9: merge B 0x80103D0C — 392 regions / 383 distinct bodies
B: 30 new this cycle. 0x80103D0C matched; two source fixes recorded
(mask at use site; D_801220F4 is a short not int — sh vs sw tell).
Pre-screen correction: 50/55 (91%) of rare-epilogue rows in A are in the
mutual-exclusion blocked subset (move-pseudo detector fixed: rt==0 not
rs==0) — the class is not unmatchable but operationally mostly blocked;
coordinator's original skip instinct was partly right. New name-keyed-gp
finding: the gp marker hangs off the NAME not the address, so a
differently-named symbol with the right address silently loses gp-relative
form. Gate MATCH whole-binary SHA-1
e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 02:36:33 -04:00
Christopher Williams 4620187199 phase9: ledger — primitive-init family exclusion, B's 0-for-3 numbers 2026-09-24 02:33:59 -04:00
Christopher Williams 7a0a8b7cb5 phase9: exclude the primitive-init family remainder (worker C + B, family conclusion)
Fourth failure (0x80012CFC, 54 bytes — worst residual of the cycle) against
two successes in one family confirms C's scheduler-bound diagnosis. Family
is a toolchain limit, not a source problem: 0x80012A10/0x80012AE0 (earlier
excluded) plus now 0x80012CFC/0x80012B20. Extensive arithmetic checks
(5 stack args fix a 9-parameter signature; lui immediates 0x08000000 and
0x38000000 are high halves) confirm the model without the bytes.
2026-09-24 02:33:35 -04:00
Christopher Williams 176390b319 phase9: reconcile negatives + regen worklist (391 registered) 2026-09-24 02:31:04 -04:00
Christopher Williams 9cb9fd2e50 phase9: merge B 0x800263A8 — 391 regions / 382 distinct bodies
B solved one of C's parked picks with a better vehicle: the result-first
hypothesis needs RETURN-inside-loop, not a result local (a local allocates
to a0 and costs a move). 0x800263A8 matched 64B first try. Its twin
0x80016224 is now 8 differing bytes, a pure node-v1/payload-a0 register
swap — identical residual to B's own 0x800161E0 (one allocation family,
chartered together). Gate MATCH whole-binary SHA-1
e173426c157384ebf1b6caf8c6fea18a85a14af9.
2026-09-24 02:31:04 -04:00