On 9/12/22 00:04, Paolo Bonzini wrote:
+static void decode_0F6F(DisasContext *s, CPUX86State *env, X86OpEntry *entry, uint8_t *b) +{ + if (s->prefix & PREFIX_REPNZ) { + entry->gen = NULL;
Are these lines really required with the p_00_66_f3 spec on the group entry?
+ } else if (s->prefix & PREFIX_REPZ) { + /* movdqu */ + entry->gen = gen_MOVDQ; + entry->vex_class = 4; + entry->vex_special = X86_VEX_SSEUnaligned; + } else { + /* MMX movq, movdqa */ + entry->gen = gen_MOVDQ; + entry->vex_class = 1; + entry->special = X86_SPECIAL_MMX; + }
Also, you're overriding vex_class for both valid entries, so why does the group speicfy vex5? Clearer to use X86_OP_ENTRY3 within this function and copy from static const data instead of overriding individual fields?
r~