target-mips: keep softfloat exception set to 0 between instructions
Instead of clearing the softfloat exception flags before each floatingpoint instruction, reset them to 0 in update_fcr31() when an exceptionis detected.
Reviewed-by: Richard Henderson <rth@twiddle.net>...
target-mips: fix FPU exceptions
For each FPU instruction that can trigger an FPU exception, to callcall update_fcr31() after.
Remove the manual NaN assignment in case of float to float operation, assoftfloat is already taking care of that. However for float to int...
target-mips: cleanup float to int conversion helpers
Instead of accessing the flags from the floating point controlregister after updating it, read the softfloat flags.
This is just code cleanup and should not change the behaviour.
target-mips: use softfloat constants when possible
softfloat already has a few constants defined, use them instead ofredefining them in target-mips.
Rename FLOAT_SNAN32 and FLOAT_SNAN64 to FP_TO_INT32_OVERFLOW andFP_TO_INT64_OVERFLOW as even if they have the same value, they are...
target-mips: restore CPU state after an FPU exception
Rework raise_exception() functions so that they can be called fromother helpers, passing the return address as an argument.
Use do_raise_exception() function in update_fcr31() to correctly restore...
tcg: don't remove op if output needs to be synced to memory
Commit 9c43b68de628a1e2cba556adfb71c17028eb802e do not correctly checkfor dead outputs when they need to be synced to memory in case ofhalf-dead operations.
Fix that by applying the same pattern than for the default case....
target-mips: correctly restore btarget upon exception
When the CPU state is restored through retranslation after an exception,btarget should also be restored.
Reviewed-by: Richard Henderson <rth@twiddle.net>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-mips: do not save CPU state when using retranslation
When the CPU state after a possible retranslation is going to be handledthrough code retranslation, we don't need to save the CPU state before.
softfloat: implement fused multiply-add NaN propagation for MIPS
Add a pickNaNMulAdd function for MIPS, implementing NaN propagationrules for MIPS fused multiply-add instructions.
Cc: Peter Maydell <peter.maydell@linaro.org>Reviewed-by: Richard Henderson <rth@twiddle.net>...
target-mips: use the softfloat floatXX_muladd functions
Use the new softfloat floatXX_muladd() functions to implement the madd,msub, nmadd and nmsub instructions. At the same time replace the name ofthe helpers by the name of the instruction, as the only reason for the...
View all revisions | View revisions
Also available in: Atom