From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:59353) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QNJvM-0005Kz-Fq for qemu-devel@nongnu.org; Fri, 20 May 2011 03:15:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QNJvK-0005bo-He for qemu-devel@nongnu.org; Fri, 20 May 2011 03:15:04 -0400 Received: from mail-bw0-f45.google.com ([209.85.214.45]:33427) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QNJvK-0005bS-CP for qemu-devel@nongnu.org; Fri, 20 May 2011 03:15:02 -0400 Received: by bwz16 with SMTP id 16so2991722bwz.4 for ; Fri, 20 May 2011 00:15:01 -0700 (PDT) From: Max Filippov Date: Fri, 20 May 2011 11:14:56 +0400 References: <1305671572-5899-1-git-send-email-jcmvbkbc@gmail.com> <1305671572-5899-21-git-send-email-jcmvbkbc@gmail.com> <4DD592F1.6030205@twiddle.net> In-Reply-To: <4DD592F1.6030205@twiddle.net> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201105201114.56852.jcmvbkbc@gmail.com> Subject: Re: [Qemu-devel] [PATCH 20/26] target-xtensa: implement extended L32R List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Richard Henderson > > +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