]> git.proxmox.com Git - mirror_qemu.git/commit
target-arm: Fix handling of STM (user) with r15 in register list
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 16 Mar 2015 12:30:47 +0000 (12:30 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 16 Mar 2015 12:30:47 +0000 (12:30 +0000)
commitda3e53ddcb0ca924da97ca5a35605fc554aa3e05
treec04cccb337bcee257c25d64c98ac15a8b8827321
parentf0bb55890a173cb1e9e87d608647cac70f8f9dd4
target-arm: Fix handling of STM (user) with r15 in register list

The A32 encoding of LDM distinguishes LDM (user) from LDM (exception
return) based on whether r15 is in the register list. However for
STM (user) there is no equivalent distinction. We were incorrectly
treating "r15 in list" as indicating exception return for both LDM
and STM, with the result that an STM (user) involving r15 went into
an infinite loop. Fix this; note that the value stored for r15
in this case is the current PC regardless of our current mode.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1426015125-5521-1-git-send-email-peter.maydell@linaro.org
target-arm/translate.c