Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Perfect — let’s build two separate lists of PowerPC instructions that
- do not alter registers, and
- either (A) allow traps or (B) exclude traps as control flow changes.
- ---
- 📑 List A — Registers not altered, traps allowed
- (These don’t write back into registers. They may affect memory, caches, ordering, or trigger a trap, but that’s okay under this definition.)
- Synchronization
- sync (31 / XO=598)
- eieio (31 / XO=854)
- isync (19 / XO=150)
- Data Cache Block Ops
- dcbf (31 / XO=86)
- dcbst (31 / XO=54)
- dcbi (31 / XO=470)
- dcbt (31 / XO=278)
- dcbtst (31 / XO=246)
- dcbz (31 / XO=1014)
- Instruction Cache
- icbi (31 / XO=982)
- TLB Ops
- tlbie (31 / XO=306)
- tlbia (31 / XO=370) [optional/implementation-specific]
- Trap Instructions (no register writes, but may raise exception)
- tdi (2)
- td (31 / XO=68) Trap Doubleword (register form)
- tw (31 / XO=4) Trap Word
- twi (3) Trap Word Immediate
- ---
- 📑 List B — Registers not altered, no control flow change at all
- (This is the strict interpretation: no register writes and no possible PC change, even via exception/trap.)
- Synchronization
- sync (31 / XO=598)
- eieio (31 / XO=854)
- isync (19 / XO=150)
- Data Cache Block Ops
- dcbf (31 / XO=86)
- dcbst (31 / XO=54)
- dcbi (31 / XO=470)
- dcbt (31 / XO=278)
- dcbtst (31 / XO=246)
- dcbz (31 / XO=1014)
- Instruction Cache
- icbi (31 / XO=982)
- TLB Ops
- tlbie (31 / XO=306)
- tlbia (31 / XO=370) [optional/implementation-specific]
- ---
- ✅ So the difference is that List A includes td, tdi, tw, twi, while List B excludes them because they can change control flow by causing exceptions.
Advertisement
Add Comment
Please, Sign In to add comment