global s/loglevel & X/qemu_loglevel_mask(X)/ (Eduardo Habkost)
[qemu] / target-cris / machine.c
1 #include "hw/hw.h"
2 #include "hw/boards.h"
3
4 void register_machines(void)
5 {
6     qemu_register_machine(&bareetraxfs_machine);
7     qemu_register_machine(&axisdev88_machine);
8 }
9
10 void cpu_save(QEMUFile *f, void *opaque)
11 {
12     CPUCRISState *env = opaque;
13     int i;
14     int s;
15     int mmu;
16
17     for (i = 0; i < 16; i++)
18         qemu_put_be32(f, env->regs[i]);
19     for (i = 0; i < 16; i++)
20         qemu_put_be32(f, env->pregs[i]);
21
22     qemu_put_be32(f, env->pc);
23     qemu_put_be32(f, env->ksp);
24
25     qemu_put_be32(f, env->dslot);
26     qemu_put_be32(f, env->btaken);
27     qemu_put_be32(f, env->btarget);
28
29     qemu_put_be32(f, env->cc_op);
30     qemu_put_be32(f, env->cc_mask);
31     qemu_put_be32(f, env->cc_dest);
32     qemu_put_be32(f, env->cc_src);
33     qemu_put_be32(f, env->cc_result);
34     qemu_put_be32(f, env->cc_size);
35     qemu_put_be32(f, env->cc_x);
36
37     for (s = 0; s < 4; i++) {
38         for (i = 0; i < 16; i++)
39             qemu_put_be32(f, env->sregs[s][i]);
40     }
41
42     qemu_put_be32(f, env->mmu_rand_lfsr);
43     for (mmu = 0; mmu < 2; mmu++) {
44         for (s = 0; s < 4; i++) {
45             for (i = 0; i < 16; i++) {
46                 qemu_put_be32(f, env->tlbsets[mmu][s][i].lo);
47                 qemu_put_be32(f, env->tlbsets[mmu][s][i].hi);
48             }
49         }
50     }
51 }
52
53 int cpu_load(QEMUFile *f, void *opaque, int version_id)
54 {
55         CPUCRISState *env = opaque;
56     int i;
57     int s;
58     int mmu;
59
60     for (i = 0; i < 16; i++)
61         env->regs[i] = qemu_get_be32(f);
62     for (i = 0; i < 16; i++)
63         env->pregs[i] = qemu_get_be32(f);
64
65     env->pc = qemu_get_be32(f);
66     env->ksp = qemu_get_be32(f);
67
68     env->dslot = qemu_get_be32(f);
69     env->btaken = qemu_get_be32(f);
70     env->btarget = qemu_get_be32(f);
71
72     env->cc_op = qemu_get_be32(f);
73     env->cc_mask = qemu_get_be32(f);
74     env->cc_dest = qemu_get_be32(f);
75     env->cc_src = qemu_get_be32(f);
76     env->cc_result = qemu_get_be32(f);
77     env->cc_size = qemu_get_be32(f);
78     env->cc_x = qemu_get_be32(f);
79
80     for (s = 0; s < 4; i++) {
81         for (i = 0; i < 16; i++)
82             env->sregs[s][i] = qemu_get_be32(f);
83     }
84
85     env->mmu_rand_lfsr = qemu_get_be32(f);
86     for (mmu = 0; mmu < 2; mmu++) {
87         for (s = 0; s < 4; i++) {
88             for (i = 0; i < 16; i++) {
89                 env->tlbsets[mmu][s][i].lo = qemu_get_be32(f);
90                 env->tlbsets[mmu][s][i].hi = qemu_get_be32(f);
91             }
92         }
93     }
94
95     return 0;
96 }