Revision 60a902f1 target-i386/machine.c

b/target-i386/machine.c
26 26
void cpu_save(QEMUFile *f, void *opaque)
27 27
{
28 28
    CPUState *env = opaque;
29
    uint16_t fpregs_format;
30 29
    int i, bit;
31 30

  
32 31
    cpu_synchronize_state(env);
......
49 48
    qemu_put_be16s(f, &env->fptag_vmstate);
50 49

  
51 50
#ifdef USE_X86LDOUBLE
52
    fpregs_format = 0;
51
    env->fpregs_format_vmstate = 0;
53 52
#else
54
    fpregs_format = 1;
53
    env->fpregs_format_vmstate = 1;
55 54
#endif
56
    qemu_put_be16s(f, &fpregs_format);
55
    qemu_put_be16s(f, &env->fpregs_format_vmstate);
57 56

  
58 57
    for(i = 0; i < 8; i++) {
59 58
#ifdef USE_X86LDOUBLE
......
196 195
{
197 196
    CPUState *env = opaque;
198 197
    int i, guess_mmx;
199
    uint16_t fpregs_format;
200 198

  
201 199
    cpu_synchronize_state(env);
202 200
    if (version_id < 3 || version_id > CPU_SAVE_VERSION)
......
210 208
    qemu_get_be16s(f, &env->fpuc);
211 209
    qemu_get_be16s(f, &env->fpus_vmstate);
212 210
    qemu_get_be16s(f, &env->fptag_vmstate);
213
    qemu_get_be16s(f, &fpregs_format);
211
    qemu_get_be16s(f, &env->fpregs_format_vmstate);
214 212

  
215 213
    /* NOTE: we cannot always restore the FPU state if the image come
216 214
       from a host with a different 'USE_X86LDOUBLE' define. We guess
......
220 218
        uint64_t mant;
221 219
        uint16_t exp;
222 220

  
223
        switch(fpregs_format) {
221
        switch(env->fpregs_format_vmstate) {
224 222
        case 0:
225 223
            mant = qemu_get_be64(f);
226 224
            exp = qemu_get_be16(f);

Also available in: Unified diff