Is it possible for a Length Disassembler to correctly identify the size of an instruction without supporting extensions like VEX/EVEX/MVEX/XOP prefix'd instructions?
I am asking because I have written a basic Length Disassembler, but it only supports (x86 and x86_64):
- General/System Instructions
- x87 FPU
- MMX
- SSE
- SSE2
- SSE3
- SSE4.1
- SSE4.2
- VMX
- SMX
It would take quite a bit to incorporate every single extension that Intel/AMD includes + actually checking if the CPU in question doing the Disassembly actually supports each of those instructions, while AFAIK the majority of CPUs support the extensions above.
So are there any cases where an unsupported instruction would cause the series of bytes to be interpreted as another instruction I do support which would be a different size and would mess up all of the following instructions?
I could indeed browse trough the lengthy Intel and AMD manuals and do some thinking, but if anybody here can give me a straight answer quickly based on their knowledge, I would prefer it. Thank you.