rentzsch.com: tales from the red shed

Read PowerPC+Intel ISA References Directly

Mac OS X

If you install Xcode 2.2 or later and include CHUD (which I recommend), a couple of references covering the PowerPC and Intel x86 ISAs (Instruction Set Architectures) come along for the ride.

You’d normally access these by launching Shark and selecting Help -> (PowerPC ISA Reference|IA32 ISA Reference).

While it’s great these references are now effectively built-in, the environment is weak:

  • Firing up Shark just to get at the references is inconvenient.
  • The reference windows are weird. They’re really little purpose-built apps that Shark sublaunches for some reason (Sanjay’s phear of PDFKit?). Since they’re sublaunched, they don’t come to front immediately. They also don’t Expose along with the rest of Shark’s windows, and don’t order-in or order-out with Shark’s process (your non-Shark menubar doesn’t get switched out with Shark’s menubar when you click on the reference window).
    However, they’re still tied at the hip — the reference windows go away when Shark quits.
  • While the instruction-level disambiguating combo box is really handy, it’s also limiting. There’s no other search provided. Here we have these riches of raw opcodes and assorted instruction-level details, but no way to search them.

Fortunately these references are delivered as normal PDFs, directly openable by Preview.app. They’re just kind of tucked away:

Intel ISA Reference

PowerPC ISA Reference

Try dragging those file: links to the dock, where they should morph into at-symbol-on-a-spring clickable items (current versions of Safari block opening file: directly, necessitating this work-around).

For a taste of how using these references in Preview.app is superior to going through Shark (or launching the helper apps directly) pop open the Intel ISA reference in both and check out cmpx. Doing so via Shark will only reveal there’s two instructions that begin with that mnemonic, whereas Preview.app’s search will also reveal you can test for the availability of cmpxchg8b by testing the CX8 bit of EDX populated by the CPUID instruction, and its relationship to the LOCK prefix.

Really, a richer experience.

Monday, May 29, 2006
12:00 AM