phase9: record cycle 1 detail, GTE map correction, and negative census in the ledger

This commit is contained in:
Christopher Williams
2026-09-24 00:16:17 -04:00
parent 2bb883c871
commit 318e73ab75
+45 -1
View File
@@ -53,6 +53,7 @@ excluded_no_extent=0 excluded_trapping_arith=50
| Cycle | New bodies | Total bodies | New regions | Total regions | Result |
|---|---|---|---|---|---|
| (baseline) | — | 149 | — | 158 | green |
| 1 | +57 | **206** | +39 | **215** | gate MATCH, SHA-1 green, commit `2bb883c` |
## Partitions
@@ -63,4 +64,47 @@ excluded_no_extent=0 excluded_trapping_arith=50
## Open protocol notes
- Known negatives are carried **per partition** in each charter (the tracked `near_match_negatives.tsv` rows that intersect that worker's partition), with the shared notes: 29 of 38 negatives are still in the eligible pool; the 9 absent are explained by duplicate groups (`g0013`/`g0026`/`g0053`/`g0061` = the 4 unmatched code groups), the named gp-thunk exclusions, and `0x8005DEF8`.
- Tier 0 is legitimately empty: all 10 code duplicate groups are now accounted for (6 matched, 4 excluded). Duplicate upside is consumed.
- Tier 0 is legitimately empty: all 10 code duplicate groups are now accounted for (6 matched, 4 excluded). Duplicate upside is consumed.
## Cycle 1 detail (committed `2bb883c`, 2026-09-24)
- 57 claims staged (A 23, B 13, C 21); all 57 re-verified by the coordinator's
own `range` runs (one claimed row `0x800FF6A4` needed the staged gp symbol
`g_80122158` before it matched — applied through the merge's claims-symbols).
- Candidate gate: `c_regions=215 differing_bytes=0 result=MATCH`, SHA-1
`e173426c157384ebf1b6caf8c6fea18a85a14af9`; promoted; `make check` green
(`regions=215 disagreements=0 result=AGREE`; `c_regions=215 MATCH`; 223 tests).
- **GTE control-register map CORRECTED** (coordinator raw-word verification after
independent decodes from workers B and C): the executable's control numbering is
the standard map **unshifted for 0..5** (rotation matrix, `0x80101CAC`) and
**standard+7 from RBK onward** — `$13` RBK, `$14` GBK, `$15` BBK, `$16..$20`
light matrix (LR1LR2/LR3LG1/LG2LG3/LB1LB2/LB3), `$21/$22/$23` RFC/GFC/BFC,
`$24/$25` OFX/OFY, `$26` H, `$27` DQA, `$28` DQB. Cookbook finding 24's label
of `$13..$15` as the light matrix was wrong (numbers were always byte-correct;
names were the suspect). `include/gtemac.h` updated: corrected labels, added
`gte_ldH`, `gte_ldRT1RT2..gte_ldRT33`. Registered `func_8001AE3C.c` updated to
RBK/GBK/BBK macros, claim sources `0x80102FD4`/`0x80101CAC` rewritten to macro
form — all re-verified MATCH.
- **maspsx=off widening confirmed**: `0x80104C38` differs by 1 byte (loop
back-edge) with maspsx on, MATCH with off; adjacent registered `0x80104C6C`
(maspsx=off) corroborates. Finding-17 scope widened to any maspsx-inserted nop
that lands on a compiler label.
- New cookbook candidates recorded (fold in P9-T8): named-locals pinning lever
(B, 4-for-4 across asm-operand laziness / associativity / strength-reduction /
load hoisting), find-22 literal-base A/B (C), width-driven narrowing vs masked
field (C, F2), subtraction-to-local (C, F3), statement-order table-index (C,
F4), cross-jump merged store (C, F6), combined levers (C, F7), compound-while
for rotated loops (C, F8), delay-slot-fill residual class (C, F9), alignment-1
lwl/lwr type (A), slti-vs-sltiu 16-bit parameter tell (A), default-0-then-
overwrite single-exit shape (A), CSE-hazard for symbol-indexed read + walked
pointer (A), gte asm operand requirement (C, F1).
- Negatives recorded (all drafts removed from src/ by their workers): A 4
(cond-value-ifconv `0x800FCC30` incl. 20-spelling matrix; alloc-scheduling
`0x80103AA4`; cc1-fold `0x8002622C`; strength-reduce+loop-rotate
`0x800496CC`), B 7 (incl. exit-duplication `0x80010418`, load-use-nop GTE
allocation class `0x80102FE4`/`0x80101C7C` — a pure allocation difference
maspsx cannot fix — and the find-4 sign-adjusted `%lo` trap), C 6 (incl.
cc1-scheduler-bound `0x80012A10` — three spellings byte-identical — and the
delay-slot-fill `move`-vs-`nop` family `0x80016224`/`0x800263A8`).
- Open items for later cycles: worker A's 8 untracked src/ files awaiting
in-flight/stale classification; worker C recommends excluding the primitive-init
family remainder (`0x80012A10`/`0x80012AE0`) from re-chartering.