All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Lluís Vilanova" <vilanova@ac.upc.edu>
To: Richard Henderson <rth@twiddle.net>
Cc: qemu-devel@nongnu.org, "Peter Maydell" <peter.maydell@linaro.org>,
	"Peter Crosthwaite" <crosthwaite.peter@gmail.com>,
	"Emilio G. Cota" <cota@braap.org>,
	"open list:ARM" <qemu-arm@nongnu.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: [Qemu-devel] [PATCH v11 23/29] target/arm: [tcg] Port to translate_insn
Date: Mon, 10 Jul 2017 16:47:38 +0300	[thread overview]
Message-ID: <87k23gl7yd.fsf@frigg.lan> (raw)
In-Reply-To: <260addd5-45fe-ad10-5208-35906fd3f197@twiddle.net> (Richard Henderson's message of "Fri, 7 Jul 2017 07:38:26 -1000")

Richard Henderson writes:

> On 07/07/2017 07:18 AM, Lluís Vilanova wrote:
>> There was no code being generated after this specific case, but I haven't
>> checked if DISAS_EXC is set in any other place that is not immediately followed
>> by a "goto done_generating".

> Typically we haven't actually done a goto, but simply exit the loop and emit
> nothing within the final cleanup (tb_stop?).

The case handled by DISAS_SKIP ignores tb_stop() (the target code can simply
return when DISAS_EXC is found instead of DISAS_SKIP) *and* gen_io_end(); this
last one is never omitted when DISAS_EXC is found now, and theoretically
DISAS_EXC can be set by any target-specific hook. Thus my question if the
generic call to gen_io_end() should check for DISAS_EXC too (I have no idea if
it would be an error to call it with DISAS_EXC set, or whether it makes sense to
for a target to set it so that gen_io_start() is called but gen_io_end() is then
skipped by a DISAS_EXC set in ops->translate_insn()).


>> Does this mean DISAS_EXC should be on the generic code and do a "goto
>> done_generating" whenever it is found? And if so, what are the correct places to
>> check for this? After ops->insn_start, ops->translate_insn, ops->tb_stop?

> Yes, this should be handled generically, since all targets need it.

> That said, I would prefer a better name like DISAS_NORETURN, which does not
> imply that an actual exception has been raised, but explicitly says that all
> following code is dead.

I can use that name.

And in fact, generalizing DISAS_NORETURN will allow dropping the enum result of
breakpoint_check(), and instead simply return a bool (whether a breakpoint did
hit). Targets can then set DISAS_NORETURN and return true instead of returning
BC_HIT_TB (simply returning true is equivalent to the previous BC_HIT_INSN).


Cheers,
  Lluis

  reply	other threads:[~2017-07-10 13:47 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-28 12:16 [Qemu-devel] [PATCH v11 00/29] translate: [tcg] Generic translation framework Lluís Vilanova
2017-06-28 12:20 ` [Qemu-devel] [PATCH v11 01/29] Pass generic CPUState to gen_intermediate_code() Lluís Vilanova
2017-06-29 22:52   ` Emilio G. Cota
2017-06-30 18:46     ` Richard Henderson
2017-07-01 22:44   ` Richard Henderson
2017-06-28 12:24 ` [Qemu-devel] [PATCH v11 02/29] cpu-exec: Avoid global variables in icount-related functions Lluís Vilanova
2017-06-29 22:56   ` Emilio G. Cota
2017-06-28 12:28 ` [Qemu-devel] [PATCH v11 03/29] target: [tcg] Use a generic enum for DISAS_ values Lluís Vilanova
2017-06-29 23:09   ` Emilio G. Cota
2017-07-01 22:48   ` Richard Henderson
2017-06-28 12:32 ` [Qemu-devel] [PATCH v11 04/29] target: [tcg] Add generic translation framework Lluís Vilanova
2017-06-30  0:02   ` Emilio G. Cota
2017-07-01 22:57     ` Richard Henderson
2017-06-30  1:18   ` Emilio G. Cota
2017-07-01 23:37   ` Richard Henderson
2017-07-04 18:59     ` Lluís Vilanova
2017-07-04 19:14       ` Peter Maydell
2017-07-04 22:31         ` Richard Henderson
2017-07-04 22:34           ` Peter Maydell
2017-06-28 12:36 ` [Qemu-devel] [PATCH v11 05/29] target/i386: [tcg] Port to DisasContextBase Lluís Vilanova
2017-06-29 23:33   ` Emilio G. Cota
2017-07-01 23:39   ` Richard Henderson
2017-06-28 12:40 ` [Qemu-devel] [PATCH v11 06/29] target/i386: [tcg] Refactor init_disas_context Lluís Vilanova
2017-06-29 23:51   ` Emilio G. Cota
2017-07-07  7:41     ` Lluís Vilanova
2017-07-01 23:50   ` Richard Henderson
2017-06-28 12:44 ` [Qemu-devel] [PATCH v11 07/29] target/i386: [tcg] Refactor init_globals Lluís Vilanova
2017-06-30  0:06   ` Emilio G. Cota
2017-07-02  0:25   ` Richard Henderson
2017-06-28 12:48 ` [Qemu-devel] [PATCH v11 08/29] target/i386: [tcg] Refactor insn_start Lluís Vilanova
2017-06-30  0:08   ` Emilio G. Cota
2017-07-02  0:26   ` Richard Henderson
2017-06-28 12:52 ` [Qemu-devel] [PATCH v11 09/29] target/i386: [tcg] Refactor breakpoint_check Lluís Vilanova
2017-06-30  0:24   ` Emilio G. Cota
2017-07-02  0:28   ` Richard Henderson
2017-06-28 12:57 ` [Qemu-devel] [PATCH v11 10/29] target/i386: [tcg] Refactor translate_insn Lluís Vilanova
2017-06-30  0:41   ` Emilio G. Cota
2017-07-07  9:25     ` Lluís Vilanova
2017-07-07 15:18       ` Richard Henderson
2017-07-07 17:05         ` Lluís Vilanova
2017-07-02  0:41   ` Richard Henderson
2017-06-28 13:01 ` [Qemu-devel] [PATCH v11 11/29] target/i386: [tcg] Refactor tb_stop Lluís Vilanova
2017-06-30  0:47   ` Emilio G. Cota
2017-07-02  0:47   ` Richard Henderson
2017-06-28 13:05 ` [Qemu-devel] [PATCH v11 12/29] target/i386: [tcg] Refactor disas_log Lluís Vilanova
2017-06-30  0:50   ` Emilio G. Cota
2017-07-02  0:49   ` Richard Henderson
2017-06-28 13:09 ` [Qemu-devel] [PATCH v11 13/29] target/i386: [tcg] Port to generic translation framework Lluís Vilanova
2017-06-30  1:11   ` Emilio G. Cota
2017-07-07 10:27     ` Lluís Vilanova
2017-07-07 10:29     ` Lluís Vilanova
2017-07-02  0:52   ` Richard Henderson
2017-06-28 13:13 ` [Qemu-devel] [PATCH v11 14/29] target/arm: [tcg] Port to DisasContextBase Lluís Vilanova
2017-07-02  1:00   ` Richard Henderson
2017-06-28 13:17 ` [Qemu-devel] [PATCH v11 15/29] target/arm: [tcg] Port to init_disas_context Lluís Vilanova
2017-07-02  1:04   ` Richard Henderson
2017-06-28 13:21 ` [Qemu-devel] [PATCH v11 16/29] target/arm: [tcg, a64] " Lluís Vilanova
2017-07-02  1:13   ` Richard Henderson
2017-06-28 13:25 ` [Qemu-devel] [PATCH v11 17/29] target/arm: [tcg] Port to init_globals Lluís Vilanova
2017-07-02  1:14   ` Richard Henderson
2017-06-28 13:29 ` [Qemu-devel] [PATCH v11 18/29] target/arm: [tcg] Port to tb_start Lluís Vilanova
2017-07-02  1:17   ` Richard Henderson
2017-06-28 13:33 ` [Qemu-devel] [PATCH v11 19/29] target/arm: [tcg] Port to insn_start Lluís Vilanova
2017-07-02  1:18   ` Richard Henderson
2017-06-28 13:37 ` [Qemu-devel] [PATCH v11 20/29] target/arm: [tcg, a64] " Lluís Vilanova
2017-07-02  1:19   ` Richard Henderson
2017-06-28 13:41 ` [Qemu-devel] [PATCH v11 21/29] target/arm: [tcg] Port to breakpoint_check Lluís Vilanova
2017-07-02  1:21   ` Richard Henderson
2017-06-28 13:45 ` [Qemu-devel] [PATCH v11 22/29] target/arm: [tcg, a64] " Lluís Vilanova
2017-07-02  1:22   ` Richard Henderson
2017-06-28 13:49 ` [Qemu-devel] [PATCH v11 23/29] target/arm: [tcg] Port to translate_insn Lluís Vilanova
2017-07-02  1:34   ` Richard Henderson
2017-07-07 11:13     ` Lluís Vilanova
2017-07-07 15:26       ` Richard Henderson
2017-07-07 17:18         ` Lluís Vilanova
2017-07-07 17:38           ` Richard Henderson
2017-07-10 13:47             ` Lluís Vilanova [this message]
2017-07-10 15:28               ` Richard Henderson
2017-07-07 17:33         ` Peter Maydell
2017-07-07 17:48           ` Richard Henderson
2017-06-28 13:53 ` [Qemu-devel] [PATCH v11 24/29] target/arm: [tcg, a64] " Lluís Vilanova
2017-07-02  1:42   ` Richard Henderson
2017-07-07 11:18     ` Lluís Vilanova
2017-07-07 15:46       ` Richard Henderson
2017-07-07 16:19         ` Emilio G. Cota
2017-07-07 17:33           ` Lluís Vilanova
2017-07-07 17:32         ` Lluís Vilanova
2017-07-07 17:41           ` Richard Henderson
2017-07-11 15:56             ` Lluís Vilanova
2017-06-28 13:57 ` [Qemu-devel] [PATCH v11 25/29] target/arm: [tcg] Port to tb_stop Lluís Vilanova
2017-07-02  1:45   ` Richard Henderson
2017-06-28 14:01 ` [Qemu-devel] [PATCH v11 26/29] target/arm: [tcg, a64] " Lluís Vilanova
2017-07-02  1:48   ` Richard Henderson
2017-06-28 14:05 ` [Qemu-devel] [PATCH v11 27/29] target/arm: [tcg] Port to disas_log Lluís Vilanova
2017-07-02  1:49   ` Richard Henderson
2017-06-28 14:09 ` [Qemu-devel] [PATCH v11 28/29] target/arm: [tcg, a64] " Lluís Vilanova
2017-07-02  1:50   ` Richard Henderson
2017-06-28 14:13 ` [Qemu-devel] [PATCH v11 29/29] target/arm: [tcg] Port to generic translation framework Lluís Vilanova
2017-07-02  1:54   ` Richard Henderson
2017-07-07 11:26     ` Lluís Vilanova

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k23gl7yd.fsf@frigg.lan \
    --to=vilanova@ac.upc.edu \
    --cc=alex.bennee@linaro.org \
    --cc=cota@braap.org \
    --cc=crosthwaite.peter@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.