diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index 1711703..35446f7 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -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. \ No newline at end of file +- 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.