[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH v8 29/35] Hexagon (target/hexagon) translation
From: |
Taylor Simpson |
Subject: |
RE: [PATCH v8 29/35] Hexagon (target/hexagon) translation |
Date: |
Mon, 15 Mar 2021 22:19:17 +0000 |
> -----Original Message-----
> From: Richard Henderson <richard.henderson@linaro.org>
> Sent: Monday, March 15, 2021 8:32 AM
> To: Taylor Simpson <tsimpson@quicinc.com>; qemu-devel@nongnu.org
> Cc: philmd@redhat.com; alex.bennee@linaro.org; laurent@vivier.eu;
> ale@rev.ng; Brian Cain <bcain@quicinc.com>
> Subject: Re: [PATCH v8 29/35] Hexagon (target/hexagon) translation
>
> On 3/14/21 9:06 PM, Taylor Simpson wrote:
> >> Yes, but DISAS_NORETURN still means we've already exited.
> >>
> >> Just like calling abort() in C means that we won't reach any following
> >> return statement.
> >
> > Then I'm missing something because the code emitted here does get executed.
>
> You really are missing the point.
>
> The code emitted here, for the NORETURN case, gets executed? How do you know?
I can see the side effects. For example, there is a call to
gen_exec_counters(ctx), and I can see the counters being updated.
> And if so, then *something* is returning when it shouldn't.
>
> The stop hook is for the use of all of the *other* DISAS_* codes, for which
> we have not yet exited.
>
> There should be *nothing* to be done for NORETURN. We have longjmp'ed
> away to the main loop already. Anything that needed to be done must have been
> done before that point.
OK - I'll make sure everything is done during the packet generation and nothing
is done during tb_stop.
Thanks,
Taylor