qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 20/26] target-xtensa: implement extended L32R


From: Max Filippov
Subject: Re: [Qemu-devel] [PATCH 20/26] target-xtensa: implement extended L32R
Date: Fri, 20 May 2011 11:14:56 +0400
User-agent: KMail/1.13.6 (Linux/2.6.34.8-68.fc13.x86_64; KDE/4.5.5; x86_64; ; )

> > +static void gen_wsr_litbase(DisasContext *dc, uint32_t sr, TCGv_i32 s)
> > +{
> > +    tcg_gen_mov_i32(cpu_SR[sr], s);
> > +    /* This can change tb->flags, so exit tb */
> > +    gen_jumpi_check_loop_end(dc, -1);
> > +}
> 
> Surely you have to flush all TB's when changing litbase?
> 
> > +                    ((dc->tb->flags & XTENSA_TBFLAG_LITBASE) ?
> > +                     dc->litbase :
> > +                     ((dc->pc + 3) & ~3)) +
> > +                    (0xfffc0000 | (RI16_IMM16 << 2)));
> 
> Unless you actually read from env->sr[LITBASE] here, instead
> of building the value into the TB.

You're right, I have to flush all TBs at gen_wsr_litbase for this code to 
always work correctly.
As far as I can see LITBASE usage pattern is that it is set up once in early 
initialization and is never changed after.

Thanks.
-- Max



reply via email to

[Prev in Thread] Current Thread [Next in Thread]