On Jun 3, 2013, at 10:14 PM, Liam Proven <lproven at gmail.com> wrote:
I wonder what
specific changes rendered it incompatible.
I think that the 486 added a few small instructions, and the Pentium a
few more. Part of it is also code optimisation - the 386 is a simple
in-order CPU, the 486 is scalar, the Pentium superscalar and the
Pentium Pro & successors decompose x86 code to microinstructions,
reoder them for out-of-order execution and then re-sequence the
results.
I am not entirely surprised that kernel code designed for the latter
won't work on the former.
Actually, the change from in-order to out-of-order should not break
code. If it did, it would be considered a major fault in the CPU;
from the programmer's perspective, everything
should execute
exactly as if it were in-order (modulo performance differences).
- Dave