Intel developed its 64-bit extensions to the 32-bit x86 instruction set by "reading AMD's pre-release documentation", Microprocessor Report analyst Tom Halfhill has claimed.
This exercise in "reverse engineering", he says, has yielded a technology that's almost but not quite fully compatible with AMD's AMD64 architecture, the foundation of the chip company's Athlon 64 and Opteron processor families.
Microprocessor Report has "compared all the new instructions, modified instructions, deleted instructions, and modifications to the register files - including control registers, system registers and registers visible to application programs", Halfhill said. It also compared the memory-addressing schemes and many other architectural features, such as data-addressing modes, context-switching behavior, interrupt handling, and support for existing 16- and 32-bit x86 execution modes.
The upshot? "In every case," he concludes, "we found Intel had patterned its 64-bit x86 architecture after AMD64 in almost every detail."
The differences, however, are still enough to cause problems, albeit "minor" ones, according to Halfhill. He suggests these may be eliminated in future incarnations of Intel's x86-64 technology, and in any case, software can be easily coded to cope with both 64-bit architectures. That's what the OpenBSD folks have done, we understand.
"We've tested the Intel x86 64-bit stuff, and it works for OpenBSD," said one of the OS development team. "But it's nasty, because they left out the NX (non-executable) bit in the page tables." ®