On 05/17/2011 03:32 PM, Max Filippov wrote:
> +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.


r~

Reply via email to