|
From: | Richard Henderson |
Subject: | Re: [Qemu-arm] [Qemu-devel] [PATCH v11 24/29] target/arm: [tcg, a64] Port to translate_insn |
Date: | Fri, 7 Jul 2017 07:41:49 -1000 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 |
On 07/07/2017 07:32 AM, Lluís Vilanova wrote:
That said, even for AArch32 we know by the TB flags whether or not we're going to be generating arm or thumb code. I think that these hooks will allow arm and thumb mode to finally be split apart cleanly, instead of the tangle that they are now. I see arm's gen_intermediate_code eventually looking like const TranslatorOps *ops = &arm_translator_ops; if (ARM_TBFLAG_THUMB(tb->flags)) { ops = &thumb_translator_ops; } #ifdef TARGET_AARCH64 if (ARM_TBFLAG_AARCH64_STATE(tb->flags)) { ops = &aarch64_translator_ops; } #endif translator_loop(ops, &dc.base, cpu, tb);There would certainly be some amount of shared code, but it would also allow quite a few of the existing dc->thumb checks to be eliminated.Does this really need to be addressed on this series?
No. It is quite a tangle and it'll take some time to rectify.
I suppose you can leave the two hooks separate for now. It doesn't hurt, and it's kind of a reminder of things that need cleaning up.Well, I've sent a (too rushed) v12 that features the merge. Since I'll have to send a v13, I can split them again if you want.
Don't go to any extra trouble if no one else has any strong feelings.
I can restore the NULL approach or add a default empty hook implementation (translator_ignored_op?) if there's a strong feeling to change it.
Ok, we can work that out. r~
[Prev in Thread] | Current Thread | [Next in Thread] |