Revision fc3b0aa2
b/target-i386/machine.c | ||
---|---|---|
31 | 31 |
vmstate_load_state(f, &vmstate_segment, dt, vmstate_segment.version_id); |
32 | 32 |
} |
33 | 33 |
|
34 |
static const VMStateDescription vmstate_xmm_reg = { |
|
35 |
.name = "xmm_reg", |
|
36 |
.version_id = 1, |
|
37 |
.minimum_version_id = 1, |
|
38 |
.minimum_version_id_old = 1, |
|
39 |
.fields = (VMStateField []) { |
|
40 |
VMSTATE_UINT64(XMM_Q(0), XMMReg), |
|
41 |
VMSTATE_UINT64(XMM_Q(1), XMMReg), |
|
42 |
VMSTATE_END_OF_LIST() |
|
43 |
} |
|
44 |
}; |
|
45 |
|
|
46 |
static void cpu_put_xmm_reg(QEMUFile *f, XMMReg *xmm_reg) |
|
47 |
{ |
|
48 |
vmstate_save_state(f, &vmstate_xmm_reg, xmm_reg); |
|
49 |
} |
|
50 |
|
|
51 |
static void cpu_get_xmm_reg(QEMUFile *f, XMMReg *xmm_reg) |
|
52 |
{ |
|
53 |
vmstate_load_state(f, &vmstate_xmm_reg, xmm_reg, vmstate_xmm_reg.version_id); |
|
54 |
} |
|
55 |
|
|
34 | 56 |
static void cpu_pre_save(void *opaque) |
35 | 57 |
{ |
36 | 58 |
CPUState *env = opaque; |
... | ... | |
128 | 150 |
/* XMM */ |
129 | 151 |
qemu_put_be32s(f, &env->mxcsr); |
130 | 152 |
for(i = 0; i < CPU_NB_REGS; i++) { |
131 |
qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(0)); |
|
132 |
qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(1)); |
|
153 |
cpu_put_xmm_reg(f, &env->xmm_regs[i]); |
|
133 | 154 |
} |
134 | 155 |
|
135 | 156 |
#ifdef TARGET_X86_64 |
... | ... | |
335 | 356 |
|
336 | 357 |
qemu_get_be32s(f, &env->mxcsr); |
337 | 358 |
for(i = 0; i < CPU_NB_REGS; i++) { |
338 |
qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(0)); |
|
339 |
qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(1)); |
|
359 |
cpu_get_xmm_reg(f, &env->xmm_regs[i]); |
|
340 | 360 |
} |
341 | 361 |
|
342 | 362 |
#ifdef TARGET_X86_64 |
Also available in: Unified diff