• R
    target-arm: Share all common TCG temporaries · 052677b2
    Richard Henderson 提交于
    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.
    
    Cc: qemu-stable@nongnu.org
    Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
    Signed-off-by: NRichard Henderson <rth@twiddle.net>
    Message-id: 1441909103-24666-2-git-send-email-rth@twiddle.net
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    (cherry picked from commit 78bcaa3e)
    Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
    052677b2
translate-a64.c 342.3 KB