target-ppc: fix sNaN propagation
commit96912e39709e8455c013931513eebe8e6356eab4
authorAurelien Jarno <aurelien@aurel32.net>
Mon, 17 Jan 2011 18:29:33 +0000 (17 19:29 +0100)
committerAurelien Jarno <aurelien@aurel32.net>
Thu, 20 Jan 2011 14:11:07 +0000 (20 15:11 +0100)
tree9147970e19a023167d3bc899e7ceaed371b301f5
parentb2bf03a90ca3024213e354d3e0a6bc0cc8fc31e8
target-ppc: fix sNaN propagation

The current FPU code returns 0.0 if one of the operand is a
signaling NaN and the VXSNAN exception is disabled.

fload_invalid_op_excp() doesn't return a qNaN in case of a VXSNAN
exception as the operand should be propagated instead of a new
qNaN to be generated. Fix that by calling fload_invalid_op_excp()
only for the exception generation (if enabled), and use the softfloat
code to correctly compute the result.

Reviewed-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-ppc/op_helper.c