mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
target/openrisc: Keep SR_F in a separate variable
This avoids having to keep merging and extracting the flag from SR. Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
cf2ae4428f
commit
84775c43f3
9 changed files with 98 additions and 78 deletions
|
@ -24,6 +24,27 @@
|
|||
#include "hw/boards.h"
|
||||
#include "migration/cpu.h"
|
||||
|
||||
static int get_sr(QEMUFile *f, void *opaque, size_t size, VMStateField *field)
|
||||
{
|
||||
CPUOpenRISCState *env = opaque;
|
||||
cpu_set_sr(env, qemu_get_be32(f));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int put_sr(QEMUFile *f, void *opaque, size_t size,
|
||||
VMStateField *field, QJSON *vmdesc)
|
||||
{
|
||||
CPUOpenRISCState *env = opaque;
|
||||
qemu_put_be32(f, cpu_get_sr(env));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const VMStateInfo vmstate_sr = {
|
||||
.name = "sr",
|
||||
.get = get_sr,
|
||||
.put = put_sr,
|
||||
};
|
||||
|
||||
static const VMStateDescription vmstate_env = {
|
||||
.name = "env",
|
||||
.version_id = 2,
|
||||
|
@ -38,7 +59,22 @@ static const VMStateDescription vmstate_env = {
|
|||
VMSTATE_UINTTL(lock_value, CPUOpenRISCState),
|
||||
VMSTATE_UINTTL(epcr, CPUOpenRISCState),
|
||||
VMSTATE_UINTTL(eear, CPUOpenRISCState),
|
||||
VMSTATE_UINT32(sr, CPUOpenRISCState),
|
||||
|
||||
/* Save the architecture value of the SR, not the internally
|
||||
expanded version. Since this architecture value does not
|
||||
exist in memory to be stored, this requires a but of hoop
|
||||
jumping. We want OFFSET=0 so that we effectively pass ENV
|
||||
to the helper functions, and we need to fill in the name by
|
||||
hand since there's no field of that name. */
|
||||
{
|
||||
.name = "sr",
|
||||
.version_id = 0,
|
||||
.size = sizeof(uint32_t),
|
||||
.info = &vmstate_sr,
|
||||
.flags = VMS_SINGLE,
|
||||
.offset = 0
|
||||
},
|
||||
|
||||
VMSTATE_UINT32(vr, CPUOpenRISCState),
|
||||
VMSTATE_UINT32(upr, CPUOpenRISCState),
|
||||
VMSTATE_UINT32(cpucfgr, CPUOpenRISCState),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue