I don't think packing the enum into 16-bit is advantageous in any way, also it doesn't happen on MSVC, for which the macro is defined to be empty. The ud struct's size shouldn't change (at least it doesn't on Clang/GCC for 64-bit), only the offset of the mnemonic member would be aligned to 4 bytes.
Issue #10 points out a flaw in decoding the string prefixes in
udis86. Although rep/repe use the same encoding, the precise
prefix depends on the isntruction.
This change adds a new prefix notation to optable.xml that
indicates if an instruction takes a rep or repz (rep with
zero-flag).
It is undefined in the isa what the behavior of this 0xf3
prefix would on instructions that do not support it. For now,
udis86 simply decodes it as rep.