|
From: | Richard Henderson |
Subject: | Re: [PATCH 20/37] target/i386: reimplement 0x0f 0x60-0x6f, add AVX |
Date: | Mon, 12 Sep 2022 14:01:47 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 |
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~
[Prev in Thread] | Current Thread | [Next in Thread] |