Files
MechaCat02 10dc260f0c chore(tools): adopt the PPC manual and a canary launcher that works anywhere
CONSOLIDATION.md Phase 6. Both lived untracked in the project root -- on one
disk, backed up by nothing.

  tools/ppc-manual/   393 files, 3.7 MB. 455 instructions, 350 family pages,
                      598 mnemonics resolvable through index.json, plus the
                      generator that produced them.
  tools/run-canary.sh the oracle launcher.

🔴 THE LAUNCHER WAS BROKEN IN TWO WAYS AND IS REWRITTEN, not copied:

  * it pointed at `xenia-rs/sylpheed.iso`, a SYMLINK. Wine cannot resolve one
    and says "path invalid", which reads as a corrupt image rather than a path
    problem -- it has cost a session before. It now points at the real file and
    warns if handed a symlink.
  * it hardcoded one machine's absolute paths, and named `xenia-rs`, which this
    consolidation retires. Now derived from the script's own location, with
    SYLPH_CANARY_BIN / SYLPH_ISO overrides and a check that each exists.

The standing constraints are in its header where someone will read them: one
emulator at a time, Canary runs MUTED, and never judge a crash or a hang from
a Bash-launched run -- a SIGKILL that looked like the binary was the editor's
process supervisor.

⚠️ The manual's GENERATOR reads the xenia-rs source tree, which is going away.
Its decoder now lives here as crates/sylpheed-ppc, so the generator must be
repointed before it is run again. Recorded in the README rather than left for
someone to discover; the manual's content is checked in and regenerates from
nothing implicitly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 21:18:00 +02:00

1.9 KiB
Raw Permalink Blame History

Form VA — VA — Vector Arithmetic (4-operand, madd-style)

Bit Layout

Bits Field Meaning
05 OPCD primary opcode (4)
610 VRT destination vector register
1115 VRA source A
1620 VRB source B
2125 VRC source C / shift
2631 XO extended opcode (6 bits)

Instructions Using This Form

Mnemonic Opcode Group Description
vmhaddshs 0x10000020 vmx Vector Multiply-High and Add Signed Signed Half Word Saturate
vmhraddshs 0x10000021 vmx Vector Multiply-High Round and Add Signed Signed Half Word Saturate
vmladduhm 0x10000022 vmx Vector Multiply-Low and Add Unsigned Half Word Modulo
vmsumubm 0x10000024 vmx Vector Multiply-Sum Unsigned Byte Modulo
vmsummbm 0x10000025 vmx Vector Multiply-Sum Mixed-Sign Byte Modulo
vmsumuhm 0x10000026 vmx Vector Multiply-Sum Unsigned Half Word Modulo
vmsumuhs 0x10000027 vmx Vector Multiply-Sum Unsigned Half Word Saturate
vmsumshm 0x10000028 vmx Vector Multiply-Sum Signed Half Word Modulo
vmsumshs 0x10000029 vmx Vector Multiply-Sum Signed Half Word Saturate
vsel 0x1000002a vmx Vector Conditional Select
vperm 0x1000002b vmx Vector Permute
vsldoi 0x1000002c vmx Vector Shift Left Double by Octet Immediate
vmaddfp 0x1000002e vmx Vector Multiply-Add Floating Point
vnmsubfp 0x1000002f vmx Vector Negative Multiply-Subtract Floating Point