]> git.ipfire.org Git - thirdparty/valgrind.git/commit
The Power ISA 2.07 document includes a correction to the description for the
authorCarl Love <cel@us.ibm.com>
Thu, 12 Sep 2013 17:38:13 +0000 (17:38 +0000)
committerCarl Love <cel@us.ibm.com>
Thu, 12 Sep 2013 17:38:13 +0000 (17:38 +0000)
commit6f2f615e048c34b91baf28ba1adc7b1b7157bb9b
tree3e26a4f927c236ddfe9444c82628de71015dbfb3
parentb8a6f9deb93d70914874e08e5d12697c19a4e7e3
The Power ISA 2.07 document includes a correction to the description for the
behavior of the xscvspdp instruction, indicating that if the source argument
is a SNaN, it is first changed to a QNaN before being converted from
single-precision to double-precision. This updated information about the
xscvspdp instruction exposed a bug in the VEX implementation for that
instruction and also a bug in the testing for all instructions having
special behavior for single-precision SNaN arguments.

The VEX code fix for this issue is r2760.

This patch fixes the test cases for the ISA 2.07.

Testing bug: In several ppc[64] test cases, an array of special
double-precision floating point values is set up, and then all elements of
that array are copied via assignment to a single-precision array ('float'
type). Assignment from a double to a float works fine for all cases, except for
SNaN values. In the case of a SNaN, the source is changed to a QNaN and then
converted to single-precision. So the end result was that our array of floats
did not have an actual SNaN value, and, therefore, any instructions that had
special behavior for a single-precision SNaN input argument was never being
properly tested. This patch makes some functional changes in the following
testcases:

  none/tests/ppc[32|64]/test_isa_2_06_part2.c
  none/tests/ppc[32|64]/test_isa_2_06_part3.c
  none/tests/ppc[32|64]/test_isa_2_07_part2.c

These changes impacted the associated *.stdout.exp files, so the patch also
updates those files. Additionally, there were several errors in testcase
source comments that misidentified QNaN and SNaN bit patterns which this patch
corrects.

See bugzilla 324816.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13544
none/tests/ppc32/test_isa_2_06_part1.c
none/tests/ppc32/test_isa_2_06_part2.c
none/tests/ppc32/test_isa_2_06_part2.stdout.exp
none/tests/ppc32/test_isa_2_06_part3.c
none/tests/ppc32/test_isa_2_06_part3.stdout.exp
none/tests/ppc32/test_isa_2_07_part2.stdout.exp
none/tests/ppc64/test_isa_2_06_part2.stdout.exp
none/tests/ppc64/test_isa_2_06_part3.stdout.exp
none/tests/ppc64/test_isa_2_07_part1.c
none/tests/ppc64/test_isa_2_07_part2.c
none/tests/ppc64/test_isa_2_07_part2.stdout.exp