• P
    target-arm: Raw CPSR writes should skip checks and bank switching · f8c88bbc
    Peter Maydell 提交于
    Raw CPSR writes should skip the architectural checks for whether
    we're allowed to set the A or F bits and should also not do
    the switching of register banks if the mode changes. Handle
    this inside cpsr_write(), which allows us to drop the "manually
    set the mode bits to avoid the bank switch" code from all the
    callsites which are using CPSRWriteRaw.
    
    This fixes a bug in 32-bit KVM handling where we had forgotten
    the "manually set the mode bits" part and could thus potentially
    trash the register state if the mode from the last exit to userspace
    differed from the mode on this exit.
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: NSergey Fedorov <serge.fdrv@gmail.com>
    Message-id: 1455556977-3644-4-git-send-email-peter.maydell@linaro.org
    f8c88bbc
machine.c 9.8 KB