#640
Fix missing AT&T mnemonic size suffixes
Fixes https://github.com/zyantific/zydis/issues/625
All affected instructions:
CALL, JMP, POP, PUSH,
DEC, DIV, IDIV, IMUL, INC, MUL, NEG, NOP, NOT, PTWRITE,
FADD, FCOM, FCOMP, FDIV, FDIVR, FLD, FMUL, FST, FSTP, FSUB, FSUBR,
FIADD, FICOM, FICOMP, FIDIV, FIDIVR, FILD, FIMUL,
FIST, FISTP, FISTTP, FISUB, FISUBR,
FLDENV, FNSAVE, FNSTENV, FRSTOR,
LGDT, LIDT, SGDT, SIDT
This code looks very brittle, we generally try to avoid hardcoding based on mnemonics, especially when it'd be used so extensively. Another thing we don't like to rely on is meta information e.g.
instruction->meta.category.I didn't review this in full but I can already tell based on existing tests this produces invalid outputs like
calll. I believe we need a better approach here and most importantly extensive validation effort to compare against binutils to solve this and other pending AT&T issues like some instructions with interfixes, something formatter isn't ready to support right now.