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~

Reply via email to