On Apr 6, 2006, at 9:11 PM, Chris Olson wrote: > On Apr 6, 2006, at 10:12 PM, Glenn L. Austin wrote: > >> It's strange that you say that, since Mach was designed to run on >> CISC hardware > > Unlike IA32, PowerPC does not have a call or jmp instruction. > Execution flow is controlled by one of the many branch instructions. And PowerPC doesn't have an instruction to get the current PC directly, to do that requires a branch to the next instruction saving the link register and a load of the link register into a general purpose register. MachO (the native binary format for Mac OS X) uses PC-relative constants. Yes, that's right, every reference to a constant requires a branch, which causes a flush of the instruction pipeline. On the other hand, x86 has a direct "load relative to PC" instruction which doesn't flush the instruction pipeline -- so MachO is much more efficient. NeXTStep was released on 68K and x86, and later ported to PPC as "Rhapsody" which became the core of Mac OS X. I was at Apple during the NeXT integration. And you were where...? -- Glenn L. Austin <>< Computer Wizard and Race Car Driver <glenn at austin-home.com> <http://www.austin-home.com/glenn/>