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>
4.8 KiB
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 |