mirror of https://github.com/xemu-project/xemu.git
mtfsf: fix FPSCR_VX and FPSCR_FEX computation
The patch below fixes the computation of FPSCR_VX and FPSCR_FEX when using the mtfsf instruction. As stated in the PowerPC manual the mtfsf instruction can't alter those bit, and thus it should always be computed. Acked by Jocelyn Mayer. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4034 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
0badc1ee0e
commit
5567025f53
|
@ -888,12 +888,16 @@ void do_store_fpscr (uint32_t mask)
|
|||
/* Update VX and FEX */
|
||||
if (fpscr_ix != 0)
|
||||
env->fpscr |= 1 << FPSCR_VX;
|
||||
else
|
||||
env->fpscr &= ~(1 << FPSCR_VX);
|
||||
if ((fpscr_ex & fpscr_eex) != 0) {
|
||||
env->fpscr |= 1 << FPSCR_FEX;
|
||||
env->exception_index = POWERPC_EXCP_PROGRAM;
|
||||
/* XXX: we should compute it properly */
|
||||
env->error_code = POWERPC_EXCP_FP;
|
||||
}
|
||||
else
|
||||
env->fpscr &= ~(1 << FPSCR_FEX);
|
||||
fpscr_set_rounding_mode();
|
||||
}
|
||||
#undef WORD0
|
||||
|
|
Loading…
Reference in New Issue