Statistics
| Branch: | Revision:

root / target-cris / machine.c @ ed23fbd9

History | View | Annotate | Download (2.3 kB)

1
#include "hw/hw.h"
2
#include "hw/boards.h"
3

    
4
void register_machines(void)
5
{
6
    qemu_register_machine(&bareetraxfs_machine);
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
}