What could be done is conversion to a new instruction set, while using the invalid instruction interrupt to emulate legacy instructions. This would be a good way to those extra instructions out of the core. While software is not as efficient, and would be very slow, it would allow the progression over to the new instruction set very easily. Windows has the ability to have drivers for the CPU, so this could simply be built into there. Linux could be recompiled - which fixes a lot of the problems. Clearly running 16bit segmented code would be very tricky, and would run abysmally slow, but it would still run, until updates were available.