[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] target-i386: tcg: Accept clwb instruction
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] target-i386: tcg: Accept clwb instruction |
Date: |
Fri, 6 Nov 2015 11:59:19 -0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, Nov 06, 2015 at 12:04:56PM +0100, Richard Henderson wrote:
> On 11/04/2015 10:24 PM, Eduardo Habkost wrote:
> >Accept the clwb instruction (66 0F AE /6) if its corresponding feature
> >flag is enabled on CPUID[7].
> >
> >Signed-off-by: Eduardo Habkost <address@hidden>
> >---
> > target-i386/translate.c | 13 ++++++++++++-
> > 1 file changed, 12 insertions(+), 1 deletion(-)
> >
> >diff --git a/target-i386/translate.c b/target-i386/translate.c
> >index b400d24..bac1685 100644
> >--- a/target-i386/translate.c
> >+++ b/target-i386/translate.c
> >@@ -7716,10 +7716,21 @@ static target_ulong disas_insn(CPUX86State *env,
> >DisasContext *s,
> > }
> > break;
> > case 5: /* lfence */
> >- case 6: /* mfence */
> > if ((modrm & 0xc7) != 0xc0 || !(s->cpuid_features &
> > CPUID_SSE2))
> > goto illegal_op;
> > break;
> >+ case 6: /* mfence/clwb */
> >+ if (s->prefix & PREFIX_DATA) {
> >+ /* clwb */
> >+ if (!(s->cpuid_7_0_ebx_features & CPUID_7_0_EBX_CLWB))
> >+ goto illegal_op;
> >+ gen_lea_modrm(env, s, modrm);
>
> You should use gen_nop_modrm here, since we're not going to do anything with
> the address. Otherwise,
>
> Reviewed-by: Richard Henderson <address@hidden>
Thanks! BTW, clflush uses gen_lea_modrm() too, does it do anything with
the address somewhere else?
--
Eduardo