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
(2) |
2
(7) |
3
(1) |
4
(9) |
5
|
|
6
(7) |
7
(10) |
8
(23) |
9
(19) |
10
(21) |
11
(14) |
12
(15) |
|
13
(11) |
14
(7) |
15
(20) |
16
(21) |
17
(20) |
18
(20) |
19
(19) |
|
20
(24) |
21
(22) |
22
(19) |
23
(17) |
24
(26) |
25
(15) |
26
(16) |
|
27
(8) |
28
(10) |
29
(24) |
30
(21) |
31
(19) |
|
|
|
From: Andrew C. <ajc...@gm...> - 2013-01-13 20:27:13
|
I've written a patch to add wrappers (as opposed to replacements) for the malloc() et al. functions (attached), since I want to be able to track calls to the memory allocator without changing its behavior. After testing, it seems that these wrappers are actually slower than the replacements - despite the fact that they are ultimately calling the system allocator. Any ideas why I might be seeing this behaviour? I'm guessing it might be due to the extra overhead when using the CALL_FN_* functions. Any interest in including such a patch in the baseline, or a better idea for how I could do it? I'm planning to use this in my tool. Andrew |
|
From: <sv...@va...> - 2013-01-13 15:19:01
|
philippe 2013-01-13 15:18:51 +0000 (Sun, 13 Jan 2013)
New Revision: 13227
Log:
Comment only changes
Modified files:
trunk/coregrind/m_execontext.c
Modified: trunk/coregrind/m_execontext.c (+6 -4)
===================================================================
--- trunk/coregrind/m_execontext.c 2013-01-13 15:01:21 +00:00 (rev 13226)
+++ trunk/coregrind/m_execontext.c 2013-01-13 15:18:51 +00:00 (rev 13227)
@@ -45,9 +45,10 @@
/*--- Low-level ExeContext storage. ---*/
/*------------------------------------------------------------*/
-/* The first 4 IP values are used in comparisons to remove duplicate
- errors, and for comparing against suppression specifications. The
- rest are purely informational (but often important).
+/* Depending on VgRes, the first 2, 4 or all IP values are used in
+ comparisons to remove duplicate errors, and for comparing against
+ suppression specifications. If not used in comparison, the rest
+ are purely informational (but often important).
The contexts are stored in a traditional chained hash table, so as
to allow quick determination of whether a new context already
@@ -147,7 +148,8 @@
Addr ips[1];
ips[0] = 0;
null_ExeContext = record_ExeContext_wrk2(ips, 1);
- vg_assert(null_ExeContext->ecu == 4); // null execontext must be the first one.
+ // null execontext must be the first one created and get ecu 4.
+ vg_assert(null_ExeContext->ecu == 4);
}
init_done = True;
|
|
From: <sv...@va...> - 2013-01-13 15:01:33
|
philippe 2013-01-13 15:01:21 +0000 (Sun, 13 Jan 2013)
New Revision: 13226
Log:
no recording of execontext for track origin in brk/signal stack when track-origin=no
Modified files:
trunk/memcheck/mc_main.c
Modified: trunk/memcheck/mc_main.c (+64 -53)
===================================================================
--- trunk/memcheck/mc_main.c 2013-01-13 13:59:17 +00:00 (rev 13225)
+++ trunk/memcheck/mc_main.c 2013-01-13 15:01:21 +00:00 (rev 13226)
@@ -1622,10 +1622,16 @@
}
static
-void make_mem_undefined_w_tid ( Addr a, SizeT len, ThreadId tid ) {
+void mc_new_mem_w_tid_make_ECU ( Addr a, SizeT len, ThreadId tid )
+{
make_mem_undefined_w_tid_and_okind ( a, len, tid, MC_OKIND_UNKNOWN );
}
+static
+void mc_new_mem_w_tid_no_ECU ( Addr a, SizeT len, ThreadId tid )
+{
+ MC_(make_mem_undefined_w_otag) ( a, len, MC_OKIND_UNKNOWN );
+}
void MC_(make_mem_defined) ( Addr a, SizeT len )
{
@@ -6155,6 +6161,7 @@
VG_(track_new_mem_stack_160_w_ECU) ( mc_new_mem_stack_160_w_ECU );
# endif
VG_(track_new_mem_stack_w_ECU) ( mc_new_mem_stack_w_ECU );
+ VG_(track_new_mem_stack_signal) ( mc_new_mem_w_tid_make_ECU );
} else {
/* Not doing origin tracking */
# ifdef PERF_FAST_STACK
@@ -6169,8 +6176,64 @@
VG_(track_new_mem_stack_160) ( mc_new_mem_stack_160 );
# endif
VG_(track_new_mem_stack) ( mc_new_mem_stack );
+ VG_(track_new_mem_stack_signal) ( mc_new_mem_w_tid_no_ECU );
}
+ // We assume that brk()/sbrk() does not initialise new memory. Is this
+ // accurate? John Reiser says:
+ //
+ // 0) sbrk() can *decrease* process address space. No zero fill is done
+ // for a decrease, not even the fragment on the high end of the last page
+ // that is beyond the new highest address. For maximum safety and
+ // portability, then the bytes in the last page that reside above [the
+ // new] sbrk(0) should be considered to be uninitialized, but in practice
+ // it is exceedingly likely that they will retain their previous
+ // contents.
+ //
+ // 1) If an increase is large enough to require new whole pages, then
+ // those new whole pages (like all new pages) are zero-filled by the
+ // operating system. So if sbrk(0) already is page aligned, then
+ // sbrk(PAGE_SIZE) *does* zero-fill the new memory.
+ //
+ // 2) Any increase that lies within an existing allocated page is not
+ // changed. So if (x = sbrk(0)) is not page aligned, then
+ // sbrk(PAGE_SIZE) yields ((PAGE_SIZE -1) & -x) bytes which keep their
+ // existing contents, and an additional PAGE_SIZE bytes which are zeroed.
+ // ((PAGE_SIZE -1) & x) of them are "covered" by the sbrk(), and the rest
+ // of them come along for the ride because the operating system deals
+ // only in whole pages. Again, for maximum safety and portability, then
+ // anything that lives above [the new] sbrk(0) should be considered
+ // uninitialized, but in practice will retain previous contents [zero in
+ // this case.]"
+ //
+ // In short:
+ //
+ // A key property of sbrk/brk is that new whole pages that are supplied
+ // by the operating system *do* get initialized to zero.
+ //
+ // As for the portability of all this:
+ //
+ // sbrk and brk are not POSIX. However, any system that is a derivative
+ // of *nix has sbrk and brk because there are too many softwares (such as
+ // the Bourne shell) which rely on the traditional memory map (.text,
+ // .data+.bss, stack) and the existence of sbrk/brk.
+ //
+ // So we should arguably observe all this. However:
+ // - The current inaccuracy has caused maybe one complaint in seven years(?)
+ // - Relying on the zeroed-ness of whole brk'd pages is pretty grotty... I
+ // doubt most programmers know the above information.
+ // So I'm not terribly unhappy with marking it as undefined. --njn.
+ //
+ // [More: I think most of what John said only applies to sbrk(). It seems
+ // that brk() always deals in whole pages. And since this event deals
+ // directly with brk(), not with sbrk(), perhaps it would be reasonable to
+ // just mark all memory it allocates as defined.]
+ //
+ if (MC_(clo_mc_level) == 3)
+ VG_(track_new_mem_brk) ( mc_new_mem_w_tid_make_ECU );
+ else
+ VG_(track_new_mem_brk) ( mc_new_mem_w_tid_no_ECU );
+
/* This origin tracking cache is huge (~100M), so only initialise
if we need it. */
if (MC_(clo_mc_level) >= 3) {
@@ -6404,58 +6467,6 @@
VG_(needs_xml_output) ();
VG_(track_new_mem_startup) ( mc_new_mem_startup );
- VG_(track_new_mem_stack_signal)( make_mem_undefined_w_tid );
- // We assume that brk()/sbrk() does not initialise new memory. Is this
- // accurate? John Reiser says:
- //
- // 0) sbrk() can *decrease* process address space. No zero fill is done
- // for a decrease, not even the fragment on the high end of the last page
- // that is beyond the new highest address. For maximum safety and
- // portability, then the bytes in the last page that reside above [the
- // new] sbrk(0) should be considered to be uninitialized, but in practice
- // it is exceedingly likely that they will retain their previous
- // contents.
- //
- // 1) If an increase is large enough to require new whole pages, then
- // those new whole pages (like all new pages) are zero-filled by the
- // operating system. So if sbrk(0) already is page aligned, then
- // sbrk(PAGE_SIZE) *does* zero-fill the new memory.
- //
- // 2) Any increase that lies within an existing allocated page is not
- // changed. So if (x = sbrk(0)) is not page aligned, then
- // sbrk(PAGE_SIZE) yields ((PAGE_SIZE -1) & -x) bytes which keep their
- // existing contents, and an additional PAGE_SIZE bytes which are zeroed.
- // ((PAGE_SIZE -1) & x) of them are "covered" by the sbrk(), and the rest
- // of them come along for the ride because the operating system deals
- // only in whole pages. Again, for maximum safety and portability, then
- // anything that lives above [the new] sbrk(0) should be considered
- // uninitialized, but in practice will retain previous contents [zero in
- // this case.]"
- //
- // In short:
- //
- // A key property of sbrk/brk is that new whole pages that are supplied
- // by the operating system *do* get initialized to zero.
- //
- // As for the portability of all this:
- //
- // sbrk and brk are not POSIX. However, any system that is a derivative
- // of *nix has sbrk and brk because there are too many softwares (such as
- // the Bourne shell) which rely on the traditional memory map (.text,
- // .data+.bss, stack) and the existence of sbrk/brk.
- //
- // So we should arguably observe all this. However:
- // - The current inaccuracy has caused maybe one complaint in seven years(?)
- // - Relying on the zeroed-ness of whole brk'd pages is pretty grotty... I
- // doubt most programmers know the above information.
- // So I'm not terribly unhappy with marking it as undefined. --njn.
- //
- // [More: I think most of what John said only applies to sbrk(). It seems
- // that brk() always deals in whole pages. And since this event deals
- // directly with brk(), not with sbrk(), perhaps it would be reasonable to
- // just mark all memory it allocates as defined.]
- //
- VG_(track_new_mem_brk) ( make_mem_undefined_w_tid );
// Handling of mmap and mprotect isn't simple (well, it is simple,
// but the justification isn't.) See comments above, just prior to
|
|
From: Philippe W. <phi...@sk...> - 2013-01-13 04:58:05
|
valgrind revision: 13224 VEX revision: 2633 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) 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.3.1-3.fc16.ppc64 ppc64 Vendor version: Fedora release 16 (Verne) Nightly build on gcc110 ( Fedora release 16 (Verne), ppc64 ) Started at 2013-01-12 20:00:25 PST Ended at 2013-01-12 20:56:14 PST 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 == 547 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/test_dfp2 (stdout) none/tests/ppc32/test_dfp2 (stderr) none/tests/ppc64/test_dfp2 (stdout) none/tests/ppc64/test_dfp2 (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (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 == 543 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/test_dfp2 (stdout) none/tests/ppc32/test_dfp2 (stderr) none/tests/ppc64/test_dfp2 (stdout) none/tests/ppc64/test_dfp2 (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Jan 12 20:25:52 2013 --- new.short Sat Jan 12 20:56:14 2013 *************** *** 8,10 **** ! == 543 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) --- 8,10 ---- ! == 547 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) |
|
From: Rich C. <rc...@wi...> - 2013-01-13 04:17:20
|
valgrind revision: 13224
VEX revision: 2633
C compiler: gcc (SUSE Linux) 4.7.1 20120723 [gcc-4_7-branch revision 189773]
Assembler: GNU assembler (GNU Binutils; openSUSE 12.2) 2.22
C library: GNU C Library stable release version 2.15 (20120628)
uname -mrs: Linux 3.4.11-2.16-desktop x86_64
Vendor version: Welcome to openSUSE 12.2 "Mantis" - Kernel %r (%t).
Nightly build on ultra ( gcc 4.5.1 Linux 3.4.11-2.16-desktop x86_64 )
Started at 2013-01-12 21:30:01 CST
Ended at 2013-01-12 22:17:08 CST
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
== 639 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcinfcallRU (stderr)
gdbserver_tests/mcinfcallWSRU (stderr)
memcheck/tests/origin5-bz2 (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
== 635 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcinfcallRU (stderr)
gdbserver_tests/mcinfcallWSRU (stderr)
memcheck/tests/origin5-bz2 (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat Jan 12 21:54:26 2013
--- new.short Sat Jan 12 22:17:08 2013
***************
*** 8,10 ****
! == 635 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcinfcallRU (stderr)
--- 8,10 ----
! == 639 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcinfcallRU (stderr)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2013-01-12 21:56:16.212809393 -0600
+++ mcinfcallRU.stderr.out 2013-01-12 22:08:15.130842167 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2013-01-12 21:56:16.214809337 -0600
+++ mcinfcallWSRU.stderr.out 2013-01-12 22:08:17.658771934 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-01-12 21:58:48.842571402 -0600
+++ origin5-bz2.stderr.out 2013-01-12 22:10:08.138702315 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2013-01-12 21:58:21.821321724 -0600
+++ origin5-bz2.stderr.out 2013-01-12 22:10:08.138702315 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2013-01-12 21:57:46.721295999 -0600
+++ origin5-bz2.stderr.out 2013-01-12 22:10:08.138702315 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2013-01-12 21:58:16.064481583 -0600
+++ origin5-bz2.stderr.out 2013-01-12 22:10:08.138702315 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2013-01-12 21:58:20.053370817 -0600
+++ origin5-bz2.stderr.out 2013-01-12 22:10:08.138702315 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
=================================================
./valgrind-old/gdbserver_tests/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2013-01-12 21:32:19.762383673 -0600
+++ mcinfcallRU.stderr.out 2013-01-12 21:45:39.508461188 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2013-01-12 21:32:19.764383615 -0600
+++ mcinfcallWSRU.stderr.out 2013-01-12 21:45:42.083390490 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-01-12 21:38:16.086618059 -0600
+++ origin5-bz2.stderr.out 2013-01-12 21:47:30.302406903 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2013-01-12 21:36:55.518833162 -0600
+++ origin5-bz2.stderr.out 2013-01-12 21:47:30.302406903 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2013-01-12 21:32:58.069335212 -0600
+++ origin5-bz2.stderr.out 2013-01-12 21:47:30.302406903 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2013-01-12 21:35:15.616570111 -0600
+++ origin5-bz2.stderr.out 2013-01-12 21:47:30.302406903 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2013-01-12 21:36:03.580255923 -0600
+++ origin5-bz2.stderr.out 2013-01-12 21:47:30.302406903 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
|
|
From: Christian B. <bor...@de...> - 2013-01-13 03:14:09
|
valgrind revision: 13224 VEX revision: 2633 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.21.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.42-0.7-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP2 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP1 gcc 4.3.4 on z196 (s390x) ) Started at 2013-01-13 03:45:01 CET Ended at 2013-01-13 04:13:56 CET 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 == 624 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 ... done Regression test results follow == 620 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 13 03:59:34 2013 --- new.short Sun Jan 13 04:13:56 2013 *************** *** 8,10 **** ! == 620 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == --- 8,10 ---- ! == 624 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Christian B. <bor...@de...> - 2013-01-13 02:47:15
|
valgrind revision: VEX revision: C compiler: gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9bb4) Assembler: GNU assembler version 2.21.51.0.6-6bb6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.6.8-57.x.20121204-s390xperformance s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 15 with devel libc/toolchain on z196 (s390x) ) Started at 2013-01-12 03:45:01 CET Ended at 2013-01-13 03:47:18 CET Results differ from 24 hours ago failed Last 20 lines of verbose log follow echo ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Jan 13 03:46:38 2013 --- new.short Sun Jan 13 03:47:18 2013 *************** *** 1,5 **** ! Checking out valgrind source tree ... done ! Configuring valgrind ... done ! Building valgrind ... done ! Running regression tests ... \ No newline at end of file --- 1,3 ---- + failed ! Last 20 lines of verbose log follow echo |
|
From: <sv...@va...> - 2013-01-13 02:34:37
|
florian 2013-01-13 02:34:28 +0000 (Sun, 13 Jan 2013)
New Revision: 2633
Log:
Fix a comment and add one.
Modified files:
trunk/priv/guest_s390_helpers.c
trunk/priv/s390_defs.h
Modified: trunk/priv/s390_defs.h (+1 -1)
===================================================================
--- trunk/priv/s390_defs.h 2013-01-13 02:29:05 +00:00 (rev 2632)
+++ trunk/priv/s390_defs.h 2013-01-13 02:34:28 +00:00 (rev 2633)
@@ -85,7 +85,7 @@
S390_FPC_BFP_ROUND_POSINF = 2,
S390_FPC_BFP_ROUND_NEGINF = 3,
/* 4,5,6 are not allowed */
- S390_FPC_BFP_ROUND_PREPARE_SHORT = 7
+ S390_FPC_BFP_ROUND_PREPARE_SHORT = 7 /* floating point extension facility */
} s390_fpc_bfp_round_t;
Modified: trunk/priv/guest_s390_helpers.c (+1 -1)
===================================================================
--- trunk/priv/guest_s390_helpers.c 2013-01-13 02:29:05 +00:00 (rev 2632)
+++ trunk/priv/guest_s390_helpers.c 2013-01-13 02:34:28 +00:00 (rev 2633)
@@ -911,7 +911,7 @@
/*--- Helper for condition code. ---*/
/*------------------------------------------------------------*/
-/* Convert an IRRoundingMode value to s390_round_t */
+/* Convert an IRRoundingMode value to s390_bfp_round_t */
#if defined(VGA_s390x)
static s390_bfp_round_t
decode_bfp_rounding_mode(UInt irrm)
|
|
From: <sv...@va...> - 2013-01-13 02:29:17
|
florian 2013-01-13 02:29:05 +0000 (Sun, 13 Jan 2013)
New Revision: 2632
Log:
s390: Support insns to convert between DFP values and signed/unsigned
integers. Patch by Maran Pakkirisamy (ma...@li...).
Part of fixing BZ 307113.
Modified files:
trunk/priv/guest_s390_defs.h
trunk/priv/guest_s390_helpers.c
trunk/priv/guest_s390_toIR.c
trunk/priv/host_s390_defs.c
trunk/priv/host_s390_defs.h
trunk/priv/host_s390_isel.c
Modified: trunk/priv/host_s390_isel.c (+58 -0)
===================================================================
--- trunk/priv/host_s390_isel.c 2013-01-12 22:02:07 +00:00 (rev 2631)
+++ trunk/priv/host_s390_isel.c 2013-01-13 02:29:05 +00:00 (rev 2632)
@@ -1128,6 +1128,12 @@
case Iop_F128toI64S: conv = S390_BFP_F128_TO_I64; goto do_convert_128;
case Iop_F128toI32U: conv = S390_BFP_F128_TO_U32; goto do_convert_128;
case Iop_F128toI64U: conv = S390_BFP_F128_TO_U64; goto do_convert_128;
+ case Iop_D64toI32S: conv = S390_DFP_D64_TO_I32; goto do_convert_dfp;
+ case Iop_D64toI32U: conv = S390_DFP_D64_TO_U32; goto do_convert_dfp;
+ case Iop_D64toI64U: conv = S390_DFP_D64_TO_U64; goto do_convert_dfp;
+ case Iop_D128toI32S: conv = S390_DFP_D128_TO_I32; goto do_convert_dfp128;
+ case Iop_D128toI32U: conv = S390_DFP_D128_TO_U32; goto do_convert_dfp128;
+ case Iop_D128toI64U: conv = S390_DFP_D128_TO_U64; goto do_convert_dfp128;
do_convert: {
s390_bfp_round_t rounding_mode;
@@ -1162,6 +1168,39 @@
return res;
}
+ do_convert_dfp: {
+ s390_dfp_round_t rounding_mode;
+
+ res = newVRegI(env);
+ h1 = s390_isel_dfp_expr(env, arg2); /* Process operand */
+
+ rounding_mode = get_dfp_rounding_mode(env, arg1);
+ addInstr(env, s390_insn_dfp_convert(size, conv, res, h1,
+ rounding_mode));
+ return res;
+ }
+
+ do_convert_dfp128: {
+ s390_dfp_round_t rounding_mode;
+ HReg op_hi, op_lo, f13, f15;
+
+ res = newVRegI(env);
+ s390_isel_dfp128_expr(&op_hi, &op_lo, env, arg2); /* operand */
+
+ /* We use non-virtual registers r13 and r15 as pair */
+ f13 = make_fpr(13);
+ f15 = make_fpr(15);
+
+ /* operand --> (f13, f15) */
+ addInstr(env, s390_insn_move(8, f13, op_hi));
+ addInstr(env, s390_insn_move(8, f15, op_lo));
+
+ rounding_mode = get_dfp_rounding_mode(env, arg1);
+ addInstr(env, s390_insn_dfp128_convert_from(size, conv, res, f13,
+ f15, rounding_mode));
+ return res;
+ }
+
case Iop_8HLto16:
case Iop_16HLto32:
case Iop_32HLto64: {
@@ -2507,6 +2546,9 @@
switch (expr->Iex.Unop.op) {
case Iop_D64toD128: conv = S390_DFP_D64_TO_D128; goto convert_dfp;
+ case Iop_I32StoD128: conv = S390_DFP_I32_TO_D128; goto convert_int;
+ case Iop_I32UtoD128: conv = S390_DFP_U32_TO_D128; goto convert_int;
+ case Iop_I64UtoD128: conv = S390_DFP_U64_TO_D128; goto convert_int;
default:
goto irreducible;
}
@@ -2516,6 +2558,11 @@
addInstr(env, s390_insn_dfp128_convert_to(16, conv, f12, f14, op));
goto move_dst;
+ convert_int:
+ op = s390_isel_int_expr(env, left);
+ addInstr(env, s390_insn_dfp128_convert_to(16, conv, f12, f14, op));
+ goto move_dst;
+
move_dst:
/* Move result to virtual destination registers */
*dst_hi = newVRegF(env);
@@ -2605,11 +2652,16 @@
switch (op) {
case Iop_D64toD32: conv = S390_DFP_D64_TO_D32; goto convert_dfp;
+ case Iop_I64UtoD64: conv = S390_DFP_U64_TO_D64; goto convert_int;
convert_dfp:
h1 = s390_isel_dfp_expr(env, left);
goto convert;
+ convert_int:
+ h1 = s390_isel_int_expr(env, left);
+ goto convert;
+
convert: {
s390_dfp_round_t rounding_mode;
/* convert-from-fixed and load-rounded have a rounding mode field
@@ -2707,11 +2759,17 @@
switch (op) {
case Iop_D32toD64: conv = S390_DFP_D32_TO_D64; goto convert_dfp1;
+ case Iop_I32StoD64: conv = S390_DFP_I32_TO_D64; goto convert_int1;
+ case Iop_I32UtoD64: conv = S390_DFP_U32_TO_D64; goto convert_int1;
convert_dfp1:
h1 = s390_isel_dfp_expr(env, left);
goto convert1;
+ convert_int1:
+ h1 = s390_isel_int_expr(env, left);
+ goto convert1;
+
convert1:
dst = newVRegF(env);
/* No rounding mode is needed for these conversions. Just stick
Modified: trunk/priv/guest_s390_helpers.c (+258 -0)
===================================================================
--- trunk/priv/guest_s390_helpers.c 2013-01-12 22:02:07 +00:00 (rev 2631)
+++ trunk/priv/guest_s390_helpers.c 2013-01-13 02:29:05 +00:00 (rev 2632)
@@ -1155,6 +1155,33 @@
psw >> 28; /* cc */ \
})
+/* Convert an IRRoundingModeDFP value to s390_dfp_round_t */
+#if defined(VGA_s390x)
+static s390_dfp_round_t
+decode_dfp_rounding_mode(UInt irrm)
+{
+ switch (irrm) {
+ case Irrm_DFP_NEAREST:
+ return S390_DFP_ROUND_NEAREST_EVEN_4;
+ case Irrm_DFP_NegINF:
+ return S390_DFP_ROUND_NEGINF_7;
+ case Irrm_DFP_PosINF:
+ return S390_DFP_ROUND_POSINF_6;
+ case Irrm_DFP_ZERO:
+ return S390_DFP_ROUND_ZERO_5;
+ case Irrm_DFP_NEAREST_TIE_AWAY_0:
+ return S390_DFP_ROUND_NEAREST_TIE_AWAY_0_1;
+ case Irrm_DFP_PREPARE_SHORTER:
+ return S390_DFP_ROUND_PREPARE_SHORT_3;
+ case Irrm_DFP_AWAY_FROM_ZERO:
+ return S390_DFP_ROUND_AWAY_0;
+ case Irrm_DFP_NEAREST_TIE_TOWARD_0:
+ return S390_DFP_ROUND_NEAREST_TIE_TOWARD_0;
+ }
+ vpanic("decode_dfp_rounding_mode");
+}
+#endif
+
#define S390_CC_FOR_DFP_RESULT(cc_dep1) \
({ \
__asm__ volatile ( \
@@ -1204,7 +1231,217 @@
psw >> 28; /* cc */ \
})
+#define S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,rounding_mode) \
+ ({ \
+ __asm__ volatile ( \
+ opcode ",0,%[op]," #rounding_mode ",0\n\t" \
+ "ipm %[psw]\n\t" : [psw] "=d"(psw) \
+ : [op] "f"(cc_dep1) \
+ : "cc", "r0"); \
+ psw >> 28; /* cc */ \
+ })
+#define S390_CC_FOR_DFP_CONVERT(opcode,cc_dep1,cc_dep2) \
+ ({ \
+ UInt cc; \
+ switch (decode_dfp_rounding_mode(cc_dep2)) { \
+ case S390_DFP_ROUND_NEAREST_TIE_AWAY_0_1: \
+ case S390_DFP_ROUND_NEAREST_TIE_AWAY_0_12: \
+ cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,1); \
+ break; \
+ case S390_DFP_ROUND_PREPARE_SHORT_3: \
+ case S390_DFP_ROUND_PREPARE_SHORT_15: \
+ cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,3); \
+ break; \
+ case S390_DFP_ROUND_NEAREST_EVEN_4: \
+ case S390_DFP_ROUND_NEAREST_EVEN_8: \
+ cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,4); \
+ break; \
+ case S390_DFP_ROUND_ZERO_5: \
+ case S390_DFP_ROUND_ZERO_9: \
+ cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,5); \
+ break; \
+ case S390_DFP_ROUND_POSINF_6: \
+ case S390_DFP_ROUND_POSINF_10: \
+ cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,6); \
+ break; \
+ case S390_DFP_ROUND_NEGINF_7: \
+ case S390_DFP_ROUND_NEGINF_11: \
+ cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,7); \
+ break; \
+ case S390_DFP_ROUND_NEAREST_TIE_TOWARD_0: \
+ cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,13); \
+ break; \
+ case S390_DFP_ROUND_AWAY_0: \
+ cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,14); \
+ break; \
+ default: \
+ vpanic("unexpected dfp rounding mode"); \
+ } \
+ cc; \
+ })
+
+#define S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,rounding_mode) \
+ ({ \
+ __asm__ volatile ( \
+ opcode ",0,%[op]," #rounding_mode ",0\n\t" \
+ "ipm %[psw]\n\t" : [psw] "=d"(psw) \
+ : [op] "f"(cc_dep1) \
+ : "cc", "r0"); \
+ psw >> 28; /* cc */ \
+ })
+
+#define S390_CC_FOR_DFP_UCONVERT(opcode,cc_dep1,cc_dep2) \
+ ({ \
+ UInt cc; \
+ switch (decode_dfp_rounding_mode(cc_dep2)) { \
+ case S390_DFP_ROUND_NEAREST_TIE_AWAY_0_1: \
+ case S390_DFP_ROUND_NEAREST_TIE_AWAY_0_12: \
+ cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,1); \
+ break; \
+ case S390_DFP_ROUND_PREPARE_SHORT_3: \
+ case S390_DFP_ROUND_PREPARE_SHORT_15: \
+ cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,3); \
+ break; \
+ case S390_DFP_ROUND_NEAREST_EVEN_4: \
+ case S390_DFP_ROUND_NEAREST_EVEN_8: \
+ cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,4); \
+ break; \
+ case S390_DFP_ROUND_ZERO_5: \
+ case S390_DFP_ROUND_ZERO_9: \
+ cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,5); \
+ break; \
+ case S390_DFP_ROUND_POSINF_6: \
+ case S390_DFP_ROUND_POSINF_10: \
+ cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,6); \
+ break; \
+ case S390_DFP_ROUND_NEGINF_7: \
+ case S390_DFP_ROUND_NEGINF_11: \
+ cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,7); \
+ break; \
+ case S390_DFP_ROUND_NEAREST_TIE_TOWARD_0: \
+ cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,13); \
+ break; \
+ case S390_DFP_ROUND_AWAY_0: \
+ cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,14); \
+ break; \
+ default: \
+ vpanic("unexpected dfp rounding mode"); \
+ } \
+ cc; \
+ })
+
+#define S390_CC_FOR_DFP128_CONVERT_AUX(opcode,hi,lo,rounding_mode) \
+ ({ \
+ __asm__ volatile ( \
+ "ldr 4,%[high]\n\t" \
+ "ldr 6,%[low]\n\t" \
+ opcode ",0,4," #rounding_mode ",0\n\t" \
+ "ipm %[psw]\n\t" : [psw] "=d"(psw) \
+ : [high] "f"(hi), [low] "f"(lo) \
+ : "cc", "r0", "f4", "f6"); \
+ psw >> 28; /* cc */ \
+ })
+
+#define S390_CC_FOR_DFP128_CONVERT(opcode,cc_dep1,cc_dep2,cc_ndep) \
+ ({ \
+ UInt cc; \
+ /* Recover the original DEP2 value. See comment near \
+ s390_cc_thunk_put3 for rationale. */ \
+ cc_dep2 = cc_dep2 ^ cc_ndep; \
+ switch (decode_dfp_rounding_mode(cc_ndep)) { \
+ case S390_DFP_ROUND_NEAREST_TIE_AWAY_0_1: \
+ case S390_DFP_ROUND_NEAREST_TIE_AWAY_0_12: \
+ cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,1); \
+ break; \
+ case S390_DFP_ROUND_PREPARE_SHORT_3: \
+ case S390_DFP_ROUND_PREPARE_SHORT_15: \
+ cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,3); \
+ break; \
+ case S390_DFP_ROUND_NEAREST_EVEN_4: \
+ case S390_DFP_ROUND_NEAREST_EVEN_8: \
+ cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,4); \
+ break; \
+ case S390_DFP_ROUND_ZERO_5: \
+ case S390_DFP_ROUND_ZERO_9: \
+ cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,5); \
+ break; \
+ case S390_DFP_ROUND_POSINF_6: \
+ case S390_DFP_ROUND_POSINF_10: \
+ cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,6); \
+ break; \
+ case S390_DFP_ROUND_NEGINF_7: \
+ case S390_DFP_ROUND_NEGINF_11: \
+ cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,7); \
+ break; \
+ case S390_DFP_ROUND_NEAREST_TIE_TOWARD_0: \
+ cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,13); \
+ break; \
+ case S390_DFP_ROUND_AWAY_0: \
+ cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,14); \
+ break; \
+ default: \
+ vpanic("unexpected dfp rounding mode"); \
+ } \
+ cc; \
+ })
+
+#define S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,hi,lo,rounding_mode) \
+ ({ \
+ __asm__ volatile ( \
+ "ldr 4,%[high]\n\t" \
+ "ldr 6,%[low]\n\t" \
+ opcode ",0,4," #rounding_mode ",0\n\t" \
+ "ipm %[psw]\n\t" : [psw] "=d"(psw) \
+ : [high] "f"(hi), [low] "f"(lo) \
+ : "cc", "r0", "f4", "f6"); \
+ psw >> 28; /* cc */ \
+ })
+
+#define S390_CC_FOR_DFP128_UCONVERT(opcode,cc_dep1,cc_dep2,cc_ndep) \
+ ({ \
+ UInt cc; \
+ /* Recover the original DEP2 value. See comment near \
+ s390_cc_thunk_put3 for rationale. */ \
+ cc_dep2 = cc_dep2 ^ cc_ndep; \
+ switch (decode_dfp_rounding_mode(cc_ndep)) { \
+ case S390_DFP_ROUND_NEAREST_TIE_AWAY_0_1: \
+ case S390_DFP_ROUND_NEAREST_TIE_AWAY_0_12: \
+ cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,1); \
+ break; \
+ case S390_DFP_ROUND_PREPARE_SHORT_3: \
+ case S390_DFP_ROUND_PREPARE_SHORT_15: \
+ cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,3); \
+ break; \
+ case S390_DFP_ROUND_NEAREST_EVEN_4: \
+ case S390_DFP_ROUND_NEAREST_EVEN_8: \
+ cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,4); \
+ break; \
+ case S390_DFP_ROUND_ZERO_5: \
+ case S390_DFP_ROUND_ZERO_9: \
+ cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,5); \
+ break; \
+ case S390_DFP_ROUND_POSINF_6: \
+ case S390_DFP_ROUND_POSINF_10: \
+ cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,6); \
+ break; \
+ case S390_DFP_ROUND_NEGINF_7: \
+ case S390_DFP_ROUND_NEGINF_11: \
+ cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,7); \
+ break; \
+ case S390_DFP_ROUND_NEAREST_TIE_TOWARD_0: \
+ cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,13); \
+ break; \
+ case S390_DFP_ROUND_AWAY_0: \
+ cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,14); \
+ break; \
+ default: \
+ vpanic("unexpected dfp rounding mode"); \
+ } \
+ cc; \
+ })
+
+
/* Return the value of the condition code from the supplied thunk parameters.
This is not the value of the PSW. It is the value of the 2 CC bits within
the PSW. The returned value is thusly in the interval [0:3]. */
@@ -1446,6 +1683,27 @@
return S390_CC_FOR_DFP128_TD(".insn rxe, 0xed0000000059", cc_dep1,
cc_dep2, cc_ndep);
+ case S390_CC_OP_DFP_64_TO_INT_32: /* CFDTR */
+ return S390_CC_FOR_DFP_CONVERT(".insn rrf,0xb9410000", cc_dep1, cc_dep2);
+
+ case S390_CC_OP_DFP_128_TO_INT_32: /* CFXTR */
+ return S390_CC_FOR_DFP128_CONVERT(".insn rrf,0xb9490000", cc_dep1,
+ cc_dep2, cc_ndep);
+
+ case S390_CC_OP_DFP_64_TO_UINT_32: /* CLFDTR */
+ return S390_CC_FOR_DFP_UCONVERT(".insn rrf,0xb9430000", cc_dep1, cc_dep2);
+
+ case S390_CC_OP_DFP_128_TO_UINT_32: /* CLFXTR */
+ return S390_CC_FOR_DFP128_UCONVERT(".insn rrf,0xb94b0000", cc_dep1,
+ cc_dep2, cc_ndep);
+
+ case S390_CC_OP_DFP_64_TO_UINT_64: /* CLGDTR */
+ return S390_CC_FOR_DFP_UCONVERT(".insn rrf,0xb9420000", cc_dep1, cc_dep2);
+
+ case S390_CC_OP_DFP_128_TO_UINT_64: /* CLGXTR */
+ return S390_CC_FOR_DFP128_UCONVERT(".insn rrf,0xb94a0000", cc_dep1,
+ cc_dep2, cc_ndep);
+
default:
break;
}
Modified: trunk/priv/host_s390_defs.h (+13 -1)
===================================================================
--- trunk/priv/host_s390_defs.h 2013-01-12 22:02:07 +00:00 (rev 2631)
+++ trunk/priv/host_s390_defs.h 2013-01-13 02:29:05 +00:00 (rev 2632)
@@ -245,7 +245,19 @@
S390_DFP_D32_TO_D64,
S390_DFP_D64_TO_D32,
S390_DFP_D64_TO_D128,
- S390_DFP_D128_TO_D64
+ S390_DFP_D128_TO_D64,
+ S390_DFP_I32_TO_D64,
+ S390_DFP_I32_TO_D128,
+ S390_DFP_U32_TO_D64,
+ S390_DFP_U32_TO_D128,
+ S390_DFP_U64_TO_D64,
+ S390_DFP_U64_TO_D128,
+ S390_DFP_D64_TO_I32,
+ S390_DFP_D64_TO_U32,
+ S390_DFP_D64_TO_U64,
+ S390_DFP_D128_TO_I32,
+ S390_DFP_D128_TO_U32,
+ S390_DFP_D128_TO_U64
} s390_dfp_conv_t;
/* The kind of binary DFP operations */
Modified: trunk/priv/host_s390_defs.c (+219 -3)
===================================================================
--- trunk/priv/host_s390_defs.c 2013-01-12 22:02:07 +00:00 (rev 2631)
+++ trunk/priv/host_s390_defs.c 2013-01-13 02:29:05 +00:00 (rev 2632)
@@ -4137,6 +4137,92 @@
static UChar *
+s390_emit_CDFTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM)) {
+ s390_disasm(ENC5(MNM, FPR, UINT, GPR, UINT), "cdftr", r1, m3, r2, m4);
+ }
+
+ return emit_RRF2(p, 0xb9510000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CXFTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM)) {
+ s390_disasm(ENC5(MNM, FPR, UINT, GPR, UINT), "cxftr", r1, m3, r2, m4);
+ }
+
+ return emit_RRF2(p, 0xb9590000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CDLFTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC5(MNM, FPR, UINT, GPR, UINT), "cdlftr", r1, m3, r2, m4);
+
+ return emit_RRF2(p, 0xb9530000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CXLFTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC5(MNM, FPR, UINT, GPR, UINT), "cxlftr", r1, m3, r2, m4);
+
+ return emit_RRF2(p, 0xb95b0000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CDLGTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC5(MNM, FPR, UINT, GPR, UINT), "cdlgtr", r1, m3, r2, m4);
+
+ return emit_RRF2(p, 0xb9520000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CXLGTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC5(MNM, FPR, UINT, GPR, UINT), "cxlgtr", r1, m3, r2, m4);
+
+ return emit_RRF2(p, 0xb95a0000, m3, m4, r1, r2);
+}
+
+
+static UChar *
s390_emit_CEDTR(UChar *p, UChar r1, UChar r2)
{
if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
@@ -4157,6 +4243,92 @@
static UChar *
+s390_emit_CFDTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM)) {
+ s390_disasm(ENC5(MNM, GPR, UINT, FPR, UINT), "cfdtr", r1, m3, r2, m4);
+ }
+
+ return emit_RRF2(p, 0xb9410000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CFXTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM)) {
+ s390_disasm(ENC5(MNM, GPR, UINT, FPR, UINT), "cfxtr", r1, m3, r2, m4);
+ }
+
+ return emit_RRF2(p, 0xb9490000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CLFDTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC5(MNM, GPR, UINT, FPR, UINT), "clfdtr", r1, m3, r2, m4);
+
+ return emit_RRF2(p, 0xb9430000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CLFXTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC5(MNM, GPR, UINT, FPR, UINT), "clfxtr", r1, m3, r2, m4);
+
+ return emit_RRF2(p, 0xb94b0000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CLGDTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC5(MNM, GPR, UINT, FPR, UINT), "clgdtr", r1, m3, r2, m4);
+
+ return emit_RRF2(p, 0xb9420000, m3, m4, r1, r2);
+}
+
+
+static UChar *
+s390_emit_CLGXTR(UChar *p, UChar m3, UChar m4, UChar r1, UChar r2)
+{
+ vassert(m4 == 0);
+ vassert(s390_host_has_dfp);
+ vassert(s390_host_has_fpext);
+
+ if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
+ s390_disasm(ENC5(MNM, GPR, UINT, FPR, UINT), "clgxtr", r1, m3, r2, m4);
+
+ return emit_RRF2(p, 0xb94a0000, m3, m4, r1, r2);
+}
+
+
+static UChar *
s390_emit_DDTRA(UChar *p, UChar r3, UChar m4, UChar r1, UChar r2)
{
vassert(s390_host_has_dfp);
@@ -6367,6 +6539,18 @@
case S390_DFP_D64_TO_D32:
case S390_DFP_D64_TO_D128:
case S390_DFP_D128_TO_D64: op = "v-d2d"; break;
+ case S390_DFP_I32_TO_D64:
+ case S390_DFP_I32_TO_D128: op = "v-i2d"; break;
+ case S390_DFP_U32_TO_D64:
+ case S390_DFP_U32_TO_D128:
+ case S390_DFP_U64_TO_D64:
+ case S390_DFP_U64_TO_D128: op = "v-u2d"; break;
+ case S390_DFP_D64_TO_I32:
+ case S390_DFP_D128_TO_I32: op = "v-d2i"; break;
+ case S390_DFP_D64_TO_U32:
+ case S390_DFP_D64_TO_U64:
+ case S390_DFP_D128_TO_U32:
+ case S390_DFP_D128_TO_U64: op = "v-d2u"; break;
default: goto fail;
}
s390_sprintf(buf, "%M %R,%R", op, insn->variant.dfp_convert.dst_hi,
@@ -6505,10 +6689,22 @@
case S390_INSN_DFP_CONVERT:
switch (insn->variant.dfp_convert.tag) {
- case S390_DFP_D32_TO_D64: p += vex_sprintf(p, "4 -> "); goto common;
+ case S390_DFP_D32_TO_D64:
+ case S390_DFP_I32_TO_D64:
+ case S390_DFP_I32_TO_D128:
+ case S390_DFP_U32_TO_D64:
+ case S390_DFP_U32_TO_D128: p += vex_sprintf(p, "4 -> "); goto common;
case S390_DFP_D64_TO_D32:
- case S390_DFP_D64_TO_D128:p += vex_sprintf(p, "8 -> "); goto common;
- case S390_DFP_D128_TO_D64:p += vex_sprintf(p, "16 -> "); goto common;
+ case S390_DFP_D64_TO_D128:
+ case S390_DFP_U64_TO_D64:
+ case S390_DFP_U64_TO_D128:
+ case S390_DFP_D64_TO_I32:
+ case S390_DFP_D64_TO_U32:
+ case S390_DFP_D64_TO_U64: p += vex_sprintf(p, "8 -> "); goto common;
+ case S390_DFP_D128_TO_D64:
+ case S390_DFP_D128_TO_I32:
+ case S390_DFP_D128_TO_U32:
+ case S390_DFP_D128_TO_U64: p += vex_sprintf(p, "16 -> "); goto common;
default:
goto common;
}
@@ -8633,6 +8829,26 @@
switch (insn->variant.dfp_convert.tag) {
+ /* Convert to fixed */
+ case S390_DFP_D64_TO_I32: return s390_emit_CFDTR(buf, m3, m4, r1, r2);
+ case S390_DFP_D128_TO_I32: return s390_emit_CFXTR(buf, m3, m4, r1, r2);
+
+ /* Convert to logical */
+ case S390_DFP_D64_TO_U32: return s390_emit_CLFDTR(buf, m3, m4, r1, r2);
+ case S390_DFP_D128_TO_U32: return s390_emit_CLFXTR(buf, m3, m4, r1, r2);
+ case S390_DFP_D64_TO_U64: return s390_emit_CLGDTR(buf, m3, m4, r1, r2);
+ case S390_DFP_D128_TO_U64: return s390_emit_CLGXTR(buf, m3, m4, r1, r2);
+
+ /* Convert from fixed */
+ case S390_DFP_I32_TO_D64: return s390_emit_CDFTR(buf, 0, m4, r1, r2);
+ case S390_DFP_I32_TO_D128: return s390_emit_CXFTR(buf, 0, m4, r1, r2);
+
+ /* Convert from logical */
+ case S390_DFP_U32_TO_D64: return s390_emit_CDLFTR(buf, m3, m4, r1, r2);
+ case S390_DFP_U64_TO_D64: return s390_emit_CDLGTR(buf, m3, m4, r1, r2);
+ case S390_DFP_U32_TO_D128: return s390_emit_CXLFTR(buf, m3, m4, r1, r2);
+ case S390_DFP_U64_TO_D128: return s390_emit_CXLGTR(buf, m3, m4, r1, r2);
+
/* Load lengthened */
case S390_DFP_D32_TO_D64: return s390_emit_LDETR(buf, m4, r1, r2);
case S390_DFP_D64_TO_D128: return s390_emit_LXDTR(buf, m4, r1, r2);
Modified: trunk/priv/guest_s390_defs.h (+13 -1)
===================================================================
--- trunk/priv/guest_s390_defs.h 2013-01-12 22:02:07 +00:00 (rev 2631)
+++ trunk/priv/guest_s390_defs.h 2013-01-13 02:29:05 +00:00 (rev 2632)
@@ -144,7 +144,13 @@
S390_CC_OP_DFP_TDC_128 = 46,
S390_CC_OP_DFP_TDG_32 = 47,
S390_CC_OP_DFP_TDG_64 = 48,
- S390_CC_OP_DFP_TDG_128 = 49
+ S390_CC_OP_DFP_TDG_128 = 49,
+ S390_CC_OP_DFP_64_TO_UINT_32 = 50,
+ S390_CC_OP_DFP_128_TO_UINT_32 = 51,
+ S390_CC_OP_DFP_64_TO_UINT_64 = 52,
+ S390_CC_OP_DFP_128_TO_UINT_64 = 53,
+ S390_CC_OP_DFP_64_TO_INT_32 = 54,
+ S390_CC_OP_DFP_128_TO_INT_32 = 55
};
/*------------------------------------------------------------*/
@@ -210,6 +216,12 @@
| S390_CC_OP_DFP_TDG_32 | D value | Z group | |
| S390_CC_OP_DFP_TDG_64 | D value | Z group | |
| S390_CC_OP_DFP_TDG_128 | D value hi 64 bits | D value low 64 bits | Z group |
+ | S390_CC_OP_DFP_64_TO_UINT_32 | D source | Z rounding mode | |
+ | S390_CC_OP_DFP_128_TO_UINT_32 | D source hi 64 bits | D source low 64 bits | Z rounding mode |
+ | S390_CC_OP_DFP_64_TO_UINT_64 | D source | Z rounding mode | |
+ | S390_CC_OP_DFP_128_TO_UINT_64 | D source hi 64 bits | D source low 64 bits | Z rounding mode |
+ | S390_CC_OP_DFP_64_TO_INT_64 | D source | Z rounding mode | |
+ | S390_CC_OP_DFP_128_TO_INT_64 | D source hi 64 bits | D source low 64 bits | Z rounding mode |
+--------------------------------+-----------------------+----------------------+-----------------+
*/
Modified: trunk/priv/guest_s390_toIR.c (+273 -12)
===================================================================
--- trunk/priv/guest_s390_toIR.c 2013-01-12 22:02:07 +00:00 (rev 2631)
+++ trunk/priv/guest_s390_toIR.c 2013-01-13 02:29:05 +00:00 (rev 2632)
@@ -9301,6 +9301,154 @@
}
static const HChar *
+s390_irgen_CDFTR(UChar m3 __attribute__((unused)),
+ UChar m4 __attribute__((unused)), UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op2 = newTemp(Ity_I32);
+
+ assign(op2, get_gpr_w1(r2));
+ put_dpr_dw0(r1, unop(Iop_I32StoD64, mkexpr(op2)));
+ }
+ return "cdftr";
+}
+
+static const HChar *
+s390_irgen_CXFTR(UChar m3 __attribute__((unused)),
+ UChar m4 __attribute__((unused)), UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op2 = newTemp(Ity_I32);
+
+ assign(op2, get_gpr_w1(r2));
+ put_dpr_pair(r1, unop(Iop_I32StoD128, mkexpr(op2)));
+ }
+ return "cxftr";
+}
+
+static const HChar *
+s390_irgen_CDLFTR(UChar m3 __attribute__((unused)),
+ UChar m4 __attribute__((unused)), UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op2 = newTemp(Ity_I32);
+
+ assign(op2, get_gpr_w1(r2));
+ put_dpr_dw0(r1, unop(Iop_I32UtoD64, mkexpr(op2)));
+ }
+ return "cdlftr";
+}
+
+static const HChar *
+s390_irgen_CXLFTR(UChar m3 __attribute__((unused)),
+ UChar m4 __attribute__((unused)), UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op2 = newTemp(Ity_I32);
+
+ assign(op2, get_gpr_w1(r2));
+ put_dpr_pair(r1, unop(Iop_I32UtoD128, mkexpr(op2)));
+ }
+ return "cxlftr";
+}
+
+static const HChar *
+s390_irgen_CDLGTR(UChar m3, UChar m4 __attribute__((unused)),
+ UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op2 = newTemp(Ity_I64);
+
+ assign(op2, get_gpr_dw0(r2));
+ put_dpr_dw0(r1, binop(Iop_I64UtoD64,
+ mkexpr(encode_dfp_rounding_mode(m3)),
+ mkexpr(op2)));
+ }
+ return "cdlgtr";
+}
+
+static const HChar *
+s390_irgen_CXLGTR(UChar m3 __attribute__((unused)),
+ UChar m4 __attribute__((unused)), UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op2 = newTemp(Ity_I64);
+
+ assign(op2, get_gpr_dw0(r2));
+ put_dpr_pair(r1, unop(Iop_I64UtoD128, mkexpr(op2)));
+ }
+ return "cxlgtr";
+}
+
+static const HChar *
+s390_irgen_CFDTR(UChar m3, UChar m4 __attribute__((unused)),
+ UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op = newTemp(Ity_D64);
+ IRTemp result = newTemp(Ity_I32);
+ IRTemp rounding_mode = encode_dfp_rounding_mode(m3);
+
+ assign(op, get_dpr_dw0(r2));
+ assign(result, binop(Iop_D64toI32S, mkexpr(rounding_mode),
+ mkexpr(op)));
+ put_gpr_w1(r1, mkexpr(result));
+ s390_cc_thunk_putFZ(S390_CC_OP_DFP_64_TO_INT_32, op, rounding_mode);
+ }
+ return "cfdtr";
+}
+
+static const HChar *
+s390_irgen_CFXTR(UChar m3, UChar m4 __attribute__((unused)),
+ UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op = newTemp(Ity_D128);
+ IRTemp result = newTemp(Ity_I32);
+ IRTemp rounding_mode = encode_dfp_rounding_mode(m3);
+
+ assign(op, get_dpr_pair(r2));
+ assign(result, binop(Iop_D128toI32S, mkexpr(rounding_mode),
+ mkexpr(op)));
+ put_gpr_w1(r1, mkexpr(result));
+ s390_cc_thunk_put1d128Z(S390_CC_OP_DFP_128_TO_INT_32, op, rounding_mode);
+ }
+ return "cfxtr";
+}
+
+static const HChar *
s390_irgen_CEDTR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_D64);
@@ -9339,6 +9487,95 @@
}
static const HChar *
+s390_irgen_CLFDTR(UChar m3, UChar m4 __attribute__((unused)),
+ UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op = newTemp(Ity_D64);
+ IRTemp result = newTemp(Ity_I32);
+ IRTemp rounding_mode = encode_dfp_rounding_mode(m3);
+
+ assign(op, get_dpr_dw0(r2));
+ assign(result, binop(Iop_D64toI32U, mkexpr(rounding_mode),
+ mkexpr(op)));
+ put_gpr_w1(r1, mkexpr(result));
+ s390_cc_thunk_putFZ(S390_CC_OP_DFP_64_TO_UINT_32, op, rounding_mode);
+ }
+ return "clfdtr";
+}
+
+static const HChar *
+s390_irgen_CLFXTR(UChar m3, UChar m4 __attribute__((unused)),
+ UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op = newTemp(Ity_D128);
+ IRTemp result = newTemp(Ity_I32);
+ IRTemp rounding_mode = encode_dfp_rounding_mode(m3);
+
+ assign(op, get_dpr_pair(r2));
+ assign(result, binop(Iop_D128toI32U, mkexpr(rounding_mode),
+ mkexpr(op)));
+ put_gpr_w1(r1, mkexpr(result));
+ s390_cc_thunk_put1d128Z(S390_CC_OP_DFP_128_TO_UINT_32, op, rounding_mode);
+ }
+ return "clfxtr";
+}
+
+static const HChar *
+s390_irgen_CLGDTR(UChar m3, UChar m4 __attribute__((unused)),
+ UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op = newTemp(Ity_D64);
+ IRTemp result = newTemp(Ity_I64);
+ IRTemp rounding_mode = encode_dfp_rounding_mode(m3);
+
+ assign(op, get_dpr_dw0(r2));
+ assign(result, binop(Iop_D64toI64U, mkexpr(rounding_mode),
+ mkexpr(op)));
+ put_gpr_dw0(r1, mkexpr(result));
+ s390_cc_thunk_putFZ(S390_CC_OP_DFP_64_TO_UINT_64, op, rounding_mode);
+ }
+ return "clgdtr";
+}
+
+static const HChar *
+s390_irgen_CLGXTR(UChar m3, UChar m4 __attribute__((unused)),
+ UChar r1, UChar r2)
+{
+ vassert(s390_host_has_dfp);
+
+ if (! s390_host_has_fpext) {
+ emulation_failure(EmFail_S390X_fpext);
+ } else {
+ IRTemp op = newTemp(Ity_D128);
+ IRTemp result = newTemp(Ity_I64);
+ IRTemp rounding_mode = encode_dfp_rounding_mode(m3);
+
+ assign(op, get_dpr_pair(r2));
+ assign(result, binop(Iop_D128toI64U, mkexpr(rounding_mode),
+ mkexpr(op)));
+ put_gpr_dw0(r1, mkexpr(result));
+ s390_cc_thunk_put1d128Z(S390_CC_OP_DFP_128_TO_UINT_64, op,
+ rounding_mode);
+ }
+ return "clgxtr";
+}
+
+static const HChar *
s390_irgen_DDTRA(UChar r3, UChar m4, UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_D64);
@@ -13836,20 +14073,44 @@
ovl.fmt.RRE.r2); goto ok;
case 0xb93e: /* KIMD */ goto unimplemented;
case 0xb93f: /* KLMD */ goto unimplemented;
- case 0xb941: /* CFDTR */ goto unimplemented;
- case 0xb942: /* CLGDTR */ goto unimplemented;
- case 0xb943: /* CLFDTR */ goto unimplemented;
+ case 0xb941: s390_format_RRF_UURF(s390_irgen_CFDTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb942: s390_format_RRF_UURF(s390_irgen_CLGDTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb943: s390_format_RRF_UURF(s390_irgen_CLFDTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
case 0xb946: s390_format_RRE_RR(s390_irgen_BCTGR, ovl.fmt.RRE.r1,
ovl.fmt.RRE.r2); goto ok;
- case 0xb949: /* CFXTR */ goto unimplemented;
- case 0xb94a: /* CLGXTR */ goto unimplemented;
- case 0xb94b: /* CLFXTR */ goto unimplemented;
- case 0xb951: /* CDFTR */ goto unimplemented;
- case 0xb952: /* CDLGTR */ goto unimplemented;
- case 0xb953: /* CDLFTR */ goto unimplemented;
- case 0xb959: /* CXFTR */ goto unimplemented;
- case 0xb95a: /* CXLGTR */ goto unimplemented;
- case 0xb95b: /* CXLFTR */ goto unimplemented;
+ case 0xb949: s390_format_RRF_UURF(s390_irgen_CFXTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb94a: s390_format_RRF_UURF(s390_irgen_CLGXTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb94b: s390_format_RRF_UURF(s390_irgen_CLFXTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb951: s390_format_RRF_UUFR(s390_irgen_CDFTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb952: s390_format_RRF_UUFR(s390_irgen_CDLGTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb953: s390_format_RRF_UUFR(s390_irgen_CDLFTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb959: s390_format_RRF_UUFR(s390_irgen_CXFTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb95a: s390_format_RRF_UUFR(s390_irgen_CXLGTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
+ case 0xb95b: s390_format_RRF_UUFR(s390_irgen_CXLFTR, ovl.fmt.RRF2.m3,
+ ovl.fmt.RRF2.m4, ovl.fmt.RRF2.r1,
+ ovl.fmt.RRF2.r2); goto ok;
case 0xb960: /* CGRT */ goto unimplemented;
case 0xb961: /* CLGRT */ goto unimplemented;
case 0xb972: /* CRT */ goto unimplemented;
|
|
From: Tom H. <to...@co...> - 2013-01-13 02:22:30
|
valgrind revision: 13224 VEX revision: 2631 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-9) Assembler: GNU assembler version 2.23.51.0.8-2.fc19 20121218 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.5.3-1.fc17.x86_64 x86_64 Vendor version: Fedora release 19 (Rawhide) Nightly build on bristol ( x86_64, Fedora 19 ) Started at 2013-01-13 02:21:36 GMT Ended at 2013-01-13 02:22:19 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... failed Last 20 lines of verbose log follow echo checking for use as an inner Valgrind... no checking for Pagesize... 4k checking for shared memory alignment... 2*PAGE_SIZE checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking features.h usability... yes checking features.h presence... yes checking for features.h... yes checking the GLIBC_VERSION version... unsupported version 2.17 configure: error: Valgrind requires glibc version 2.2 - 2.16 |