~vcs-imports/qemu/git

« back to all changes in this revision

Viewing changes to target-cris/machine.c

  • Committer: ths
  • Date: 2007-10-08 12:45:38 UTC
  • Revision ID: git-v1:450d4ff553af32fc9d83fef20d7106b0151526b8
CRIS disassembler, originally from binutils, by Edgar E. Iglesias.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3356 c046a42c-6fe2-441c-8c8c-71466251a162

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
}