X86-64 bilateral instruction tokenizer implemented in C. Supports the following processor extensions: AES, AVX, AVX2, AVX512, FMA, MMX, SSE, SSE2, SSE3, SSE4, x87(FPU), VMX. In order to ease testing, a diassembler which transforms tokens into compilable assembly (for NASM compiler) has been implemented.
Modifiers (operand READ | WRITE, affected flags) are handled but only for unprefixed instructions which resolution is performed directly through the lookup table.
The same work must be done (create and fill lookup tables) for the 0x0F, 0x0F38 and 0x0F3A prefixes.
Also for indexing, extensions, addons, overwrittings, ...
NOTE: Maybe the kind of affected flags varies across the processor extensions. This may lead to more issues.
Operand type OT_S must not be used for srstor, xrstors, xsave, xsavec, xsaves instructions and a new memory size operand (AVL_reg_t) must be implemented to represent N bytes of data which do not have a defined size.