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 <c...@braap.org> > This looks ok to me, and thanks for testing. However, I am not so familiar > with > 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 message empty. 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. Thanks, Emilio