Revision 877d8ad7

b/hw/etraxfs.c
67 67
        cpu_model = "crisv32";
68 68
    }
69 69
    env = cpu_init(cpu_model);
70
/*    register_savevm("cpu", 0, 3, cpu_save, cpu_load, env); */
70
    register_savevm("cpu", 0, 1, cpu_save, cpu_load, env);
71 71
    qemu_register_reset(main_cpu_reset, env);
72 72

  
73 73
    /* allocate RAM */
b/target-cris/machine.c
5 5
{
6 6
    qemu_register_machine(&bareetraxfs_machine);
7 7
}
8

  
9
void cpu_save(QEMUFile *f, void *opaque)
10
{
11
    CPUCRISState *env = opaque;
12
    int i;
13
    int s;
14
    int mmu;
15

  
16
    for (i = 0; i < 16; i++)
17
        qemu_put_be32(f, env->regs[i]);
18
    for (i = 0; i < 16; i++)
19
        qemu_put_be32(f, env->pregs[i]);
20

  
21
    qemu_put_be32(f, env->pc);
22
    qemu_put_be32(f, env->ksp);
23

  
24
    qemu_put_be32(f, env->dslot);
25
    qemu_put_be32(f, env->btaken);
26
    qemu_put_be32(f, env->btarget);
27

  
28
    qemu_put_be32(f, env->cc_op);
29
    qemu_put_be32(f, env->cc_mask);
30
    qemu_put_be32(f, env->cc_dest);
31
    qemu_put_be32(f, env->cc_src);
32
    qemu_put_be32(f, env->cc_result);
33
    qemu_put_be32(f, env->cc_size);
34
    qemu_put_be32(f, env->cc_x);
35

  
36
    for (s = 0; s < 4; i++) {
37
        for (i = 0; i < 16; i++)
38
            qemu_put_be32(f, env->sregs[s][i]);
39
    }
40

  
41
    qemu_put_be32(f, env->mmu_rand_lfsr);
42
    for (mmu = 0; mmu < 2; mmu++) {
43
        for (s = 0; s < 4; i++) {
44
            for (i = 0; i < 16; i++) {
45
                qemu_put_be32(f, env->tlbsets[mmu][s][i].lo);
46
                qemu_put_be32(f, env->tlbsets[mmu][s][i].hi);
47
            }
48
        }
49
    }
50
}
51

  
52
int cpu_load(QEMUFile *f, void *opaque, int version_id)
53
{
54
	CPUCRISState *env = opaque;
55
    int i;
56
    int s;
57
    int mmu;
58

  
59
    for (i = 0; i < 16; i++)
60
        env->regs[i] = qemu_get_be32(f);
61
    for (i = 0; i < 16; i++)
62
        env->pregs[i] = qemu_get_be32(f);
63

  
64
    env->pc = qemu_get_be32(f);
65
    env->ksp = qemu_get_be32(f);
66

  
67
    env->dslot = qemu_get_be32(f);
68
    env->btaken = qemu_get_be32(f);
69
    env->btarget = qemu_get_be32(f);
70

  
71
    env->cc_op = qemu_get_be32(f);
72
    env->cc_mask = qemu_get_be32(f);
73
    env->cc_dest = qemu_get_be32(f);
74
    env->cc_src = qemu_get_be32(f);
75
    env->cc_result = qemu_get_be32(f);
76
    env->cc_size = qemu_get_be32(f);
77
    env->cc_x = qemu_get_be32(f);
78

  
79
    for (s = 0; s < 4; i++) {
80
        for (i = 0; i < 16; i++)
81
            env->sregs[s][i] = qemu_get_be32(f);
82
    }
83

  
84
    env->mmu_rand_lfsr = qemu_get_be32(f);
85
    for (mmu = 0; mmu < 2; mmu++) {
86
        for (s = 0; s < 4; i++) {
87
            for (i = 0; i < 16; i++) {
88
                env->tlbsets[mmu][s][i].lo = qemu_get_be32(f);
89
                env->tlbsets[mmu][s][i].hi = qemu_get_be32(f);
90
            }
91
        }
92
    }
93

  
94
    return 0;
95
}

Also available in: Unified diff