Files
Sylpheed/tools/ppc-manual/forms/XO.md
MechaCat02 6bdbf89ebc
All checks were successful
CI / Native — linux (pull_request) Successful in 37m56s
CI / WASM — Web (pull_request) Successful in 28m5s
CI / Formatting (pull_request) Successful in 59s
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

2.2 KiB
Raw Blame History

Form XO — XO — Extended, Overflow (ALU with OE/Rc)

Bit Layout

Bits Field Meaning
05 OPCD primary opcode (31)
610 RT destination GPR
1115 RA source A
1620 RB source B
21 OE overflow-enable flag
2230 XO extended opcode (9 bits)
31 Rc record-form flag

Instructions Using This Form

Mnemonic Opcode Group Description
subfcx 0x7c000010 integer Subtract From Carrying
mulhdux 0x7c000012 integer Multiply High Doubleword Unsigned
addcx 0x7c000014 integer Add Carrying
mulhwux 0x7c000016 integer Multiply High Word Unsigned
subfx 0x7c000050 integer Subtract From
mulhdx 0x7c000092 integer Multiply High Doubleword
mulhwx 0x7c000096 integer Multiply High Word
negx 0x7c0000d0 integer Negate
subfex 0x7c000110 integer Subtract From Extended
addex 0x7c000114 integer Add Extended
subfzex 0x7c000190 integer Subtract From Zero Extended
addzex 0x7c000194 integer Add to Zero Extended
subfmex 0x7c0001d0 integer Subtract From Minus One Extended
mulldx 0x7c0001d2 integer Multiply Low Doubleword
addmex 0x7c0001d4 integer Add to Minus One Extended
mullwx 0x7c0001d6 integer Multiply Low Word
addx 0x7c000214 integer Add
divdux 0x7c000392 integer Divide Doubleword Unsigned
divwux 0x7c000396 integer Divide Word Unsigned
divdx 0x7c0003d2 integer Divide Doubleword
divwx 0x7c0003d6 integer Divide Word