From: Christophe Lyon <christophe.l...@st.com> These 3 patches fix the ARM Neon vrecpe and vrsqrte instructions by matching the algorithms descibed in the ARM ARM.
With these patches, qemu passes my ARM/Neon tests. Patch #1 modifies softfloat by exporting float32_default_nan and float32_infinity. For consistency, I have also moved all the target-dependent definitions of floatXX_default_nan to softfloat.h (ie the 16, 64, x80 and 128 bits versions in addition to the 32 bits ones). It also adds float32_set_sign() to help return the right special values (-0, -infinity). Patch #2 uses these newly exported values and uses the vrecpe algorithm described in the ARM ARM. Patch #3 uses these newly exported values and uses the vrsqrte algorithm described in the ARM ARM. Christophe Lyon (3): softfloat: export float32_default_nan, and float32_infinity. Add float32_set_sign(). target-arm: fix support for vrecpe. target-arm: fix support for vrsqrte. fpu/softfloat-specialize.h | 68 --------------- fpu/softfloat.h | 75 ++++++++++++++++ target-arm/helper.c | 206 +++++++++++++++++++++++++++++++++++++++----- 3 files changed, 259 insertions(+), 90 deletions(-) -- 1.7.2.3