From 89de52ee03f68cef1f3343d3275162427ec22ded Mon Sep 17 00:00:00 2001 From: Tom Musta <tommu...@gmail.com> Date: Tue, 29 Oct 2013 07:52:19 -0500 Subject: To: qemu-...@nongnu.org
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 Tom Musta (19): Fix float64_to_uint64 Add float32_to_uint64() Add set_fprf Argument to fload_invalid_op_excp() General Support for VSX Helpers Add VSX ISA2.06 xadd/xsub Instructions Add VSX ISA2.06 xmul Instructions Add VSX ISA2.06 xdiv Instructions Add VSX ISA2.06 xre Instructions Add VSX ISA2.06 xsqrt Instructions Add VSX ISA2.06 xrsqrte Instructions Add VSX ISA2.06 xtdiv Instructions Add VSX ISA2.06 xtsqrt Instructions Add VSX ISA2.06 Multiply Add Instructions Add VSX xscmp*dp Instructions Add VSX xmax/xmin Instructions Add VSX Vector Compare Instructions Add VSX Floating Point to Floating Point Conversion Instructions Add VSX ISA2.06 Integer Conversion Instructions Add VSX Rounding Instructions fpu/softfloat.c | 140 +++++++- include/fpu/softfloat.h | 1 + target-ppc/fpu_helper.c | 1002 ++++++++++++++++++++++++++++++++++++++++++++--- target-ppc/helper.h | 109 +++++ target-ppc/translate.c | 243 ++++++++++++ 5 files changed, 1439 insertions(+), 56 deletions(-)