Comment by wren6991
1 day ago
> If one of your vendor blobs was specified for the old system and the new system is "similar", you'll just link it in and see what happens.
And what if that blob has instructions your new core just doesn't implement? This problem has nothing to do with overlap.
Then you take an illegal instruction exception, and you have a choice to request a rebuild, patch it, or emulate it. (Yeah, sometimes the vendors just don't cooperate.)
Incidentally, emulating opcodes is quite often practical (unless the performance must not be affected), and is greatly helped by having the plainest, cleanest instruction encoding possible, and a well designed system register & exception architecture.
Then it crashes in a nice, obvious way as soon as you execute one of them? Illegal instructions aren't usually that hard to debug unless they're related to memory safety issues.