The hand-written parts of the manual still described how the retired
xenia-rs interpreter behaved: its snapshots, Rust casts and helpers. Each of
those 490 statements is now either restated as what Canary's emitters and
x64 backend actually do (at the pinned canary_experimental commit), or
dropped where it only made sense for xenia-rs.
Checking them turned up claims that were wrong, not just outdated:
- VSCR[SAT] is never modelled in Canary (DID_SATURATE is a stub and mfvscr
cannot see it); the pages said saturating ops set it stickily.
- Canary does not implement lswi/lswx/stswi/stswx, dcbi, mtfsb0/mtfsb1,
vmsum*, vmhaddshs, vupkhpx/vupklpx, and most SPRs; pages described them
as working.
- Traps evaluate TO in Canary; stvebx/stvehx/stvewx store one element, not
16 bytes; mtmsrd writes only EE; fres/frsqrte/vrsqrtefp precision claims
and the stfs "rounds under RN / sets FPSCR" claim contradicted the spec.
- Reservations are a 64 KiB block bitmap plus a value compare, not
per-address tracking.
Claims that neither Canary's source nor a public spec settles are marked
unverified (NI at boot, vmaddcfp128 operand order, estimate bit-exactness).
Generated regions are untouched; re-running the generator changes nothing.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>