]> Git Repo - qemu.git/commit
target/arm: Don't use cpsr_write/cpsr_read to transfer M profile XPSR
authorPeter Maydell <[email protected]>
Mon, 4 Sep 2017 14:21:52 +0000 (15:21 +0100)
committerPeter Maydell <[email protected]>
Mon, 4 Sep 2017 14:21:52 +0000 (15:21 +0100)
commiteeade0017698ada9d3049ec9021d094d96304f58
tree16caded3a549e962340be8a6496b5350f7ec925e
parente6ae5981ea4b0f6feb223009a5108582e7644f8f
target/arm: Don't use cpsr_write/cpsr_read to transfer M profile XPSR

For M profile the XPSR is a similar but not identical format to the
A profile CPSR/SPSR. (For instance the Thumb bit is in a different
place.) For guest accesses we make the M profile code go through
xpsr_read() and xpsr_write() which handle the different layout.
However for migration we use cpsr_read() and cpsr_write() to
marshal state into and out of the migration data stream. This
is pretty confusing and works more by luck than anything else.
Make M profile migration use xpsr_read() and xpsr_write() instead.

The most complicated part of this is handling the possibility
that the migration source is an older QEMU which hands us a
CPSR format value; helpfully we can always tell the two apart.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 1501692241[email protected]
target/arm/machine.c
This page took 0.034807 seconds and 4 git commands to generate.