Files
Sylpheed/tools/ppc-manual/categories/alu.md
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

4.8 KiB

Integer ALU

Fixed-point add/sub/multiply/divide, logical, rotate, shift, compare, count-leading-zeros, sign-extension, trap-on-condition.

70 families · 70 XML entries.

Family Form Description Members
addcx XO Add Carrying addcx
addex XO Add Extended addex
addi D Add Immediate addi
addic D Add Immediate Carrying addic
addic. D Add Immediate Carrying and Record addic.
addis D Add Immediate Shifted addis
addmex XO Add to Minus One Extended addmex
addx XO Add addx
addzex XO Add to Zero Extended addzex
andcx X AND with Complement andcx
andi. D AND Immediate andi.
andis. D AND Immediate Shifted andis.
andx X AND andx
cmp X Compare cmp
cmpi D Compare Immediate cmpi
cmpl X Compare Logical cmpl
cmpli D Compare Logical Immediate cmpli
cntlzdx X Count Leading Zeros Doubleword cntlzdx
cntlzwx X Count Leading Zeros Word cntlzwx
divdux XO Divide Doubleword Unsigned divdux
divdx XO Divide Doubleword divdx
divwux XO Divide Word Unsigned divwux
divwx XO Divide Word divwx
eieio X Enforce In-Order Execution of I/O eieio
eqvx X Equivalent eqvx
extsbx X Extend Sign Byte extsbx
extshx X Extend Sign Half Word extshx
extswx X Extend Sign Word extswx
isync XL Instruction Synchronize isync
mulhdux XO Multiply High Doubleword Unsigned mulhdux
mulhdx XO Multiply High Doubleword mulhdx
mulhwux XO Multiply High Word Unsigned mulhwux
mulhwx XO Multiply High Word mulhwx
mulldx XO Multiply Low Doubleword mulldx
mulli D Multiply Low Immediate mulli
mullwx XO Multiply Low Word mullwx
nandx X NAND nandx
negx XO Negate negx
norx X NOR norx
orcx X OR with Complement orcx
ori D OR Immediate ori
oris D OR Immediate Shifted oris
orx X OR orx
rldclx MDS Rotate Left Doubleword then Clear Left rldclx
rldcrx MDS Rotate Left Doubleword then Clear Right rldcrx
rldiclx MD Rotate Left Doubleword Immediate then Clear Left rldiclx
rldicrx MD Rotate Left Doubleword Immediate then Clear Right rldicrx
rldicx MD Rotate Left Doubleword Immediate then Clear rldicx
rldimix MD Rotate Left Doubleword Immediate then Mask Insert rldimix
rlwimix M Rotate Left Word Immediate then Mask Insert rlwimix
rlwinmx M Rotate Left Word Immediate then AND with Mask rlwinmx
rlwnmx M Rotate Left Word then AND with Mask rlwnmx
sldx X Shift Left Doubleword sldx
slwx X Shift Left Word slwx
sradix XS Shift Right Algebraic Doubleword Immediate sradix
sradx X Shift Right Algebraic Doubleword sradx
srawix X Shift Right Algebraic Word Immediate srawix
srawx X Shift Right Algebraic Word srawx
srdx X Shift Right Doubleword srdx
srwx X Shift Right Word srwx
subfcx XO Subtract From Carrying subfcx
subfex XO Subtract From Extended subfex
subficx D Subtract From Immediate Carrying subficx
subfmex XO Subtract From Minus One Extended subfmex
subfx XO Subtract From subfx
subfzex XO Subtract From Zero Extended subfzex
sync X Synchronize sync
xori D XOR Immediate xori
xoris D XOR Immediate Shifted xoris
xorx X XOR xorx