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~