You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
(1) |
2
(10) |
3
(10) |
4
(14) |
5
(10) |
|
6
|
7
(1) |
8
(14) |
9
(10) |
10
(4) |
11
(2) |
12
(4) |
|
13
|
14
(2) |
15
(11) |
16
(10) |
17
|
18
|
19
(18) |
|
20
(14) |
21
(10) |
22
(1) |
23
(11) |
24
(14) |
25
(10) |
26
(6) |
|
27
(13) |
28
(13) |
29
(12) |
30
(13) |
|
|
|
|
From: <sv...@va...> - 2014-04-30 22:51:57
|
Author: sewardj
Date: Wed Apr 30 22:51:47 2014
New Revision: 13921
Log:
Add test cases for out-of-range argument handling for x87 instructions
FSIN, FCOS, FSINCOS and FPTAN. Mozilla bug 995564.
Added:
trunk/none/tests/amd64/x87trigOOR.c (with props)
trunk/none/tests/amd64/x87trigOOR.stderr.exp
trunk/none/tests/amd64/x87trigOOR.stdout.exp
trunk/none/tests/amd64/x87trigOOR.vgtest
trunk/none/tests/x86/x87trigOOR.c
trunk/none/tests/x86/x87trigOOR.stderr.exp
trunk/none/tests/x86/x87trigOOR.stdout.exp
trunk/none/tests/x86/x87trigOOR.vgtest
Modified:
trunk/none/tests/amd64/Makefile.am
trunk/none/tests/x86/Makefile.am
Modified: trunk/none/tests/amd64/Makefile.am
==============================================================================
--- trunk/none/tests/amd64/Makefile.am (original)
+++ trunk/none/tests/amd64/Makefile.am Wed Apr 30 22:51:47 2014
@@ -80,6 +80,7 @@
slahf-amd64.stderr.exp slahf-amd64.stdout.exp \
slahf-amd64.vgtest \
tm1.vgtest tm1.stderr.exp tm1.stdout.exp \
+ x87trigOOR.vgtest x87trigOOR.stderr.exp x87trigOOR.stdout.exp \
xacq_xrel.stderr.exp xacq_xrel.stdout.exp xacq_xrel.vgtest \
xadd.stderr.exp xadd.stdout.exp xadd.vgtest
@@ -96,6 +97,7 @@
smc1 \
sbbmisc \
nibz_bennee_mmap \
+ x87trigOOR \
xadd
if BUILD_ADDR32_TESTS
check_PROGRAMS += asorep
Added: trunk/none/tests/amd64/x87trigOOR.c
==============================================================================
--- trunk/none/tests/amd64/x87trigOOR.c (added)
+++ trunk/none/tests/amd64/x87trigOOR.c Wed Apr 30 22:51:47 2014
@@ -0,0 +1 @@
+link ../x86/x87trigOOR.c
\ No newline at end of file
Added: trunk/none/tests/amd64/x87trigOOR.stderr.exp
==============================================================================
--- trunk/none/tests/amd64/x87trigOOR.stderr.exp (added)
+++ trunk/none/tests/amd64/x87trigOOR.stderr.exp Wed Apr 30 22:51:47 2014
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/amd64/x87trigOOR.stdout.exp
==============================================================================
--- trunk/none/tests/amd64/x87trigOOR.stdout.exp (added)
+++ trunk/none/tests/amd64/x87trigOOR.stdout.exp Wed Apr 30 22:51:47 2014
@@ -0,0 +1,72 @@
+fsin 0.000000e+00 --> 0.000000e+00 3.141593e+00 0000
+fsin 1.230000e-01 --> 1.226901e-01 3.141593e+00 0000
+fsin -4.560000e-01 --> -4.403604e-01 3.141593e+00 0000
+fsin 3.700000e+01 --> -6.435381e-01 3.141593e+00 0000
+fsin -5.300000e+01 --> -3.959252e-01 3.141593e+00 0000
+
+fsin 8.301035e+18 --> -1.249775e-01 3.141593e+00 0000
+fsin 9.223363e+18 --> 2.344065e-01 3.141593e+00 0000
+fsin 9.223372e+18 --> 9.223372e+18 3.141593e+00 0400
+fsin 9.223381e+18 --> 9.223381e+18 3.141593e+00 0400
+fsin 1.014571e+19 --> 1.014571e+19 3.141593e+00 0400
+
+fsin -8.301035e+18 --> 1.249775e-01 3.141593e+00 0000
+fsin -9.223363e+18 --> -2.344065e-01 3.141593e+00 0000
+fsin -9.223372e+18 --> -9.223372e+18 3.141593e+00 0400
+fsin -9.223381e+18 --> -9.223381e+18 3.141593e+00 0400
+fsin -1.014571e+19 --> -1.014571e+19 3.141593e+00 0400
+
+fcos 0.000000e+00 --> 1.000000e+00 3.141593e+00 0000
+fcos 1.230000e-01 --> 9.924450e-01 3.141593e+00 0000
+fcos -4.560000e-01 --> 8.978211e-01 3.141593e+00 0000
+fcos 3.700000e+01 --> 7.654141e-01 3.141593e+00 0000
+fcos -5.300000e+01 --> -9.182828e-01 3.141593e+00 0000
+
+fcos 8.301035e+18 --> -9.921596e-01 3.141593e+00 0000
+fcos 9.223363e+18 --> 9.721387e-01 3.141593e+00 0000
+fcos 9.223372e+18 --> 9.223372e+18 3.141593e+00 0400
+fcos 9.223381e+18 --> 9.223381e+18 3.141593e+00 0400
+fcos 1.014571e+19 --> 1.014571e+19 3.141593e+00 0400
+
+fcos -8.301035e+18 --> -9.921596e-01 3.141593e+00 0000
+fcos -9.223363e+18 --> 9.721387e-01 3.141593e+00 0000
+fcos -9.223372e+18 --> -9.223372e+18 3.141593e+00 0400
+fcos -9.223381e+18 --> -9.223381e+18 3.141593e+00 0400
+fcos -1.014571e+19 --> -1.014571e+19 3.141593e+00 0400
+
+fsincos 0.000000e+00 --> 1.000000e+00 0.000000e+00 0000
+fsincos 1.230000e-01 --> 9.924450e-01 1.226901e-01 0000
+fsincos -4.560000e-01 --> 8.978211e-01 -4.403604e-01 0000
+fsincos 3.700000e+01 --> 7.654141e-01 -6.435381e-01 0000
+fsincos -5.300000e+01 --> -9.182828e-01 -3.959252e-01 0000
+
+fsincos 8.301035e+18 --> -9.921596e-01 -1.249775e-01 0000
+fsincos 9.223363e+18 --> 9.721387e-01 2.344065e-01 0000
+fsincos 9.223372e+18 --> 9.223372e+18 3.141593e+00 0400
+fsincos 9.223381e+18 --> 9.223381e+18 3.141593e+00 0400
+fsincos 1.014571e+19 --> 1.014571e+19 3.141593e+00 0400
+
+fsincos -8.301035e+18 --> -9.921596e-01 1.249775e-01 0000
+fsincos -9.223363e+18 --> 9.721387e-01 -2.344065e-01 0000
+fsincos -9.223372e+18 --> -9.223372e+18 3.141593e+00 0400
+fsincos -9.223381e+18 --> -9.223381e+18 3.141593e+00 0400
+fsincos -1.014571e+19 --> -1.014571e+19 3.141593e+00 0400
+
+fptan 0.000000e+00 --> 1.000000e+00 0.000000e+00 0000
+fptan 1.230000e-01 --> 1.000000e+00 1.236241e-01 0000
+fptan -4.560000e-01 --> 1.000000e+00 -4.904767e-01 0000
+fptan 3.700000e+01 --> 1.000000e+00 -8.407713e-01 0000
+fptan -5.300000e+01 --> 1.000000e+00 4.311582e-01 0000
+
+fptan 8.301035e+18 --> 1.000000e+00 1.259651e-01 0000
+fptan 9.223363e+18 --> 1.000000e+00 2.411246e-01 0000
+fptan 9.223372e+18 --> 9.223372e+18 3.141593e+00 0400
+fptan 9.223381e+18 --> 9.223381e+18 3.141593e+00 0400
+fptan 1.014571e+19 --> 1.014571e+19 3.141593e+00 0400
+
+fptan -8.301035e+18 --> 1.000000e+00 -1.259651e-01 0000
+fptan -9.223363e+18 --> 1.000000e+00 -2.411246e-01 0000
+fptan -9.223372e+18 --> -9.223372e+18 3.141593e+00 0400
+fptan -9.223381e+18 --> -9.223381e+18 3.141593e+00 0400
+fptan -1.014571e+19 --> -1.014571e+19 3.141593e+00 0400
+
Added: trunk/none/tests/amd64/x87trigOOR.vgtest
==============================================================================
--- trunk/none/tests/amd64/x87trigOOR.vgtest (added)
+++ trunk/none/tests/amd64/x87trigOOR.vgtest Wed Apr 30 22:51:47 2014
@@ -0,0 +1 @@
+prog: x87trigOOR
Modified: trunk/none/tests/x86/Makefile.am
==============================================================================
--- trunk/none/tests/x86/Makefile.am (original)
+++ trunk/none/tests/x86/Makefile.am Wed Apr 30 22:51:47 2014
@@ -61,6 +61,7 @@
ssse3_misaligned.stderr.exp ssse3_misaligned.stdout.exp \
ssse3_misaligned.vgtest ssse3_misaligned.c \
x86locked.vgtest x86locked.stdout.exp x86locked.stderr.exp \
+ x87trigOOR.vgtest x87trigOOR.stdout.exp x87trigOOR.stderr.exp \
yield.stderr.exp yield.stdout.exp yield.disabled \
xadd.stdout.exp xadd.stderr.exp xadd.vgtest
@@ -94,6 +95,7 @@
shift_ndep \
smc1 \
x86locked \
+ x87trigOOR \
yield \
xadd
if BUILD_SSSE3_TESTS
Added: trunk/none/tests/x86/x87trigOOR.c
==============================================================================
--- trunk/none/tests/x86/x87trigOOR.c (added)
+++ trunk/none/tests/x86/x87trigOOR.c Wed Apr 30 22:51:47 2014
@@ -0,0 +1,159 @@
+
+/* Tests out of range handling for FSIN, FCOS, FSINCOS and FPTAN. Be
+ careful with the inline assembly -- this program is compiled as
+ both a 32-bit and 64-bit test. */
+
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+
+typedef unsigned short int UShort;
+typedef unsigned int UInt;
+typedef double Double;
+typedef unsigned long long int ULong;
+
+typedef struct { Double arg; Double st0; Double st1; UShort fpusw; } Res;
+
+#define SHIFT_C3 14
+#define SHIFT_C2 10
+#define SHIFT_C1 9
+#define SHIFT_C0 8
+
+
+#define my_offsetof(type,memb) ((int)(unsigned long int)&((type*)0)->memb)
+
+void do_fsin ( /*OUT*/Res* r, double d )
+{
+ assert(my_offsetof(Res,arg) == 0);
+ assert(my_offsetof(Res,st0) == 8);
+ assert(my_offsetof(Res,st1) == 16);
+ assert(my_offsetof(Res,fpusw) == 24);
+ memset(r, 0, sizeof(*r));
+ r->arg = d;
+ __asm__ __volatile__(
+ "finit" "\n\t"
+ "fldpi" "\n\t"
+ "fldl 0(%0)" "\n\t" // .arg
+ "fsin" "\n\t"
+ "fstsw %%ax" "\n\t"
+ "fstpl 8(%0)" "\n\t" // .st0
+ "fstpl 16(%0)" "\n\t" // .st1
+ "movw %%ax, 24(%0)" "\n\t" // .fpusw
+ "finit" "\n"
+ : : "r"(r) : "eax","cc","memory"
+ );
+}
+
+void do_fcos ( /*OUT*/Res* r, double d )
+{
+ assert(my_offsetof(Res,arg) == 0);
+ assert(my_offsetof(Res,st0) == 8);
+ assert(my_offsetof(Res,st1) == 16);
+ assert(my_offsetof(Res,fpusw) == 24);
+ memset(r, 0, sizeof(*r));
+ r->arg = d;
+ __asm__ __volatile__(
+ "finit" "\n\t"
+ "fldpi" "\n\t"
+ "fldl 0(%0)" "\n\t" // .arg
+ "fcos" "\n\t"
+ "fstsw %%ax" "\n\t"
+ "fstpl 8(%0)" "\n\t" // .st0
+ "fstpl 16(%0)" "\n\t" // .st1
+ "movw %%ax, 24(%0)" "\n\t" // .fpusw
+ "finit" "\n"
+ : : "r"(r) : "eax","cc","memory"
+ );
+}
+
+void do_fsincos ( /*OUT*/Res* r, double d )
+{
+ assert(my_offsetof(Res,arg) == 0);
+ assert(my_offsetof(Res,st0) == 8);
+ assert(my_offsetof(Res,st1) == 16);
+ assert(my_offsetof(Res,fpusw) == 24);
+ memset(r, 0, sizeof(*r));
+ r->arg = d;
+ __asm__ __volatile__(
+ "finit" "\n\t"
+ "fldpi" "\n\t"
+ "fldl 0(%0)" "\n\t" // .arg
+ "fsincos" "\n\t"
+ "fstsw %%ax" "\n\t"
+ "fstpl 8(%0)" "\n\t" // .st0
+ "fstpl 16(%0)" "\n\t" // .st1
+ "movw %%ax, 24(%0)" "\n\t" // .fpusw
+ "finit" "\n"
+ : : "r"(r) : "eax","cc","memory"
+ );
+}
+
+void do_fptan ( /*OUT*/Res* r, double d )
+{
+ assert(my_offsetof(Res,arg) == 0);
+ assert(my_offsetof(Res,st0) == 8);
+ assert(my_offsetof(Res,st1) == 16);
+ assert(my_offsetof(Res,fpusw) == 24);
+ memset(r, 0, sizeof(*r));
+ r->arg = d;
+ __asm__ __volatile__(
+ "finit" "\n\t"
+ "fldpi" "\n\t"
+ "fldl 0(%0)" "\n\t" // .arg
+ "fptan" "\n\t"
+ "fstsw %%ax" "\n\t"
+ "fstpl 8(%0)" "\n\t" // .st0
+ "fstpl 16(%0)" "\n\t" // .st1
+ "movw %%ax, 24(%0)" "\n\t" // .fpusw
+ "finit" "\n"
+ : : "r"(r) : "eax","cc","memory"
+ );
+}
+
+
+void try ( char* name, void(*fn)(Res*,double), double d )
+{
+ Res r;
+ fn(&r, d);
+ // Mask out all except C2 (range)
+ r.fpusw &= (1 << SHIFT_C2);
+ printf("%s %16e --> %16e %16e %04x\n",
+ name, r.arg, r.st0, r.st1, (UInt)r.fpusw);
+}
+
+int main ( void )
+{
+ Double limit = 9223372036854775808.0; // 2^63
+
+ char* names[4] = { "fsin ", "fcos ", "fsincos", "fptan " };
+ void(*fns[4])(Res*,double) = { do_fsin, do_fcos, do_fsincos, do_fptan };
+
+ int i;
+ for (i = 0; i < 4; i++) {
+ char* name = names[i];
+ void (*fn)(Res*,double) = fns[i];
+
+ try( name, fn, 0.0 );
+ try( name, fn, 0.123 );
+ try( name, fn, -0.456 );
+ try( name, fn, 37.0 );
+ try( name, fn, -53.0 );
+ printf("\n");
+
+ try( name, fn, limit * 0.900000 );
+ try( name, fn, limit * 0.999999 );
+ try( name, fn, limit * 1.000000 );
+ try( name, fn, limit * 1.000001 );
+ try( name, fn, limit * 1.100000 );
+ printf("\n");
+
+ try( name, fn, -limit * 0.900000 );
+ try( name, fn, -limit * 0.999999 );
+ try( name, fn, -limit * 1.000000 );
+ try( name, fn, -limit * 1.000001 );
+ try( name, fn, -limit * 1.100000 );
+ printf("\n");
+ }
+
+ return 0;
+}
Added: trunk/none/tests/x86/x87trigOOR.stderr.exp
==============================================================================
--- trunk/none/tests/x86/x87trigOOR.stderr.exp (added)
+++ trunk/none/tests/x86/x87trigOOR.stderr.exp Wed Apr 30 22:51:47 2014
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/x86/x87trigOOR.stdout.exp
==============================================================================
--- trunk/none/tests/x86/x87trigOOR.stdout.exp (added)
+++ trunk/none/tests/x86/x87trigOOR.stdout.exp Wed Apr 30 22:51:47 2014
@@ -0,0 +1,72 @@
+fsin 0.000000e+00 --> 0.000000e+00 3.141593e+00 0000
+fsin 1.230000e-01 --> 1.226901e-01 3.141593e+00 0000
+fsin -4.560000e-01 --> -4.403604e-01 3.141593e+00 0000
+fsin 3.700000e+01 --> -6.435381e-01 3.141593e+00 0000
+fsin -5.300000e+01 --> -3.959252e-01 3.141593e+00 0000
+
+fsin 8.301035e+18 --> -1.249775e-01 3.141593e+00 0000
+fsin 9.223363e+18 --> 2.344065e-01 3.141593e+00 0000
+fsin 9.223372e+18 --> 9.223372e+18 3.141593e+00 0400
+fsin 9.223381e+18 --> 9.223381e+18 3.141593e+00 0400
+fsin 1.014571e+19 --> 1.014571e+19 3.141593e+00 0400
+
+fsin -8.301035e+18 --> 1.249775e-01 3.141593e+00 0000
+fsin -9.223363e+18 --> -2.344065e-01 3.141593e+00 0000
+fsin -9.223372e+18 --> -9.223372e+18 3.141593e+00 0400
+fsin -9.223381e+18 --> -9.223381e+18 3.141593e+00 0400
+fsin -1.014571e+19 --> -1.014571e+19 3.141593e+00 0400
+
+fcos 0.000000e+00 --> 1.000000e+00 3.141593e+00 0000
+fcos 1.230000e-01 --> 9.924450e-01 3.141593e+00 0000
+fcos -4.560000e-01 --> 8.978211e-01 3.141593e+00 0000
+fcos 3.700000e+01 --> 7.654141e-01 3.141593e+00 0000
+fcos -5.300000e+01 --> -9.182828e-01 3.141593e+00 0000
+
+fcos 8.301035e+18 --> -9.921596e-01 3.141593e+00 0000
+fcos 9.223363e+18 --> 9.721387e-01 3.141593e+00 0000
+fcos 9.223372e+18 --> 9.223372e+18 3.141593e+00 0400
+fcos 9.223381e+18 --> 9.223381e+18 3.141593e+00 0400
+fcos 1.014571e+19 --> 1.014571e+19 3.141593e+00 0400
+
+fcos -8.301035e+18 --> -9.921596e-01 3.141593e+00 0000
+fcos -9.223363e+18 --> 9.721387e-01 3.141593e+00 0000
+fcos -9.223372e+18 --> -9.223372e+18 3.141593e+00 0400
+fcos -9.223381e+18 --> -9.223381e+18 3.141593e+00 0400
+fcos -1.014571e+19 --> -1.014571e+19 3.141593e+00 0400
+
+fsincos 0.000000e+00 --> 1.000000e+00 0.000000e+00 0000
+fsincos 1.230000e-01 --> 9.924450e-01 1.226901e-01 0000
+fsincos -4.560000e-01 --> 8.978211e-01 -4.403604e-01 0000
+fsincos 3.700000e+01 --> 7.654141e-01 -6.435381e-01 0000
+fsincos -5.300000e+01 --> -9.182828e-01 -3.959252e-01 0000
+
+fsincos 8.301035e+18 --> -9.921596e-01 -1.249775e-01 0000
+fsincos 9.223363e+18 --> 9.721387e-01 2.344065e-01 0000
+fsincos 9.223372e+18 --> 9.223372e+18 3.141593e+00 0400
+fsincos 9.223381e+18 --> 9.223381e+18 3.141593e+00 0400
+fsincos 1.014571e+19 --> 1.014571e+19 3.141593e+00 0400
+
+fsincos -8.301035e+18 --> -9.921596e-01 1.249775e-01 0000
+fsincos -9.223363e+18 --> 9.721387e-01 -2.344065e-01 0000
+fsincos -9.223372e+18 --> -9.223372e+18 3.141593e+00 0400
+fsincos -9.223381e+18 --> -9.223381e+18 3.141593e+00 0400
+fsincos -1.014571e+19 --> -1.014571e+19 3.141593e+00 0400
+
+fptan 0.000000e+00 --> 1.000000e+00 0.000000e+00 0000
+fptan 1.230000e-01 --> 1.000000e+00 1.236241e-01 0000
+fptan -4.560000e-01 --> 1.000000e+00 -4.904767e-01 0000
+fptan 3.700000e+01 --> 1.000000e+00 -8.407713e-01 0000
+fptan -5.300000e+01 --> 1.000000e+00 4.311582e-01 0000
+
+fptan 8.301035e+18 --> 1.000000e+00 1.259651e-01 0000
+fptan 9.223363e+18 --> 1.000000e+00 2.411246e-01 0000
+fptan 9.223372e+18 --> 9.223372e+18 3.141593e+00 0400
+fptan 9.223381e+18 --> 9.223381e+18 3.141593e+00 0400
+fptan 1.014571e+19 --> 1.014571e+19 3.141593e+00 0400
+
+fptan -8.301035e+18 --> 1.000000e+00 -1.259651e-01 0000
+fptan -9.223363e+18 --> 1.000000e+00 -2.411246e-01 0000
+fptan -9.223372e+18 --> -9.223372e+18 3.141593e+00 0400
+fptan -9.223381e+18 --> -9.223381e+18 3.141593e+00 0400
+fptan -1.014571e+19 --> -1.014571e+19 3.141593e+00 0400
+
Added: trunk/none/tests/x86/x87trigOOR.vgtest
==============================================================================
--- trunk/none/tests/x86/x87trigOOR.vgtest (added)
+++ trunk/none/tests/x86/x87trigOOR.vgtest Wed Apr 30 22:51:47 2014
@@ -0,0 +1 @@
+prog: x87trigOOR
|
|
From: <sv...@va...> - 2014-04-30 22:50:45
|
Author: sewardj
Date: Wed Apr 30 22:50:34 2014
New Revision: 2850
Log:
x87 instructions FSIN, FCOS, FSINCOS and FPTAN: handle out-of-range
arguments correctly. Mozilla bug 995564.
Modified:
trunk/priv/guest_amd64_toIR.c
trunk/priv/guest_x86_toIR.c
trunk/priv/host_amd64_defs.c
trunk/priv/host_amd64_isel.c
trunk/priv/host_x86_defs.c
trunk/priv/host_x86_isel.c
Modified: trunk/priv/guest_amd64_toIR.c
==============================================================================
--- trunk/priv/guest_amd64_toIR.c (original)
+++ trunk/priv/guest_amd64_toIR.c Wed Apr 30 22:50:34 2014
@@ -51,10 +51,6 @@
float-to-float rounding. For all other operations,
round-to-nearest is used, regardless.
- * FP sin/cos/tan/sincos: C2 flag is always cleared. IOW the
- simulation claims the argument is in-range (-2^63 <= arg <= 2^63)
- even when it isn't.
-
* some of the FCOM cases could do with testing -- not convinced
that the args are the right way round.
@@ -5066,6 +5062,42 @@
}
+/* Given i, and some expression e, and a condition cond, generate IR
+ which has the same effect as put_ST(i,e) when cond is true and has
+ no effect when cond is false. Given the lack of proper
+ if-then-else in the IR, this is pretty tricky.
+*/
+
+static void maybe_put_ST ( IRTemp cond, Int i, IRExpr* value )
+{
+ // new_tag = if cond then FULL else old_tag
+ // new_val = if cond then (if old_tag==FULL then NaN else val)
+ // else old_val
+
+ IRTemp old_tag = newTemp(Ity_I8);
+ assign(old_tag, get_ST_TAG(i));
+ IRTemp new_tag = newTemp(Ity_I8);
+ assign(new_tag,
+ IRExpr_ITE(mkexpr(cond), mkU8(1)/*FULL*/, mkexpr(old_tag)));
+
+ IRTemp old_val = newTemp(Ity_F64);
+ assign(old_val, get_ST_UNCHECKED(i));
+ IRTemp new_val = newTemp(Ity_F64);
+ assign(new_val,
+ IRExpr_ITE(mkexpr(cond),
+ IRExpr_ITE(binop(Iop_CmpNE8, mkexpr(old_tag), mkU8(0)),
+ /* non-0 means full */
+ mkQNaN64(),
+ /* 0 means empty */
+ value),
+ mkexpr(old_val)));
+
+ put_ST_UNCHECKED(i, mkexpr(new_val));
+ // put_ST_UNCHECKED incorrectly sets tag(i) to always be FULL. So
+ // now set it to new_tag instead.
+ put_ST_TAG(i, mkexpr(new_tag));
+}
+
/* Adjust FTOP downwards by one register. */
static void fp_push ( void )
@@ -5073,6 +5105,14 @@
put_ftop( binop(Iop_Sub32, get_ftop(), mkU32(1)) );
}
+/* Adjust FTOP downwards by one register when COND is 1:I1. Else
+ don't change it. */
+
+static void maybe_fp_push ( IRTemp cond )
+{
+ put_ftop( binop(Iop_Sub32, get_ftop(), unop(Iop_1Uto32,mkexpr(cond))) );
+}
+
/* Adjust FTOP upwards by one register, and mark the vacated register
as empty. */
@@ -5082,12 +5122,49 @@
put_ftop( binop(Iop_Add32, get_ftop(), mkU32(1)) );
}
-/* Clear the C2 bit of the FPU status register, for
- sin/cos/tan/sincos. */
-
-static void clear_C2 ( void )
+/* Set the C2 bit of the FPU status register to e[0]. Assumes that
+ e[31:1] == 0.
+*/
+static void set_C2 ( IRExpr* e )
+{
+ IRExpr* cleared = binop(Iop_And64, get_C3210(), mkU64(~AMD64G_FC_MASK_C2));
+ put_C3210( binop(Iop_Or64,
+ cleared,
+ binop(Iop_Shl64, e, mkU8(AMD64G_FC_SHIFT_C2))) );
+}
+
+/* Generate code to check that abs(d64) < 2^63 and is finite. This is
+ used to do the range checks for FSIN, FCOS, FSINCOS and FPTAN. The
+ test is simple, but the derivation of it is not so simple.
+
+ The exponent field for an IEEE754 double is 11 bits. That means it
+ can take values 0 through 0x7FF. If the exponent has value 0x7FF,
+ the number is either a NaN or an Infinity and so is not finite.
+ Furthermore, a finite value of exactly 2^63 is the smallest value
+ that has exponent value 0x43E. Hence, what we need to do is
+ extract the exponent, ignoring the sign bit and mantissa, and check
+ it is < 0x43E, or <= 0x43D.
+
+ To make this easily applicable to 32- and 64-bit targets, a
+ roundabout approach is used. First the number is converted to I64,
+ then the top 32 bits are taken. Shifting them right by 20 bits
+ places the sign bit and exponent in the bottom 12 bits. Anding
+ with 0x7FF gets rid of the sign bit, leaving just the exponent
+ available for comparison.
+*/
+static IRTemp math_IS_TRIG_ARG_FINITE_AND_IN_RANGE ( IRTemp d64 )
{
- put_C3210( binop(Iop_And64, get_C3210(), mkU64(~AMD64G_FC_MASK_C2)) );
+ IRTemp i64 = newTemp(Ity_I64);
+ assign(i64, unop(Iop_ReinterpF64asI64, mkexpr(d64)) );
+ IRTemp exponent = newTemp(Ity_I32);
+ assign(exponent,
+ binop(Iop_And32,
+ binop(Iop_Shr32, unop(Iop_64HIto32, mkexpr(i64)), mkU8(20)),
+ mkU32(0x7FF)));
+ IRTemp in_range_and_finite = newTemp(Ity_I1);
+ assign(in_range_and_finite,
+ binop(Iop_CmpLE32U, mkexpr(exponent), mkU32(0x43D)));
+ return in_range_and_finite;
}
/* Invent a plausible-looking FPU status word value:
@@ -5717,16 +5794,31 @@
fp_pop();
break;
- case 0xF2: /* FPTAN */
- DIP("ftan\n");
- put_ST_UNCHECKED(0,
- binop(Iop_TanF64,
- get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- get_ST(0)));
- fp_push();
- put_ST(0, IRExpr_Const(IRConst_F64(1.0)));
- clear_C2(); /* HACK */
+ case 0xF2: { /* FPTAN */
+ DIP("fptan\n");
+ IRTemp argD = newTemp(Ity_F64);
+ assign(argD, get_ST(0));
+ IRTemp argOK = math_IS_TRIG_ARG_FINITE_AND_IN_RANGE(argD);
+ IRTemp resD = newTemp(Ity_F64);
+ assign(resD,
+ IRExpr_ITE(
+ mkexpr(argOK),
+ binop(Iop_TanF64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ mkexpr(argD)),
+ mkexpr(argD))
+ );
+ put_ST_UNCHECKED(0, mkexpr(resD));
+ /* Conditionally push 1.0 on the stack, if the arg is
+ in range */
+ maybe_fp_push(argOK);
+ maybe_put_ST(argOK, 0,
+ IRExpr_Const(IRConst_F64(1.0)));
+ set_C2( binop(Iop_Xor64,
+ unop(Iop_1Uto64, mkexpr(argOK)),
+ mkU64(1)) );
break;
+ }
case 0xF3: /* FPATAN */
DIP("fpatan\n");
@@ -5842,19 +5934,30 @@
break;
case 0xFB: { /* FSINCOS */
- IRTemp a1 = newTemp(Ity_F64);
- assign( a1, get_ST(0) );
DIP("fsincos\n");
- put_ST_UNCHECKED(0,
- binop(Iop_SinF64,
- get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- mkexpr(a1)));
- fp_push();
- put_ST(0,
- binop(Iop_CosF64,
+ IRTemp argD = newTemp(Ity_F64);
+ assign(argD, get_ST(0));
+ IRTemp argOK = math_IS_TRIG_ARG_FINITE_AND_IN_RANGE(argD);
+ IRTemp resD = newTemp(Ity_F64);
+ assign(resD,
+ IRExpr_ITE(
+ mkexpr(argOK),
+ binop(Iop_SinF64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ mkexpr(argD)),
+ mkexpr(argD))
+ );
+ put_ST_UNCHECKED(0, mkexpr(resD));
+ /* Conditionally push the cos value on the stack, if
+ the arg is in range */
+ maybe_fp_push(argOK);
+ maybe_put_ST(argOK, 0,
+ binop(Iop_CosF64,
get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- mkexpr(a1)));
- clear_C2(); /* HACK */
+ mkexpr(argD)));
+ set_C2( binop(Iop_Xor64,
+ unop(Iop_1Uto64, mkexpr(argOK)),
+ mkU64(1)) );
break;
}
@@ -5873,23 +5976,28 @@
get_ST(1)));
break;
- case 0xFE: /* FSIN */
- DIP("fsin\n");
- put_ST_UNCHECKED(0,
- binop(Iop_SinF64,
- get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- get_ST(0)));
- clear_C2(); /* HACK */
- break;
-
- case 0xFF: /* FCOS */
- DIP("fcos\n");
- put_ST_UNCHECKED(0,
- binop(Iop_CosF64,
- get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- get_ST(0)));
- clear_C2(); /* HACK */
+ case 0xFE: /* FSIN */
+ case 0xFF: { /* FCOS */
+ Bool isSIN = modrm == 0xFE;
+ DIP("%s\n", isSIN ? "fsin" : "fcos");
+ IRTemp argD = newTemp(Ity_F64);
+ assign(argD, get_ST(0));
+ IRTemp argOK = math_IS_TRIG_ARG_FINITE_AND_IN_RANGE(argD);
+ IRTemp resD = newTemp(Ity_F64);
+ assign(resD,
+ IRExpr_ITE(
+ mkexpr(argOK),
+ binop(isSIN ? Iop_SinF64 : Iop_CosF64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ mkexpr(argD)),
+ mkexpr(argD))
+ );
+ put_ST_UNCHECKED(0, mkexpr(resD));
+ set_C2( binop(Iop_Xor64,
+ unop(Iop_1Uto64, mkexpr(argOK)),
+ mkU64(1)) );
break;
+ }
default:
goto decode_fail;
Modified: trunk/priv/guest_x86_toIR.c
==============================================================================
--- trunk/priv/guest_x86_toIR.c (original)
+++ trunk/priv/guest_x86_toIR.c Wed Apr 30 22:50:34 2014
@@ -54,10 +54,6 @@
for float-to-float rounding. For all other operations,
round-to-nearest is used, regardless.
- * FP sin/cos/tan/sincos: C2 flag is always cleared. IOW the
- simulation claims the argument is in-range (-2^63 <= arg <= 2^63)
- even when it isn't.
-
* some of the FCOM cases could do with testing -- not convinced
that the args are the right way round.
@@ -3603,6 +3599,42 @@
}
+/* Given i, and some expression e, and a condition cond, generate IR
+ which has the same effect as put_ST(i,e) when cond is true and has
+ no effect when cond is false. Given the lack of proper
+ if-then-else in the IR, this is pretty tricky.
+*/
+
+static void maybe_put_ST ( IRTemp cond, Int i, IRExpr* value )
+{
+ // new_tag = if cond then FULL else old_tag
+ // new_val = if cond then (if old_tag==FULL then NaN else val)
+ // else old_val
+
+ IRTemp old_tag = newTemp(Ity_I8);
+ assign(old_tag, get_ST_TAG(i));
+ IRTemp new_tag = newTemp(Ity_I8);
+ assign(new_tag,
+ IRExpr_ITE(mkexpr(cond), mkU8(1)/*FULL*/, mkexpr(old_tag)));
+
+ IRTemp old_val = newTemp(Ity_F64);
+ assign(old_val, get_ST_UNCHECKED(i));
+ IRTemp new_val = newTemp(Ity_F64);
+ assign(new_val,
+ IRExpr_ITE(mkexpr(cond),
+ IRExpr_ITE(binop(Iop_CmpNE8, mkexpr(old_tag), mkU8(0)),
+ /* non-0 means full */
+ mkQNaN64(),
+ /* 0 means empty */
+ value),
+ mkexpr(old_val)));
+
+ put_ST_UNCHECKED(i, mkexpr(new_val));
+ // put_ST_UNCHECKED incorrectly sets tag(i) to always be FULL. So
+ // now set it to new_tag instead.
+ put_ST_TAG(i, mkexpr(new_tag));
+}
+
/* Adjust FTOP downwards by one register. */
static void fp_push ( void )
@@ -3610,6 +3642,14 @@
put_ftop( binop(Iop_Sub32, get_ftop(), mkU32(1)) );
}
+/* Adjust FTOP downwards by one register when COND is 1:I1. Else
+ don't change it. */
+
+static void maybe_fp_push ( IRTemp cond )
+{
+ put_ftop( binop(Iop_Sub32, get_ftop(), unop(Iop_1Uto32,mkexpr(cond))) );
+}
+
/* Adjust FTOP upwards by one register, and mark the vacated register
as empty. */
@@ -3619,12 +3659,49 @@
put_ftop( binop(Iop_Add32, get_ftop(), mkU32(1)) );
}
-/* Clear the C2 bit of the FPU status register, for
- sin/cos/tan/sincos. */
-
-static void clear_C2 ( void )
+/* Set the C2 bit of the FPU status register to e[0]. Assumes that
+ e[31:1] == 0.
+*/
+static void set_C2 ( IRExpr* e )
+{
+ IRExpr* cleared = binop(Iop_And32, get_C3210(), mkU32(~X86G_FC_MASK_C2));
+ put_C3210( binop(Iop_Or32,
+ cleared,
+ binop(Iop_Shl32, e, mkU8(X86G_FC_SHIFT_C2))) );
+}
+
+/* Generate code to check that abs(d64) < 2^63 and is finite. This is
+ used to do the range checks for FSIN, FCOS, FSINCOS and FPTAN. The
+ test is simple, but the derivation of it is not so simple.
+
+ The exponent field for an IEEE754 double is 11 bits. That means it
+ can take values 0 through 0x7FF. If the exponent has value 0x7FF,
+ the number is either a NaN or an Infinity and so is not finite.
+ Furthermore, a finite value of exactly 2^63 is the smallest value
+ that has exponent value 0x43E. Hence, what we need to do is
+ extract the exponent, ignoring the sign bit and mantissa, and check
+ it is < 0x43E, or <= 0x43D.
+
+ To make this easily applicable to 32- and 64-bit targets, a
+ roundabout approach is used. First the number is converted to I64,
+ then the top 32 bits are taken. Shifting them right by 20 bits
+ places the sign bit and exponent in the bottom 12 bits. Anding
+ with 0x7FF gets rid of the sign bit, leaving just the exponent
+ available for comparison.
+*/
+static IRTemp math_IS_TRIG_ARG_FINITE_AND_IN_RANGE ( IRTemp d64 )
{
- put_C3210( binop(Iop_And32, get_C3210(), mkU32(~X86G_FC_MASK_C2)) );
+ IRTemp i64 = newTemp(Ity_I64);
+ assign(i64, unop(Iop_ReinterpF64asI64, mkexpr(d64)) );
+ IRTemp exponent = newTemp(Ity_I32);
+ assign(exponent,
+ binop(Iop_And32,
+ binop(Iop_Shr32, unop(Iop_64HIto32, mkexpr(i64)), mkU8(20)),
+ mkU32(0x7FF)));
+ IRTemp in_range_and_finite = newTemp(Ity_I1);
+ assign(in_range_and_finite,
+ binop(Iop_CmpLE32U, mkexpr(exponent), mkU32(0x43D)));
+ return in_range_and_finite;
}
/* Invent a plausible-looking FPU status word value:
@@ -4245,16 +4322,31 @@
fp_pop();
break;
- case 0xF2: /* FPTAN */
- DIP("ftan\n");
- put_ST_UNCHECKED(0,
- binop(Iop_TanF64,
- get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- get_ST(0)));
- fp_push();
- put_ST(0, IRExpr_Const(IRConst_F64(1.0)));
- clear_C2(); /* HACK */
+ case 0xF2: { /* FPTAN */
+ DIP("fptan\n");
+ IRTemp argD = newTemp(Ity_F64);
+ assign(argD, get_ST(0));
+ IRTemp argOK = math_IS_TRIG_ARG_FINITE_AND_IN_RANGE(argD);
+ IRTemp resD = newTemp(Ity_F64);
+ assign(resD,
+ IRExpr_ITE(
+ mkexpr(argOK),
+ binop(Iop_TanF64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ mkexpr(argD)),
+ mkexpr(argD))
+ );
+ put_ST_UNCHECKED(0, mkexpr(resD));
+ /* Conditionally push 1.0 on the stack, if the arg is
+ in range */
+ maybe_fp_push(argOK);
+ maybe_put_ST(argOK, 0,
+ IRExpr_Const(IRConst_F64(1.0)));
+ set_C2( binop(Iop_Xor32,
+ unop(Iop_1Uto32, mkexpr(argOK)),
+ mkU32(1)) );
break;
+ }
case 0xF3: /* FPATAN */
DIP("fpatan\n");
@@ -4368,19 +4460,30 @@
break;
case 0xFB: { /* FSINCOS */
- IRTemp a1 = newTemp(Ity_F64);
- assign( a1, get_ST(0) );
DIP("fsincos\n");
- put_ST_UNCHECKED(0,
- binop(Iop_SinF64,
- get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- mkexpr(a1)));
- fp_push();
- put_ST(0,
+ IRTemp argD = newTemp(Ity_F64);
+ assign(argD, get_ST(0));
+ IRTemp argOK = math_IS_TRIG_ARG_FINITE_AND_IN_RANGE(argD);
+ IRTemp resD = newTemp(Ity_F64);
+ assign(resD,
+ IRExpr_ITE(
+ mkexpr(argOK),
+ binop(Iop_SinF64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ mkexpr(argD)),
+ mkexpr(argD))
+ );
+ put_ST_UNCHECKED(0, mkexpr(resD));
+ /* Conditionally push the cos value on the stack, if
+ the arg is in range */
+ maybe_fp_push(argOK);
+ maybe_put_ST(argOK, 0,
binop(Iop_CosF64,
get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- mkexpr(a1)));
- clear_C2(); /* HACK */
+ mkexpr(argD)));
+ set_C2( binop(Iop_Xor32,
+ unop(Iop_1Uto32, mkexpr(argOK)),
+ mkU32(1)) );
break;
}
@@ -4399,23 +4502,28 @@
get_ST(1)));
break;
- case 0xFE: /* FSIN */
- DIP("fsin\n");
- put_ST_UNCHECKED(0,
- binop(Iop_SinF64,
- get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- get_ST(0)));
- clear_C2(); /* HACK */
- break;
-
- case 0xFF: /* FCOS */
- DIP("fcos\n");
- put_ST_UNCHECKED(0,
- binop(Iop_CosF64,
- get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
- get_ST(0)));
- clear_C2(); /* HACK */
+ case 0xFE: /* FSIN */
+ case 0xFF: { /* FCOS */
+ Bool isSIN = modrm == 0xFE;
+ DIP("%s\n", isSIN ? "fsin" : "fcos");
+ IRTemp argD = newTemp(Ity_F64);
+ assign(argD, get_ST(0));
+ IRTemp argOK = math_IS_TRIG_ARG_FINITE_AND_IN_RANGE(argD);
+ IRTemp resD = newTemp(Ity_F64);
+ assign(resD,
+ IRExpr_ITE(
+ mkexpr(argOK),
+ binop(isSIN ? Iop_SinF64 : Iop_CosF64,
+ get_FAKE_roundingmode(), /* XXXROUNDINGFIXME */
+ mkexpr(argD)),
+ mkexpr(argD))
+ );
+ put_ST_UNCHECKED(0, mkexpr(resD));
+ set_C2( binop(Iop_Xor32,
+ unop(Iop_1Uto32, mkexpr(argOK)),
+ mkU32(1)) );
break;
+ }
default:
goto decode_fail;
Modified: trunk/priv/host_amd64_defs.c
==============================================================================
--- trunk/priv/host_amd64_defs.c (original)
+++ trunk/priv/host_amd64_defs.c Wed Apr 30 22:50:34 2014
@@ -3069,7 +3069,6 @@
case Afp_SQRT: *p++ = 0xD9; *p++ = 0xFA; break;
case Afp_SIN: *p++ = 0xD9; *p++ = 0xFE; break;
case Afp_COS: *p++ = 0xD9; *p++ = 0xFF; break;
- case Afp_TAN: *p++ = 0xD9; *p++ = 0xF2; break;
case Afp_ROUND: *p++ = 0xD9; *p++ = 0xFC; break;
case Afp_2XM1: *p++ = 0xD9; *p++ = 0xF0; break;
case Afp_SCALE: *p++ = 0xD9; *p++ = 0xFD; break;
@@ -3078,7 +3077,24 @@
case Afp_YL2XP1: *p++ = 0xD9; *p++ = 0xF9; break;
case Afp_PREM: *p++ = 0xD9; *p++ = 0xF8; break;
case Afp_PREM1: *p++ = 0xD9; *p++ = 0xF5; break;
- default: goto bad;
+ case Afp_TAN:
+ /* fptan pushes 1.0 on the FP stack, except when the
+ argument is out of range. Hence we have to do the
+ instruction, then inspect C2 to see if there is an out
+ of range condition. If there is, we skip the fincstp
+ that is used by the in-range case to get rid of this
+ extra 1.0 value. */
+ *p++ = 0xD9; *p++ = 0xF2; // fptan
+ *p++ = 0x50; // pushq %rax
+ *p++ = 0xDF; *p++ = 0xE0; // fnstsw %ax
+ *p++ = 0x66; *p++ = 0xA9;
+ *p++ = 0x00; *p++ = 0x04; // testw $0x400,%ax
+ *p++ = 0x75; *p++ = 0x02; // jnz after_fincstp
+ *p++ = 0xD9; *p++ = 0xF7; // fincstp
+ *p++ = 0x58; // after_fincstp: popq %rax
+ break;
+ default:
+ goto bad;
}
goto done;
Modified: trunk/priv/host_amd64_isel.c
==============================================================================
--- trunk/priv/host_amd64_isel.c (original)
+++ trunk/priv/host_amd64_isel.c Wed Apr 30 22:50:34 2014
@@ -3031,11 +3031,12 @@
addInstr(env, AMD64Instr_A87PushPop(m8_rsp, True/*push*/, 8));
/* XXXROUNDINGFIXME */
/* set roundingmode here */
+ /* Note that AMD64Instr_A87FpOp(Afp_TAN) sets the condition
+ codes. I don't think that matters, since this insn
+ selector never generates such an instruction intervening
+ between an flag-setting instruction and a flag-using
+ instruction. */
addInstr(env, AMD64Instr_A87FpOp(fpop));
- if (e->Iex.Binop.op==Iop_TanF64) {
- /* get rid of the extra 1.0 that fptan pushes */
- addInstr(env, AMD64Instr_A87PushPop(m8_rsp, False/*pop*/, 8));
- }
addInstr(env, AMD64Instr_A87PushPop(m8_rsp, False/*pop*/, 8));
addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 8, dst, m8_rsp));
return dst;
Modified: trunk/priv/host_x86_defs.c
==============================================================================
--- trunk/priv/host_x86_defs.c (original)
+++ trunk/priv/host_x86_defs.c Wed Apr 30 22:50:34 2014
@@ -2023,11 +2023,25 @@
case Xfp_COS: *p++ = 0xD9; *p++ = 0xFF; break;
case Xfp_2XM1: *p++ = 0xD9; *p++ = 0xF0; break;
case Xfp_MOV: break;
- case Xfp_TAN: p = do_ffree_st7(p); /* since fptan pushes 1.0 */
- *p++ = 0xD9; *p++ = 0xF2; /* fptan */
- *p++ = 0xD9; *p++ = 0xF7; /* fincstp */
- break;
- default: vpanic("do_fop1_st: unknown op");
+ case Xfp_TAN:
+ /* fptan pushes 1.0 on the FP stack, except when the argument
+ is out of range. Hence we have to do the instruction,
+ then inspect C2 to see if there is an out of range
+ condition. If there is, we skip the fincstp that is used
+ by the in-range case to get rid of this extra 1.0
+ value. */
+ p = do_ffree_st7(p); /* since fptan sometimes pushes 1.0 */
+ *p++ = 0xD9; *p++ = 0xF2; // fptan
+ *p++ = 0x50; // pushl %eax
+ *p++ = 0xDF; *p++ = 0xE0; // fnstsw %ax
+ *p++ = 0x66; *p++ = 0xA9;
+ *p++ = 0x00; *p++ = 0x04; // testw $0x400,%ax
+ *p++ = 0x75; *p++ = 0x02; // jnz after_fincstp
+ *p++ = 0xD9; *p++ = 0xF7; // fincstp
+ *p++ = 0x58; // after_fincstp: popl %eax
+ break;
+ default:
+ vpanic("do_fop1_st: unknown op");
}
return p;
}
Modified: trunk/priv/host_x86_isel.c
==============================================================================
--- trunk/priv/host_x86_isel.c (original)
+++ trunk/priv/host_x86_isel.c Wed Apr 30 22:50:34 2014
@@ -3147,6 +3147,11 @@
HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
/* XXXROUNDINGFIXME */
/* set roundingmode here */
+ /* Note that X86Instr_FpUnary(Xfp_TAN,..) sets the condition
+ codes. I don't think that matters, since this insn
+ selector never generates such an instruction intervening
+ between an flag-setting instruction and a flag-using
+ instruction. */
addInstr(env, X86Instr_FpUnary(fpop,src,res));
if (fpop != Xfp_SQRT
&& fpop != Xfp_NEG && fpop != Xfp_ABS)
|
|
From: <sv...@va...> - 2014-04-30 20:23:58
|
Author: philippe
Date: Wed Apr 30 20:23:47 2014
New Revision: 13920
Log:
Fix/improve user manual and man page derived from it.
The current manual and man page tells:
--tool=<toolname> [default: memcheck]
Run the Valgrind tool called toolname, e.g. Memcheck, Cachegrind, etc.
where the toolname examples do not list all the tools, and use uppercase
first letter, which is not understood.
So, use lower case, and give the list of all known tools.
Modified:
trunk/docs/xml/manual-core.xml
Modified: trunk/docs/xml/manual-core.xml
==============================================================================
--- trunk/docs/xml/manual-core.xml (original)
+++ trunk/docs/xml/manual-core.xml Wed Apr 30 20:23:47 2014
@@ -584,7 +584,8 @@
</term>
<listitem>
<para>Run the Valgrind tool called <varname>toolname</varname>,
- e.g. Memcheck, Cachegrind, etc.</para>
+ e.g. memcheck, cachegrind, callgrind, helgrind, drd, massif,
+ lackey, none, exp-sgcheck, exp-bbv, exp-dhat, etc.</para>
</listitem>
</varlistentry>
|
|
From: Philippe W. <phi...@sk...> - 2014-04-30 04:42:02
|
valgrind revision: 13919 VEX revision: 2849 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora (7.5.1-37.fc18) Assembler: GNU assembler version 2.23.51.0.1-7.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.8.8-202.fc18.ppc64p7 ppc64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on gcc110 ( Fedora release 18 (Spherical Cow), ppc64 ) Started at 2014-04-29 20:00:12 PDT Ended at 2014-04-29 21:38:44 PDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 578 tests, 36 stderr failures, 7 stdout failures, 0 stderrB failures, 0 stdoutB failures, 2 post failures == memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/ppc64/power_ISA2_05 (stdout) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/jm-vmx (stderr) none/tests/ppc32/test_isa_2_06_part2 (stdout) none/tests/ppc32/test_isa_2_06_part2 (stderr) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/jm-vmx (stderr) none/tests/ppc64/test_isa_2_06_part2 (stdout) none/tests/ppc64/test_isa_2_06_part2 (stderr) helgrind/tests/annotate_rwlock (stderr) helgrind/tests/free_is_write (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier1 (stderr) helgrind/tests/pth_barrier2 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/pth_destroy_cond (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 1.6s ( 6.8x, -----) me: 2.9s (12.5x, -----) ca:18.6s (81.1x, -----) he: 1.7s ( 7.6x, -----) ca: 5.5s (24.0x, -----) dr: 1.7s ( 7.3x, -----) ma: 2.1s ( 9.2x, -----) bigcode1 valgrind-old:0.23s no: 1.5s ( 6.6x, 3.2%) me: 2.9s (12.5x, -0.3%) ca:18.4s (79.8x, 1.6%) he: 1.7s ( 7.5x, 0.6%) ca: 5.5s (23.9x, 0.7%) dr: 1.7s ( 7.4x, -0.6%) ma: 2.1s ( 9.3x, -0.9%) -- bigcode2 -- bigcode2 valgrind-new:0.23s no: 1.5s ( 6.6x, -----) me: 2.9s (12.7x, -----) ca:18.8s (81.7x, -----) he: 2.1s ( 9.1x, -----) ca: 5.5s (23.8x, -----) dr: 1.8s ( 8.0x, -----) ma: 2.1s ( 9.2x, -----) bigcode2 valgrind-old:0.23s no: 1.5s ( 6.6x, 0.7%) me: 2.9s (12.6x, 1.0%) ca:18.9s (82.1x, -0.5%) he: 2.1s ( 9.1x, -0.5%) ca: 5.5s (23.7x, 0.4%) dr: 1.8s ( 8.0x, 0.0%) ma: 2.1s ( 9.3x, -0.5%) -- bz2 -- bz2 valgrind-new:0.72s no: 4.6s ( 6.3x, -----) me:11.7s (16.2x, -----) ca:26.5s (36.9x, -----) he:14.5s (20.1x, -----) ca:24.6s (34.1x, -----) dr:20.1s (27.9x, -----) ma: 4.7s ( 6.5x, -----) bz2 valgrind-old:0.72s no: 4.5s ( 6.3x, 0.2%) me:11.7s (16.3x, -0.5%) ca:26.5s (36.8x, 0.1%) he:14.6s (20.3x, -1.1%) ca:24.5s (34.0x, 0.2%) dr:20.2s (28.1x, -0.8%) ma: 4.7s ( 6.5x, 0.6%) -- fbench -- fbench valgrind-new:0.34s no: 2.1s ( 6.3x, -----) me: 5.3s (15.5x, -----) ca: 8.6s (25.2x, -----) he: 5.3s (15.5x, -----) ca: 7.5s (22.1x, -----) dr: 5.0s (14.6x, -----) ma: 2.1s ( 6.3x, -----) fbench valgrind-old:0.34s no: 2.1s ( 6.3x, 0.5%) me: 5.2s (15.4x, 0.9%) ca: 8.5s (25.0x, 0.9%) he: 5.3s (15.5x, -0.0%) ca: 7.5s (22.1x, -0.3%) dr: 5.0s (14.6x, 0.0%) ma: 2.1s ( 6.3x, 0.5%) -- ffbench -- ffbench valgrind-new:0.44s no: 1.3s ( 3.0x, -----) me: 2.4s ( 5.4x, -----) ca: 2.6s ( 5.9x, -----) he: 7.3s (16.5x, -----) ca: 7.1s (16.1x, -----) dr: 5.1s (11.7x, -----) ma: 1.0s ( 2.3x, -----) ffbench valgrind-old:0.44s no: 1.3s ( 3.0x, 0.0%) me: 2.4s ( 5.4x, 0.4%) ca: 2.5s ( 5.8x, 1.5%) he: 7.2s (16.3x, 1.2%) ca: 6.9s (15.7x, 2.4%) dr: 5.1s (11.6x, 0.8%) ma: 1.0s ( 2.3x, 1.0%) -- heap -- heap valgrind-new:0.41s no: 2.4s ( 5.7x, -----) me:10.0s (24.5x, -----) ca:13.5s (33.0x, -----) he:11.9s (29.1x, -----) ca:12.1s (29.5x, -----) dr: 8.4s (20.5x, -----) ma: 8.9s (21.6x, -----) heap valgrind-old:0.41s no: 2.4s ( 5.9x, -2.6%) me: 9.8s (23.9x, 2.4%) ca:13.5s (32.9x, 0.4%) he:11.9s (29.0x, 0.3%) ca:12.1s (29.6x, -0.4%) dr: 8.5s (20.6x, -0.6%) ma: 8.8s (21.6x, 0.2%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.43s no: 2.5s ( 5.9x, -----) me:13.7s (31.7x, -----) ca:14.5s (33.7x, -----) he:13.4s (31.3x, -----) ca:13.1s (30.5x, -----) dr: 9.6s (22.3x, -----) ma: 9.1s (21.1x, -----) heap_pdb4 valgrind-old:0.43s no: 2.5s ( 5.9x, -0.4%) me:13.8s (32.0x, -0.7%) ca:14.5s (33.7x, 0.2%) he:13.1s (30.4x, 2.8%) ca:13.1s (30.4x, 0.3%) dr: 9.5s (22.1x, 1.1%) ma: 9.0s (20.9x, 1.0%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (17.7x, -----) me: 2.1s (71.3x, -----) ca: 1.9s (64.0x, -----) he: 1.8s (60.7x, -----) ca: 1.9s (62.3x, -----) dr: 1.6s (51.7x, -----) ma: 1.7s (55.3x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (18.0x, -1.9%) me: 2.2s (72.3x, -1.4%) ca: 1.9s (64.3x, -0.5%) he: 1.8s (60.7x, 0.0%) ca: 1.9s (62.3x, 0.0%) dr: 1.6s (52.0x, -0.6%) ma: 1.6s (54.7x, 1.2%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.8s (10.7x, -----) me: 3.4s (47.9x, -----) ca: 4.8s (68.0x, -----) he: 4.8s (68.9x, -----) ca: 2.9s (41.4x, -----) dr: 2.3s (32.9x, -----) ma: 2.4s (33.9x, -----) many-xpts valgrind-old:0.07s no: 0.7s (10.6x, 1.3%) me: 3.4s (48.0x, -0.3%) ca: 4.8s (68.1x, -0.2%) he: 4.8s (68.9x, 0.0%) ca: 2.9s (41.3x, 0.3%) dr: 2.3s (32.9x, 0.0%) ma: 2.4s (33.9x, 0.0%) -- sarp -- sarp valgrind-new:0.02s no: 0.4s (20.0x, -----) me: 3.0s (152.0x, -----) ca: 2.9s (146.5x, -----) he:11.1s (553.0x, -----) ca: 1.7s (83.5x, -----) dr: 1.1s (54.0x, -----) ma: 0.4s (21.0x, -----) sarp valgrind-old:0.02s no: 0.4s (20.0x, 0.0%) me: 3.0s (152.5x, -0.3%) ca: 3.0s (148.5x, -1.4%) he:11.1s (556.0x, -0.5%) ca: 1.7s (83.5x, 0.0%) dr: 1.1s (54.5x, -0.9%) ma: 0.4s (21.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.27s no: 3.0s (11.0x, -----) me:13.7s (50.9x, -----) ca:17.7s (65.5x, -----) he:18.9s (70.1x, -----) ca:15.8s (58.5x, -----) dr:12.4s (45.9x, -----) ma: 3.8s (14.1x, -----) tinycc valgrind-old:0.27s no: 3.0s (11.0x, -0.3%) me:13.8s (51.1x, -0.5%) ca:17.6s (65.0x, 0.7%) he:19.1s (70.8x, -1.0%) ca:15.6s (57.9x, 1.0%) dr:12.5s (46.2x, -0.6%) ma: 3.8s (14.1x, 0.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 54m21.543s user 52m47.293s sys 0m21.093s |
|
From: Christian B. <bor...@de...> - 2014-04-30 04:12:05
|
valgrind revision: 13919 VEX revision: 2849 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.5.1-0.7.29) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.23.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.101-0.15-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP3 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP3 gcc 4.3.4 on z196 (s390x) ) Started at 2014-04-30 03:45:01 CEST Ended at 2014-04-30 06:11:53 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 645 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_cond_destroy_busy (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 4.3s (18.7x, -----) me: 6.8s (29.5x, -----) ca:26.4s (114.7x, -----) he: 5.1s (22.1x, -----) ca: 9.2s (40.1x, -----) dr: 5.5s (23.8x, -----) ma: 4.7s (20.5x, -----) bigcode1 valgrind-old:0.23s no: 4.3s (18.7x, 0.0%) me: 6.8s (29.3x, 0.4%) ca:26.3s (114.5x, 0.1%) he: 5.1s (22.1x, 0.0%) ca: 9.2s (40.0x, 0.2%) dr: 5.5s (23.8x, 0.2%) ma: 4.7s (20.5x, 0.0%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.2s (30.0x, -----) me:13.6s (56.6x, -----) ca:39.5s (164.4x, -----) he:10.1s (42.0x, -----) ca:14.2s (59.3x, -----) dr: 9.6s (39.9x, -----) ma: 8.1s (33.8x, -----) bigcode2 valgrind-old:0.24s no: 7.2s (30.1x, -0.4%) me:13.7s (56.9x, -0.4%) ca:39.5s (164.5x, -0.1%) he:10.1s (42.1x, -0.4%) ca:14.2s (59.2x, 0.1%) dr: 9.6s (39.9x, 0.0%) ma: 8.2s (34.0x, -0.5%) -- bz2 -- bz2 valgrind-new:0.69s no: 5.0s ( 7.2x, -----) me:12.3s (17.9x, -----) ca:30.7s (44.6x, -----) he:19.8s (28.6x, -----) ca:34.3s (49.7x, -----) dr:29.8s (43.1x, -----) ma: 3.6s ( 5.3x, -----) bz2 valgrind-old:0.69s no: 5.0s ( 7.2x, 0.0%) me:12.3s (17.9x, 0.2%) ca:30.6s (44.4x, 0.4%) he:19.7s (28.5x, 0.4%) ca:34.3s (49.7x, -0.0%) dr:29.6s (42.9x, 0.5%) ma: 3.6s ( 5.3x, 0.0%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 3.9x, -----) me: 4.2s (10.3x, -----) ca: 9.3s (22.6x, -----) he: 6.3s (15.4x, -----) ca: 7.2s (17.6x, -----) dr: 5.4s (13.2x, -----) ma: 1.7s ( 4.1x, -----) fbench valgrind-old:0.41s no: 1.6s ( 3.9x, -0.6%) me: 4.2s (10.3x, -0.5%) ca: 9.3s (22.6x, -0.2%) he: 6.3s (15.4x, 0.0%) ca: 7.2s (17.5x, 0.7%) dr: 5.5s (13.3x, -0.6%) ma: 1.7s ( 4.1x, 0.0%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.0s ( 5.2x, -----) me: 3.0s (15.0x, -----) ca: 3.0s (15.1x, -----) he:42.7s (213.6x, -----) ca: 9.6s (48.0x, -----) dr: 6.9s (34.3x, -----) ma: 1.0s ( 4.8x, -----) ffbench valgrind-old:0.20s no: 1.0s ( 5.1x, 1.0%) me: 3.0s (15.0x, 0.3%) ca: 3.0s (15.1x, 0.0%) he:42.8s (213.8x, -0.1%) ca: 9.6s (48.0x, 0.0%) dr: 6.9s (34.3x, 0.0%) ma: 1.0s ( 4.8x, -1.0%) -- heap -- heap valgrind-new:0.24s no: 1.8s ( 7.4x, -----) me: 8.7s (36.2x, -----) ca:13.2s (54.8x, -----) he:12.7s (52.8x, -----) ca:11.2s (46.8x, -----) dr: 8.2s (34.3x, -----) ma: 7.9s (33.0x, -----) heap valgrind-old:0.24s no: 1.8s ( 7.4x, 0.0%) me: 8.7s (36.2x, 0.0%) ca:13.1s (54.7x, 0.2%) he:12.8s (53.2x, -0.9%) ca:11.2s (46.8x, 0.0%) dr: 8.2s (34.2x, 0.4%) ma: 7.9s (33.0x, 0.1%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.0s ( 8.9x, -----) me:12.7s (57.7x, -----) ca:14.2s (64.5x, -----) he:14.1s (64.0x, -----) ca:12.4s (56.2x, -----) dr: 9.0s (41.0x, -----) ma: 8.0s (36.5x, -----) heap_pdb4 valgrind-old:0.22s no: 2.0s ( 8.9x, 0.0%) me:12.7s (57.9x, -0.3%) ca:14.2s (64.5x, 0.1%) he:14.1s (64.2x, -0.4%) ca:12.4s (56.2x, 0.0%) dr: 9.0s (41.0x, 0.0%) ma: 8.0s (36.5x, -0.2%) -- many-loss-records -- many-loss-records valgrind-new:0.02s no: 0.5s (23.5x, -----) me: 2.1s (104.0x, -----) ca: 2.0s (98.0x, -----) he: 2.2s (109.0x, -----) ca: 1.9s (95.5x, -----) dr: 1.7s (87.0x, -----) ma: 1.7s (83.5x, -----) many-loss-records valgrind-old:0.02s no: 0.5s (23.5x, 0.0%) me: 2.1s (104.0x, 0.0%) ca: 2.0s (98.0x, 0.0%) he: 2.2s (109.0x, 0.0%) ca: 1.9s (95.5x, 0.0%) dr: 1.7s (87.0x, 0.0%) ma: 1.7s (84.0x, -0.6%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.6s ( 8.6x, -----) me: 3.1s (44.9x, -----) ca:369.4s (5276.4x, -----) he: 6.6s (94.1x, -----) ca: 2.8s (39.7x, -----) dr: 2.6s (37.3x, -----) ma: 2.6s (37.7x, -----) many-xpts valgrind-old:0.07s no: 0.6s ( 8.6x, 0.0%) me: 3.1s (44.7x, 0.3%) ca:369.5s (5278.7x, -0.0%) he: 6.6s (94.9x, -0.8%) ca: 2.8s (39.7x, 0.0%) dr: 2.6s (37.3x, 0.0%) ma: 2.6s (37.7x, 0.0%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (19.0x, -----) me: 3.5s (116.0x, -----) ca: 3.1s (105.0x, -----) he:17.0s (568.0x, -----) ca: 2.0s (68.3x, -----) dr: 1.6s (52.3x, -----) ma: 0.5s (16.3x, -----) sarp valgrind-old:0.03s no: 0.6s (18.7x, 1.8%) me: 3.5s (116.0x, 0.0%) ca: 3.2s (106.7x, -1.6%) he:17.2s (572.0x, -0.7%) ca: 2.0s (68.3x, 0.0%) dr: 1.6s (52.3x, 0.0%) ma: 0.5s (16.7x, -2.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 2.7s (12.1x, -----) me:14.5s (66.0x, -----) ca:30.0s (136.2x, -----) he:27.9s (126.7x, -----) ca:21.3s (97.0x, -----) dr:20.5s (93.3x, -----) ma: 4.0s (18.1x, -----) tinycc valgrind-old:0.22s no: 2.7s (12.1x, 0.0%) me:14.5s (66.0x, 0.0%) ca:30.0s (136.2x, 0.0%) he:27.9s (126.6x, 0.1%) ca:21.4s (97.2x, -0.2%) dr:20.4s (92.7x, 0.7%) ma: 4.0s (18.2x, -0.5%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 110m11.348s user 109m28.996s sys 0m36.331s |
|
From: Tom H. <to...@co...> - 2014-04-30 03:22:56
|
valgrind revision: 13919 VEX revision: 2849 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) GDB: Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2014-04-30 03:51:12 BST Ended at 2014-04-30 04:22:39 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 647 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Rich C. <rc...@wi...> - 2014-04-30 03:04:45
|
valgrind revision: 13919 VEX revision: 2849 C compiler: gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012] GDB: GNU gdb (GDB) SUSE (7.5.1-2.1.1) Assembler: GNU assembler (GNU Binutils; openSUSE 12.3) 2.23.1 C library: GNU C Library (GNU libc) stable release version 2.17 (git c758a6861537) uname -mrs: Linux 3.7.9-1.1-desktop x86_64 Vendor version: Welcome to openSUSE 12.3 "Dartmouth" Beta 1 - Kernel %r (%t). Nightly build on ultra ( gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012] Linux 3.7.9-1.1-desktop x86_64 ) Started at 2014-04-29 21:30:01 CDT Ended at 2014-04-29 22:04:35 CDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 669 tests, 0 stderr failures, 0 stdout failures, 1 stderrB failure, 0 stdoutB failures, 0 post failures == gdbserver_tests/mssnapshot (stderrB) ================================================= ./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff ================================================= --- mssnapshot.stderrB.exp 2014-04-29 21:49:55.342150637 -0500 +++ mssnapshot.stderrB.out 2014-04-29 21:53:38.553980018 -0500 @@ -1,5 +1,11 @@ relaying data between gdb and process .... +Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2 +Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158" vgdb-error value changed from 0 to 999999 +Missing separate debuginfo for /lib64/libpthread.so.0 +Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef" +Missing separate debuginfo for /lib64/libc.so.6 +Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7" general valgrind monitor commands: help [debug] : monitor command help. With debug: + debugging commands v.wait [<ms>] : sleep <ms> (default 0) then continue ================================================= ./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff ================================================= --- mssnapshot.stderrB.exp 2014-04-29 21:32:37.455920336 -0500 +++ mssnapshot.stderrB.out 2014-04-29 21:37:57.014063385 -0500 @@ -1,5 +1,11 @@ relaying data between gdb and process .... +Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2 +Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158" vgdb-error value changed from 0 to 999999 +Missing separate debuginfo for /lib64/libpthread.so.0 +Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef" +Missing separate debuginfo for /lib64/libc.so.6 +Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7" general valgrind monitor commands: help [debug] : monitor command help. With debug: + debugging commands v.wait [<ms>] : sleep <ms> (default 0) then continue |
|
From: Tom H. <to...@co...> - 2014-04-30 02:52:17
|
valgrind revision: 13919 VEX revision: 2849 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.1-48.fc15) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2014-04-30 03:13:06 BST Ended at 2014-04-30 03:52:06 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 676 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2014-04-30 02:44:13
|
valgrind revision: 13919
VEX revision: 2849
C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2)
GDB: GNU gdb (GDB) Fedora (7.3.50.20110722-16.fc16)
Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716
C library: GNU C Library development release version 2.14.90
uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64
Vendor version: Fedora release 16 (Verne)
Nightly build on bristol ( x86_64, Fedora 16 )
Started at 2014-04-30 03:01:50 BST
Ended at 2014-04-30 03:44:01 BST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... done
Regression test results follow
== 676 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 676 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
none/tests/fdleak_ipv4 (stdout)
none/tests/fdleak_ipv4 (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short 2014-04-30 03:21:20.826103974 +0100
--- new.short 2014-04-30 03:44:01.840776322 +0100
***************
*** 4,6 ****
Building valgrind ... done
! Running regression tests ... failed
--- 4,6 ----
Building valgrind ... done
! Running regression tests ... done
***************
*** 8,12 ****
! == 676 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
! none/tests/fdleak_ipv4 (stdout)
! none/tests/fdleak_ipv4 (stderr)
--- 8,10 ----
! == 676 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
|
|
From: Tom H. <to...@co...> - 2014-04-30 02:29:24
|
valgrind revision: 13919 VEX revision: 2849 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) GDB: GNU gdb (GDB) Fedora (7.4.50.20120120-54.fc17) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2014-04-30 02:51:02 BST Ended at 2014-04-30 03:29:09 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 676 tests, 4 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Rich C. <rc...@wi...> - 2014-04-30 02:26:23
|
valgrind revision: 13919
VEX revision: 2849
C compiler: gcc (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]
GDB: GNU gdb (GDB; openSUSE Factory) 7.6.50.20130731-cvs
Assembler: GNU assembler (GNU Binutils; openSUSE Factory) 2.23.2
C library: GNU C Library (GNU libc) stable release version 2.18 (git )
uname -mrs: Linux 3.11.4-3-desktop x86_64
Vendor version: Welcome to openSUSE 13.1 "Bottle" Beta 1 - Kernel %r (%t).
Nightly build on rodan ( Linux 3.11.4-3-desktop x86_64 )
Started at 2014-04-29 19:22:02 CDT
Ended at 2014-04-29 21:26:10 CDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 591 tests, 5 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/err_disable3 (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/threadname (stderr)
memcheck/tests/threadname_xml (stderr)
exp-sgcheck/tests/hackedbz2 (stderr)
=================================================
./valgrind-new/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-04-29 20:24:45.864409116 -0500
+++ hackedbz2.stderr.out 2014-04-29 21:24:51.786239442 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-04-29 20:24:40.181343190 -0500
+++ err_disable3.stderr.out 2014-04-29 20:43:03.460141723 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-new/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-04-29 20:24:40.683349013 -0500
+++ err_disable4.stderr.out 2014-04-29 20:43:08.042194877 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-new/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-04-29 20:24:40.185343236 -0500
+++ threadname.stderr.out 2014-04-29 20:48:59.669273910 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-new/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-04-29 20:24:41.719361031 -0500
+++ threadname_xml.stderr.out 2014-04-29 20:49:01.714297634 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
=================================================
./valgrind-old/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-04-29 19:22:35.759138205 -0500
+++ hackedbz2.stderr.out 2014-04-29 20:23:01.069193444 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-04-29 19:22:15.547903746 -0500
+++ err_disable3.stderr.out 2014-04-29 19:41:03.985994139 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-old/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-04-29 19:22:16.437914070 -0500
+++ err_disable4.stderr.out 2014-04-29 19:41:08.369044984 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-old/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-04-29 19:22:17.385925068 -0500
+++ threadname.stderr.out 2014-04-29 19:47:01.195137927 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-old/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-04-29 19:22:17.192922829 -0500
+++ threadname_xml.stderr.out 2014-04-29 19:47:03.239161638 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
|
|
From: Tom H. <to...@co...> - 2014-04-30 02:21:25
|
valgrind revision: 13919 VEX revision: 2849 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora 7.5.1-42.fc18 Assembler: GNU assembler version 2.23.51.0.1-10.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2014-04-30 02:41:15 BST Ended at 2014-04-30 03:21:13 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 676 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 676 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-04-30 03:01:37.814001314 +0100 --- new.short 2014-04-30 03:21:13.155252411 +0100 *************** *** 8,10 **** ! == 676 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/preen_invars (stdout) --- 8,11 ---- ! == 676 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) |
|
From: Tom H. <to...@co...> - 2014-04-30 02:13:19
|
valgrind revision: 13919 VEX revision: 2849 C compiler: gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7) GDB: GNU gdb (GDB) Fedora 7.6.1-46.fc19 Assembler: GNU assembler version 2.23.52.0.1-9.fc19 20130226 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 19 (Schrödingerâs Cat) Nightly build on bristol ( x86_64, Fedora 19 (Schrödingerâs Cat) ) Started at 2014-04-30 02:31:27 BST Ended at 2014-04-30 03:13:06 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 676 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/hackedbz2 (stderr) |