Revision 97428a4d target-mips/op.c

b/target-mips/op.c
2126 2126
void op_rdhwr_cpunum(void)
2127 2127
{
2128 2128
    if (!(env->hflags & MIPS_HFLAG_UM) ||
2129
	(env->CP0_HWREna & (1 << 0)) ||
2129
        (env->CP0_HWREna & (1 << 0)) ||
2130 2130
        (env->CP0_Status & (1 << CP0St_CU0)))
2131 2131
        T0 = env->CP0_EBase & 0x3ff;
2132 2132
    else
......
2137 2137
void op_rdhwr_synci_step(void)
2138 2138
{
2139 2139
    if (!(env->hflags & MIPS_HFLAG_UM) ||
2140
	(env->CP0_HWREna & (1 << 1)) ||
2140
        (env->CP0_HWREna & (1 << 1)) ||
2141 2141
        (env->CP0_Status & (1 << CP0St_CU0)))
2142 2142
        T0 = env->SYNCI_Step;
2143 2143
    else
......
2148 2148
void op_rdhwr_cc(void)
2149 2149
{
2150 2150
    if (!(env->hflags & MIPS_HFLAG_UM) ||
2151
	(env->CP0_HWREna & (1 << 2)) ||
2151
        (env->CP0_HWREna & (1 << 2)) ||
2152 2152
        (env->CP0_Status & (1 << CP0St_CU0)))
2153 2153
        T0 = env->CP0_Count;
2154 2154
    else
......
2159 2159
void op_rdhwr_ccres(void)
2160 2160
{
2161 2161
    if (!(env->hflags & MIPS_HFLAG_UM) ||
2162
	(env->CP0_HWREna & (1 << 3)) ||
2162
        (env->CP0_HWREna & (1 << 3)) ||
2163 2163
        (env->CP0_Status & (1 << CP0St_CU0)))
2164 2164
        T0 = env->CCRes;
2165 2165
    else
......
2167 2167
    RETURN();
2168 2168
}
2169 2169

  
2170
void op_rdhwr_unimpl30(void)
2171
{
2172
    if (!(env->hflags & MIPS_HFLAG_UM) ||
2173
	(env->CP0_HWREna & (1 << 30)) ||
2174
        (env->CP0_Status & (1 << CP0St_CU0)))
2175
        T0 = 0;
2176
    else
2177
        CALL_FROM_TB1(do_raise_exception, EXCP_RI);
2178
    RETURN();
2179
}
2180

  
2181
void op_rdhwr_unimpl31(void)
2182
{
2183
    if (!(env->hflags & MIPS_HFLAG_UM) ||
2184
	(env->CP0_HWREna & (1 << 31)) ||
2185
        (env->CP0_Status & (1 << CP0St_CU0)))
2186
        T0 = 0;
2187
    else
2188
        CALL_FROM_TB1(do_raise_exception, EXCP_RI);
2189
    RETURN();
2190
}
2191

  
2192 2170
void op_save_state (void)
2193 2171
{
2194 2172
    env->hflags = PARAM1;

Also available in: Unified diff