Revision 5a5012ec target-mips/translate_init.c

b/target-mips/translate_init.c
55 55

  
56 56
/* Define a implementation number of 1.
57 57
   Define a major version 1, minor version 0. */
58
#define MIPS_FCR0 ((0 << 16) | (1 << 8) | (1 << 4) | 0)
58
#define MIPS_FCR0 ((0 << FCR0_S) | (0x1 << FCR0_PRID) | (0x10 << FCR0_REV))
59 59

  
60 60

  
61 61
struct mips_def_t {
......
69 69
    int32_t CP0_Config7;
70 70
    int32_t SYNCI_Step;
71 71
    int32_t CCRes;
72
    int32_t Status_rw_bitmask;
72 73
    int32_t CP1_fcr0;
73 74
};
74 75

  
......
86 87
        .CP0_Config3 = MIPS_CONFIG3,
87 88
        .SYNCI_Step = 32,
88 89
        .CCRes = 2,
89
        .CP1_fcr0 = MIPS_FCR0,
90
        .Status_rw_bitmask = 0x3278FF17,
90 91
    },
91 92
    {
92 93
        .name = "4KEcR1",
......
97 98
        .CP0_Config3 = MIPS_CONFIG3,
98 99
        .SYNCI_Step = 32,
99 100
        .CCRes = 2,
100
        .CP1_fcr0 = MIPS_FCR0,
101 101
    },
102 102
    {
103 103
        .name = "4KEc",
......
108 108
        .CP0_Config3 = MIPS_CONFIG3,
109 109
        .SYNCI_Step = 32,
110 110
        .CCRes = 2,
111
        .CP1_fcr0 = MIPS_FCR0,
111
        .Status_rw_bitmask = 0x3278FF17,
112 112
    },
113 113
    {
114 114
        .name = "24Kc",
......
119 119
        .CP0_Config3 = MIPS_CONFIG3,
120 120
        .SYNCI_Step = 32,
121 121
        .CCRes = 2,
122
        .CP1_fcr0 = MIPS_FCR0,
122
        .Status_rw_bitmask = 0x3278FF17,
123 123
    },
124 124
    {
125 125
        .name = "24Kf",
......
130 130
        .CP0_Config3 = MIPS_CONFIG3,
131 131
        .SYNCI_Step = 32,
132 132
        .CCRes = 2,
133
        .CP1_fcr0 = MIPS_FCR0,
133
        .Status_rw_bitmask = 0x3678FF17,
134
        .CP1_fcr0 = (1 << FCR0_F64) | (1 << FCR0_L) | (1 << FCR0_W) |
135
                    (1 << FCR0_D) | (1 << FCR0_S) | (0x93 << FCR0_PRID),
134 136
    },
135 137
#else
136 138
    {
......
142 144
        .CP0_Config3 = MIPS_CONFIG3,
143 145
        .SYNCI_Step = 16,
144 146
        .CCRes = 2,
145
        .CP1_fcr0 = MIPS_FCR0,
147
        .Status_rw_bitmask = 0x3678FFFF,
148
        .CP1_fcr0 = (1 << FCR0_F64) | (1 << FCR0_L) | (1 << FCR0_W) |
149
                    (1 << FCR0_D) | (1 << FCR0_S) |
150
                    (0x4 << FCR0_PRID) | (0x0 << FCR0_REV),
146 151
    },
147 152
#endif
148 153
};
......
191 196
    env->CP0_Config7 = def->CP0_Config7;
192 197
    env->SYNCI_Step = def->SYNCI_Step;
193 198
    env->CCRes = def->CCRes;
199
    env->Status_rw_bitmask = def->Status_rw_bitmask;
194 200
    env->fcr0 = def->CP1_fcr0;
195 201
#if defined (MIPS_USES_R4K_TLB)
196 202
    env->nb_tlb = 1 + ((def->CP0_Config1 >> CP0C1_MMU) & 63);

Also available in: Unified diff