chore(audit): mark P7 frozen-snapshot drift cleared (manual regen, no code change)

P7 of the PPC instruction audit fix application: re-ran the
ppc-manual generator (`python3 ppc-manual/generator/generate_manual.py`)
to regenerate all 350 family pages from current xenia-rs and
xenia-canary source. The 3 audit-cited stale snapshots
(PPCBUG-066/117/145) are now refreshed.

Note: the `ppc-manual/` directory is not versioned in xenia-rs/.git,
so this commit is purely the audit-findings status update + report
section. The regen itself happened in-place outside this repo.

Verification: post-regen grep confirms the old "For now, just trace
and continue" stub is gone from every page, and modern constructs
(trap::evaluate, current reservation_line model) appear correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
MechaCat02
2026-05-02 14:03:23 +02:00
parent 8b9fddc488
commit a7155f4571
2 changed files with 22 additions and 3 deletions

View File

@@ -618,7 +618,7 @@ convention (`twi 31, r0, IMM`) not handled. Two LOW findings for stale manual sn
### PPCBUG-066 — Stale frozen snapshots in ppc-manual for td/tdi/tw/twi ### PPCBUG-066 — Stale frozen snapshots in ppc-manual for td/tdi/tw/twi
- **Severity**: LOW - **Severity**: LOW
- **Status**: open - **Status**: applied (P7 manual regen, 2026-05-02)
- **Location**: `ppc-manual/branch/td.md`, `tdi.md`, `tw.md`, `twi.md` - **Location**: `ppc-manual/branch/td.md`, `tdi.md`, `tw.md`, `twi.md`
- **Symptom**: all four show the old unconditional-trap stub (`// For now, just trace and continue`) - **Symptom**: all four show the old unconditional-trap stub (`// For now, just trace and continue`)
instead of the current TO-field-evaluating implementation. instead of the current TO-field-evaluating implementation.
@@ -1197,7 +1197,7 @@ and confirmed correct (PPCBUG-115 informational). One MEDIUM documentation findi
### PPCBUG-117 — Stale frozen snapshot in `ppc-manual/memory/ldarx.md` ### PPCBUG-117 — Stale frozen snapshot in `ppc-manual/memory/ldarx.md`
- **Severity**: LOW - **Severity**: LOW
- **Status**: open - **Status**: applied (P7 manual regen, 2026-05-02)
- **Location**: `ppc-manual/memory/ldarx.md` (frozen snapshot section) - **Location**: `ppc-manual/memory/ldarx.md` (frozen snapshot section)
- **Symptom**: Snapshot uses old field name `ctx.reserved_addr`; live code uses - **Symptom**: Snapshot uses old field name `ctx.reserved_addr`; live code uses
`ctx.reserved_line = ea & !RESERVATION_MASK` (M3 refactor). Cosmetic only. `ctx.reserved_line = ea & !RESERVATION_MASK` (M3 refactor). Cosmetic only.
@@ -1443,7 +1443,7 @@ and PPCBUG-130: `invalidate_for_write` is never called from any plain store arm.
### PPCBUG-145 — stwcx: stale manual snapshot uses `reserved_addr` (LOW) ### PPCBUG-145 — stwcx: stale manual snapshot uses `reserved_addr` (LOW)
- **Severity**: LOW (documentation only; live code is correct) - **Severity**: LOW (documentation only; live code is correct)
- **Status**: open - **Status**: applied (P7 manual regen, 2026-05-02)
- **Location**: `ppc-manual/memory/stwcx.md` (frozen snapshot section) - **Location**: `ppc-manual/memory/stwcx.md` (frozen snapshot section)
- **Symptom**: The frozen snapshot shows `ctx.reserved_addr == ea` (exact-word comparison). - **Symptom**: The frozen snapshot shows `ctx.reserved_addr == ea` (exact-word comparison).
The live code at `interpreter.rs:1137-1153` uses `ctx.reserved_line == line` where The live code at `interpreter.rs:1137-1153` uses `ctx.reserved_line == line` where

View File

@@ -466,6 +466,25 @@ After applying Phase 1 alone, run `xenia-rs check sylpheed.iso -n 4B --parallel`
--- ---
### P7 — Frozen-snapshot drift sweep (2026-05-02, manual regen — no xenia-rs code change)
**PPCBUGs fixed**: 3 IDs.
- PPCBUG-066: ppc-manual/branch/{td,tdi,tw,twi}.md — old unconditional-trap stub replaced with current TO-field-evaluating implementation snippet.
- PPCBUG-117: ppc-manual/memory/ldarx.md — refreshed to current reservation_line/reservation_table model.
- PPCBUG-145: ppc-manual/memory/stwcx.md — same reservation refresh.
**Methodology**: ran `python3 ppc-manual/generator/generate_manual.py` (the existing idempotent generator that scrapes xenia-rs and xenia-canary source for each opcode and emits a Markdown page). Output: 350 family pages updated, 598-key index.json refreshed.
**Verification**: post-regen `grep` confirms (a) the old "For now, just trace and continue" stub is gone from every page; (b) modern constructs (`trap::evaluate`, the current reservation pattern) appear in the trap and reservation pages.
**Note on scope**: the `ppc-manual/` directory is not versioned in `xenia-rs/.git`. The regen is therefore "done by running the script" with no commit landing in this repo. Documented for posterity here.
**Implicit drift cleared by earlier phases**: addicx (PPCBUG-003 fixed in P4), andisx (PPCBUG-023 fixed in P4), cmp/cmpi (PPCBUG-050 — no code change required; manual snapshot now reflects current behavior), extsbx/extshx (PPCBUG-036/037 fixed in P4 batch 2), 32 in batch 1 — all auto-resolved by re-running the generator after P1-P6.
**Conclusion**: P7 is functionally complete. No xenia-rs code change. Next: P8 — test gap closure.
---
## Index — every PPCBUG referenced (in numerical order) ## Index — every PPCBUG referenced (in numerical order)
This list intentionally includes every ID found in `audit-findings.md` so nothing is dropped. For each entry's full description / file:line / fix snippet / test recommendation, see the corresponding `### PPCBUG-NNN` heading in `audit-findings.md`. This list intentionally includes every ID found in `audit-findings.md` so nothing is dropped. For each entry's full description / file:line / fix snippet / test recommendation, see the corresponding `### PPCBUG-NNN` heading in `audit-findings.md`.