This patch series corrects a number of errors in the decoding and implementation of various forms of the ARM VCVT instruction. The resulting qemu has been tested by execution of 100,000 random variants of these instruction patterns with register values cross-checked against the results given by Cortex-A8 hardware.
Thanks to Johan Bengtsson for posting the initial VCVT related patch which prompted me to do some more testing in this area. Peter Maydell (8): ARM: Fix decoding of VFP forms of VCVT between float and int/fixed ARM: Fix decoding of Neon forms of VCVT between float and fixed point ARM: Fix sense of to_integer bit in Neon VCVT float/int conversion ARM: Return correct result for float-to-integer conversion of NaN ARM: Return correct result for single<->double conversion of NaN ARM: Ignore top 16 bits when doing VCVT from 16 bit fixed point softfloat: Add float/double to 16 bit integer conversion functions ARM: Implement VCVT to 16 bit integer using new softfloat routines fpu/softfloat.c | 136 ++++++++++++++++++++++++++++++++++++++++++++++++ fpu/softfloat.h | 4 ++ target-arm/helper.c | 68 ++++++++++++++++++++++-- target-arm/translate.c | 35 ++++++++----- 4 files changed, 226 insertions(+), 17 deletions(-)