qemu-arm
[Top][All Lists]
Advanced

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

Re: [Qemu-arm] [PATCH v8 23/25] target-arm: introduce ARM_CP_EXIT_PC


From: Alex Bennée
Subject: Re: [Qemu-arm] [PATCH v8 23/25] target-arm: introduce ARM_CP_EXIT_PC
Date: Thu, 02 Feb 2017 13:25:32 +0000
User-agent: mu4e 0.9.19; emacs 25.1.91.6

Peter Maydell <address@hidden> writes:

> On 2 February 2017 at 12:17, Alex Bennée <address@hidden> wrote:
>> Peter Maydell <address@hidden> writes:
>>> Your longjump is effectively skipping the normal "end of the TB" code,
>>> which is what usually does the set_condexec for you. At the end of a
>>> TB the expectation is that everything's been sync'd back to the CPU
>>> state structure.
>>
>> Hmm so as long as the tlb flush helpers don't set ARM_CP_SUPPRESS_TB_END
>> things should just work normally?
>
> If they're register writes, yes -- we end the TB on writes but not
> on reads (on the assumption that only writes might modify state that
> requires a TB end). If the TLB instructions are reads then we can
> add a "force TB end" flag.
>
>> Is shouldn't matter if the TB with the
>> flush is chained to a new TB as the exit_request test should fire before
>> any more state changing operations happen?
>
> I think so, but again if you know that you're always going to exit
> the TB then there's no point setting it up so it might chain.

So setting s->is_jmp = DISAS_JUMP ensures that?

--
Alex Bennée



reply via email to

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