~vcs-imports/qemu/git

« back to all changes in this revision

Viewing changes to target-sparc/machine.c

  • Committer: aurel32
  • Date: 2008-05-04 13:11:44 UTC
  • Revision ID: git-v1:8dd3dca351738769f804dcb0feda4b39f3530826
remove target ifdefs from vl.c

(Glauber Costa)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4327 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
#include "exec-all.h"
 
5
 
 
6
void register_machines(void)
 
7
{
 
8
#ifdef TARGET_SPARC64
 
9
    qemu_register_machine(&sun4u_machine);
 
10
#else
 
11
    qemu_register_machine(&ss5_machine);
 
12
    qemu_register_machine(&ss10_machine);
 
13
    qemu_register_machine(&ss600mp_machine);
 
14
    qemu_register_machine(&ss20_machine);
 
15
    qemu_register_machine(&ss2_machine);
 
16
    qemu_register_machine(&voyager_machine);
 
17
    qemu_register_machine(&ss_lx_machine);
 
18
    qemu_register_machine(&ss4_machine);
 
19
    qemu_register_machine(&scls_machine);
 
20
    qemu_register_machine(&sbook_machine);
 
21
    qemu_register_machine(&ss1000_machine);
 
22
    qemu_register_machine(&ss2000_machine);
 
23
#endif
 
24
}
 
25
 
 
26
void cpu_save(QEMUFile *f, void *opaque)
 
27
{
 
28
    CPUState *env = opaque;
 
29
    int i;
 
30
    uint32_t tmp;
 
31
 
 
32
    for(i = 0; i < 8; i++)
 
33
        qemu_put_betls(f, &env->gregs[i]);
 
34
    for(i = 0; i < NWINDOWS * 16; i++)
 
35
        qemu_put_betls(f, &env->regbase[i]);
 
36
 
 
37
    /* FPU */
 
38
    for(i = 0; i < TARGET_FPREGS; i++) {
 
39
        union {
 
40
            float32 f;
 
41
            uint32_t i;
 
42
        } u;
 
43
        u.f = env->fpr[i];
 
44
        qemu_put_be32(f, u.i);
 
45
    }
 
46
 
 
47
    qemu_put_betls(f, &env->pc);
 
48
    qemu_put_betls(f, &env->npc);
 
49
    qemu_put_betls(f, &env->y);
 
50
    tmp = GET_PSR(env);
 
51
    qemu_put_be32(f, tmp);
 
52
    qemu_put_betls(f, &env->fsr);
 
53
    qemu_put_betls(f, &env->tbr);
 
54
#ifndef TARGET_SPARC64
 
55
    qemu_put_be32s(f, &env->wim);
 
56
    /* MMU */
 
57
    for(i = 0; i < 16; i++)
 
58
        qemu_put_be32s(f, &env->mmuregs[i]);
 
59
#endif
 
60
}
 
61
 
 
62
int cpu_load(QEMUFile *f, void *opaque, int version_id)
 
63
{
 
64
    CPUState *env = opaque;
 
65
    int i;
 
66
    uint32_t tmp;
 
67
 
 
68
    for(i = 0; i < 8; i++)
 
69
        qemu_get_betls(f, &env->gregs[i]);
 
70
    for(i = 0; i < NWINDOWS * 16; i++)
 
71
        qemu_get_betls(f, &env->regbase[i]);
 
72
 
 
73
    /* FPU */
 
74
    for(i = 0; i < TARGET_FPREGS; i++) {
 
75
        union {
 
76
            float32 f;
 
77
            uint32_t i;
 
78
        } u;
 
79
        u.i = qemu_get_be32(f);
 
80
        env->fpr[i] = u.f;
 
81
    }
 
82
 
 
83
    qemu_get_betls(f, &env->pc);
 
84
    qemu_get_betls(f, &env->npc);
 
85
    qemu_get_betls(f, &env->y);
 
86
    tmp = qemu_get_be32(f);
 
87
    env->cwp = 0; /* needed to ensure that the wrapping registers are
 
88
                     correctly updated */
 
89
    PUT_PSR(env, tmp);
 
90
    qemu_get_betls(f, &env->fsr);
 
91
    qemu_get_betls(f, &env->tbr);
 
92
#ifndef TARGET_SPARC64
 
93
    qemu_get_be32s(f, &env->wim);
 
94
    /* MMU */
 
95
    for(i = 0; i < 16; i++)
 
96
        qemu_get_be32s(f, &env->mmuregs[i]);
 
97
#endif
 
98
    tlb_flush(env, 1);
 
99
    return 0;
 
100
}
 
101
 
 
102