[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] target/openrisc: convert to DisasContextBas
Emilio G. Cota
Re: [Qemu-devel] [PATCH 1/2] target/openrisc: convert to DisasContextBase
Sun, 18 Feb 2018 01:11:09 -0500
On Sun, Feb 18, 2018 at 12:10:46 +0900, Stafford Horne wrote:
> On Sat, Feb 17, 2018 at 08:32:36PM -0500, Emilio G. Cota wrote:
> > Signed-off-by: Emilio G. Cota <address@hidden>
> This looks ok to me, and thanks for testing. However, I am not so familiar
> the DisasContextBase. Is this something new?
The work on having a generic translation loop started a while ago,
picking up steam in June'17 -- look for "Generic translation framework"
threads on the mailing list.
The goal is to have a single loop (accel/tcg/translator.c) to
translate from target code to TCG IR. Apart from reducing code
duplication, this will eventually ease things like inserting
instrumentation, which will have a single injection point
instead of having to patch all targets' translation loops.
Transitioning to the generic translation loop typically
involves three steps:
1- Use of DisasJumpType to mark the exits from the translation loop
2- Use of DisasContextBase to keep track of some state that applies
to all targets (e.g. num_insns, program counter)
3- Conversion to TranslatorOps, which is a set of function pointers
called from translator_loop in accel/tcg/translator.c.
You can see an example of 1-3 for Alpha in commits 3de811c, c5f8065
and 99a92b9, respectively.
Quite a few targets have already been converted (you can see which
ones with "git grep '^\s*translator_loop('"); I'm in the
process of converting the remaining ones as long as I can test
them with a boot image (I've been spamming the list with
conversion patches the last few days).
> It would be good to have a commit message to say what it is any why we are
> making the change?
I considered it, but didn't want to annoy everyone by sending the
same explanation many times (once for each converted target).
The purpose and value of this consolidation work
is well-known among people who follow TCG-related threads on
the mailing list (as I said above this work has been ongoing
for a while), so I think it's reasonable to keep the commit
I figured some people would have to be filled in though (like
yourself), and that's why I just wrote the above; now
I can point to this message if this happens again :-)
Hope the background I gave above helps; please let me know
if anything is unclear.