On 09/07/2015 09:57 AM, Peter Maydell wrote:
On 2 September 2015 at 18:57, Richard Henderson <r...@twiddle.net> wrote:
This is a bug fix for aarch64.  At present, we have branches using
the 32-bit (translate.c) versions of cpu_[NZCV]F, but we set the flags
using the 64-bit (translate-a64.c) versions of cpu_[NZCV]F.  From
the view of the TCG code generator, these are unrelated variables.

The bug is hard to see because we currently only read these variables
from branches, and upon reaching a branch TCG will first spill live
variables and then reload the arguments of the branch.  Since the
32-bit versions were never live until reaching the branch, we'd re-read
the data that had just been spilled from the 64-bit versions.

There is currently no such problem with the cpu_exclusive_* variables,
but there's no point in tempting fate.

Signed-off-by: Richard Henderson <r...@twiddle.net>

Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>

Should this be cc:qemu-sta...@nongnu.org ?

Possibly.  It's certainly low risk.


r~


Reply via email to