qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-arm] [Qemu-devel] [PATCH v11 24/29] target/arm: [tcg, a64] Por


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~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]