[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4] target-arm: Break the TB after ISB to execut
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v4] target-arm: Break the TB after ISB to execute self-modified code correctly |
Date: |
Sun, 4 Oct 2015 20:20:05 +0100 |
On 2 October 2015 at 13:38, Sergey Sorokin <address@hidden> wrote:
> If any store instruction writes the code inside the same TB
> after this store insn, the execution of the TB must be stopped
> to execute new code correctly.
> As described in ARMv8 manual D3.4.6 a self-modified code need to do
> IC invalidation to be valid, and ISB after it. So it's enough to end the TB
> after ISB instruction on the code translation.
> Also this TB break is necessary to take any pending interrupts immediately
> according to ARMv8 ARM D1.14.4.
>
> Signed-off-by: Sergey Sorokin <address@hidden>
> ---
> Changes since previous version:
> * ARMv6 ISB was also fixed.
> * Second reason for TB breaking was mentioned in comments
> and the commit message.
> * A compilation error was fixed.
>
> target-arm/helper.c | 6 +++++-
> target-arm/translate-a64.c | 8 +++++++-
> target-arm/translate.c | 17 +++++++++++++++--
> 3 files changed, 27 insertions(+), 4 deletions(-)
Applied to target-arm.next, thanks.
-- PMM