From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53674) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dV0j5-0004gu-04 for qemu-devel@nongnu.org; Tue, 11 Jul 2017 15:21:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dV0j0-0000J4-W8 for qemu-devel@nongnu.org; Tue, 11 Jul 2017 15:21:38 -0400 Received: from mail-wr0-f175.google.com ([209.85.128.175]:35704) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dV0j0-0000Id-Pf for qemu-devel@nongnu.org; Tue, 11 Jul 2017 15:21:34 -0400 Received: by mail-wr0-f175.google.com with SMTP id k67so2334362wrc.2 for ; Tue, 11 Jul 2017 12:21:34 -0700 (PDT) References: <20170711175937.23140-1-alex.bennee@linaro.org> <20170711175937.23140-5-alex.bennee@linaro.org> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: Date: Tue, 11 Jul 2017 20:20:31 +0100 Message-ID: <87fue2aigw.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v3 4/6] target/arm/translate: ensure gen_goto_tb sets exit flags List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson Cc: peter.maydell@linaro.org, cota@braap.org, qemu-devel@nongnu.org, "open list:ARM" Richard Henderson writes: > On 07/11/2017 07:59 AM, Alex Bennée wrote: >> if (use_goto_tb(s, dest)) { >> tcg_gen_goto_tb(n); >> gen_set_pc_im(s, dest); >> tcg_gen_exit_tb((uintptr_t)s->tb + n); >> + s->is_jmp = DISAS_TB_JUMP; >> } else { >> gen_set_pc_im(s, dest); >> gen_goto_ptr(); >> + s->is_jmp = DISAS_JUMP; >> } > > I think DISAS_TB_JUMP is appropriate for both cases. When not using > goto_tb, the jump is still static and we still chain to the next TB > via goto_ptr. OK - I guess we need to nail down what the essential difference is between the two. I understood DISAS_TB_JUMP as a static known PC which can be patched in the generated code because we know the two addresses are in the same page - whereas DISAS_JUMP is a "computed" jump although in this case the PC is already known. Does making a distinction between computed and non-computer inter-page jumps make any sense anyway? > > Otherwise, > > Reviewed-by: Richard Henderson > > > r~ -- Alex Bennée