Revision 7c58044c target-ppc/helper.c
b/target-ppc/helper.c | ||
---|---|---|
2130 | 2130 |
fprintf(logfile, "Ignore floating point exception\n"); |
2131 | 2131 |
} |
2132 | 2132 |
#endif |
2133 |
env->exception_index = POWERPC_EXCP_NONE; |
|
2134 |
env->error_code = 0; |
|
2133 | 2135 |
return; |
2134 | 2136 |
} |
2135 | 2137 |
new_msr &= ~((target_ulong)1 << MSR_RI); |
... | ... | |
2138 | 2140 |
new_msr |= (target_ulong)1 << MSR_HV; |
2139 | 2141 |
#endif |
2140 | 2142 |
msr |= 0x00100000; |
2141 |
/* Set FX */ |
|
2142 |
env->fpscr[7] |= 0x8; |
|
2143 |
/* Finally, update FEX */ |
|
2144 |
if ((((env->fpscr[7] & 0x3) << 3) | (env->fpscr[6] >> 1)) & |
|
2145 |
((env->fpscr[1] << 1) | (env->fpscr[0] >> 3))) |
|
2146 |
env->fpscr[7] |= 0x4; |
|
2147 | 2143 |
if (msr_fe0 != msr_fe1) { |
2148 | 2144 |
msr |= 0x00010000; |
2149 | 2145 |
goto store_current; |
... | ... | |
2199 | 2195 |
/* XXX: To be removed */ |
2200 | 2196 |
if (env->gpr[3] == 0x113724fa && env->gpr[4] == 0x77810f9b && |
2201 | 2197 |
env->osi_call) { |
2202 |
if (env->osi_call(env) != 0) |
|
2198 |
if (env->osi_call(env) != 0) { |
|
2199 |
env->exception_index = POWERPC_EXCP_NONE; |
|
2200 |
env->error_code = 0; |
|
2203 | 2201 |
return; |
2202 |
} |
|
2204 | 2203 |
} |
2205 | 2204 |
if (loglevel & CPU_LOG_INT) { |
2206 | 2205 |
dump_syscall(env); |
Also available in: Unified diff