This is the third series of patches to add PowerPC VSX emulation support to QEMU.
This series adds the floating point arithmetic, compare, conversion and rounding instructions. Instructions are implemented using helpers and wherever practical, existing floating point code such as the softfloat library and the existing PowerPC floating point helper code. As with the previous series, the Power ISA V2.06 instructions are added but the V2.07 instructions are not. The latter will be implemented in a future patch series. V2: Implemented changes based on feedback from Richard Henderson and Peter Maydell: - Included float64_to_uint64() patch in this series rather than just cite it as a pre-requesite. - Isolated float32_to_uint64() in its own patch. - Re-implemented helpers and eliminated the need for some of the proposed softfloat routines (float*_is_denormal, float*_get_unbiased_exp). - Re-implemented severy helpers so that corner cases (e.g. invalid operations) are detected by softfloat. - Re-implemented fused multiply-add to use the softfloat muladd routines. - Re-implemented the min/max instructions to used the softfloat min/max functions. - assorted style fixes V3: re-submitting due to patch corruption. V4: Folded in softfloat bug fixes per Peter Maydell's request. Tom Musta (22): softfloat: Fix float64_to_uint64 softfloat: Add float32_to_uint64() softfloat: Fix float64_to_uint64_round_to_zero softfloat: Fix float64_to_uint32 softfloat: Fix float64_to_uint32_round_to_zero target-ppc: Add set_fprf Argument to fload_invalid_op_excp() target-ppc: General Support for VSX Helpers target-ppc: Add VSX ISA2.06 xadd/xsub Instructions target-ppc: Add VSX ISA2.06 xmul Instructions target-ppc: Add VSX ISA2.06 xdiv Instructions target-ppc: Add VSX ISA2.06 xre Instructions target-ppc: Add VSX ISA2.06 xsqrt Instructions target-ppc: Add VSX ISA2.06 xrsqrte Instructions target-ppc: Add VSX ISA2.06 xtdiv Instructions target-ppc: Add VSX ISA2.06 xtsqrt Instructions target-ppc: Add VSX ISA2.06 Multiply Add Instructions target-ppc: Add VSX xscmp*dp Instructions target-ppc: Add VSX xmax/xmin Instructions target-ppc: Add VSX Vector Compare Instructions target-ppc: Add VSX Floating Point to Floating Point Conversion Instructions target-ppc: Add VSX ISA2.06 Integer Conversion Instructions target-ppc: Add VSX Rounding Instructions fpu/softfloat.c | 185 +++++++-- include/fpu/softfloat.h | 1 + target-ppc/fpu_helper.c | 1002 ++++++++++++++++++++++++++++++++++++++++++++--- target-ppc/helper.h | 109 +++++ target-ppc/translate.c | 243 ++++++++++++ 5 files changed, 1460 insertions(+), 80 deletions(-)