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
(16) |
2
(18) |
|
3
(16) |
4
(5) |
5
|
6
|
7
(7) |
8
(16) |
9
(5) |
|
10
|
11
(17) |
12
(18) |
13
|
14
(3) |
15
(14) |
16
(4) |
|
17
|
18
(2) |
19
|
20
|
21
(10) |
22
(15) |
23
(9) |
|
24
(1) |
25
(15) |
26
(3) |
27
(17) |
28
(15) |
|
|
|
From: <sv...@va...> - 2013-02-27 23:19:28
|
petarj 2013-02-27 23:17:33 +0000 (Wed, 27 Feb 2013)
New Revision: 13292
Log:
mips: adding MIPS64LE support to Valgrind
Necessary changes to Valgrind to support MIPS64LE on Linux.
Minor cleanup/style changes embedded in the patch as well.
The change corresponds to r2687 in VEX.
Patch written by Dejan Jevtic and Petar Jovanovic.
More information about this issue:
https://bugs.kde.org/show_bug.cgi?id=313267
Added files:
trunk/coregrind/m_dispatch/dispatch-mips64-linux.S
trunk/coregrind/m_gdbserver/mips64-cp0-valgrind-s1.xml
trunk/coregrind/m_gdbserver/mips64-cp0-valgrind-s2.xml
trunk/coregrind/m_gdbserver/mips64-cp0.xml
trunk/coregrind/m_gdbserver/mips64-cpu-valgrind-s1.xml
trunk/coregrind/m_gdbserver/mips64-cpu-valgrind-s2.xml
trunk/coregrind/m_gdbserver/mips64-cpu.xml
trunk/coregrind/m_gdbserver/mips64-fpu-valgrind-s1.xml
trunk/coregrind/m_gdbserver/mips64-fpu-valgrind-s2.xml
trunk/coregrind/m_gdbserver/mips64-fpu.xml
trunk/coregrind/m_gdbserver/mips64-linux-valgrind.xml
trunk/coregrind/m_gdbserver/mips64-linux.xml
trunk/coregrind/m_gdbserver/valgrind-low-mips64.c
trunk/coregrind/m_sigframe/sigframe-mips64-linux.c
trunk/coregrind/m_syswrap/syscall-mips64-linux.S
trunk/coregrind/m_syswrap/syswrap-mips64-linux.c
trunk/include/vki/vki-mips64-linux.h
trunk/include/vki/vki-posixtypes-mips64-linux.h
trunk/include/vki/vki-scnums-mips64-linux.h
Modified files:
trunk/Makefile.all.am
trunk/Makefile.tool.am
trunk/README
trunk/cachegrind/cg-arch.c
trunk/cachegrind/cg_branchpred.c
trunk/configure.in
trunk/coregrind/Makefile.am
trunk/coregrind/launcher-linux.c
trunk/coregrind/m_aspacemgr/aspacemgr-common.c
trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
trunk/coregrind/m_cache.c
trunk/coregrind/m_coredump/coredump-elf.c
trunk/coregrind/m_debugger.c
trunk/coregrind/m_debuginfo/d3basics.c
trunk/coregrind/m_debuginfo/debuginfo.c
trunk/coregrind/m_debuginfo/priv_storage.h
trunk/coregrind/m_debuginfo/readdwarf.c
trunk/coregrind/m_debuginfo/readelf.c
trunk/coregrind/m_debuginfo/storage.c
trunk/coregrind/m_debuglog.c
trunk/coregrind/m_dispatch/dispatch-mips32-linux.S
trunk/coregrind/m_gdbserver/target.c
trunk/coregrind/m_gdbserver/valgrind_low.h
trunk/coregrind/m_initimg/initimg-linux.c
trunk/coregrind/m_libcassert.c
trunk/coregrind/m_libcfile.c
trunk/coregrind/m_libcproc.c
trunk/coregrind/m_machine.c
trunk/coregrind/m_main.c
trunk/coregrind/m_redir.c
trunk/coregrind/m_scheduler/scheduler.c
trunk/coregrind/m_sigframe/sigframe-mips32-linux.c
trunk/coregrind/m_signals.c
trunk/coregrind/m_stacktrace.c
trunk/coregrind/m_syscall.c
trunk/coregrind/m_syswrap/priv_types_n_macros.h
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/coregrind/m_syswrap/syswrap-main.c
trunk/coregrind/m_syswrap/syswrap-mips32-linux.c
trunk/coregrind/m_trampoline.S
trunk/coregrind/m_translate.c
trunk/coregrind/m_ume/elf.c
trunk/coregrind/pub_core_aspacemgr.h
trunk/coregrind/pub_core_basics.h
trunk/coregrind/pub_core_debuginfo.h
trunk/coregrind/pub_core_machine.h
trunk/coregrind/pub_core_mallocfree.h
trunk/coregrind/pub_core_syscall.h
trunk/coregrind/pub_core_threadstate.h
trunk/coregrind/pub_core_trampoline.h
trunk/coregrind/pub_core_transtab_asm.h
trunk/coregrind/vgdb.c
trunk/drd/drd_bitmap.h
trunk/drd/drd_clientreq.c
trunk/drd/drd_load_store.c
trunk/drd/drd_thread.c
trunk/include/Makefile.am
trunk/include/pub_tool_basics.h
trunk/include/pub_tool_machine.h
trunk/include/pub_tool_vkiscnums_asm.h
trunk/include/valgrind.h
trunk/include/vki/vki-linux.h
trunk/memcheck/mc_machine.c
trunk/tests/arch_test.c
trunk/tests/platform_test
Modified: trunk/include/pub_tool_machine.h (+6 -0)
===================================================================
--- trunk/include/pub_tool_machine.h 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/include/pub_tool_machine.h 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -91,6 +91,12 @@
# define VG_CLREQ_SZB 20
# define VG_STACK_REDZONE_SZB 0
+#elif defined(VGP_mips64_linux)
+# define VG_MIN_INSTR_SZB 4
+# define VG_MAX_INSTR_SZB 4
+# define VG_CLREQ_SZB 20
+# define VG_STACK_REDZONE_SZB 0
+
#else
# error Unknown platform
#endif
Modified: trunk/coregrind/pub_core_debuginfo.h (+1 -1)
===================================================================
--- trunk/coregrind/pub_core_debuginfo.h 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/coregrind/pub_core_debuginfo.h 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -120,7 +120,7 @@
typedef
struct { Addr ia; Addr sp; Addr fp; Addr lr;}
D3UnwindRegs;
-#elif defined(VGA_mips32)
+#elif defined(VGA_mips32) || defined(VGA_mips64)
typedef
struct { Addr pc; Addr sp; Addr fp; Addr ra; }
D3UnwindRegs;
Added: trunk/coregrind/m_dispatch/dispatch-mips64-linux.S (+245 -0)
===================================================================
--- trunk/coregrind/m_dispatch/dispatch-mips64-linux.S 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/coregrind/m_dispatch/dispatch-mips64-linux.S 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -0,0 +1,245 @@
+
+/*--------------------------------------------------------------------*/
+/*--- The core dispatch loop, for jumping to a code address. ---*/
+/*--- dispatch-mips64-linux.S ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+ This file is part of Valgrind, a dynamic binary instrumentation
+ framework.
+
+ Copyright (C) 2000-2013 RT-RK
+ mip...@rt...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
+
+#if defined(VGP_mips64_linux)
+
+#include "pub_core_basics_asm.h"
+#include "pub_core_dispatch_asm.h"
+#include "pub_core_transtab_asm.h"
+#include "libvex_guest_offsets.h" /* for OFFSET_mips_PC */
+
+
+/*------------------------------------------------------------*/
+/*--- ---*/
+/*--- The dispatch loop. VG_(disp_run_translations) is ---*/
+/*--- used to run all translations, ---*/
+/*--- including no-redir ones. ---*/
+/*--- ---*/
+/*------------------------------------------------------------*/
+
+/*----------------------------------------------------*/
+/*--- Entry and preamble (set everything up) ---*/
+/*----------------------------------------------------*/
+
+/* signature:
+void VG_(disp_run_translations)( UWord* two_words,
+ void* guest_state,
+ Addr host_addr );
+*/
+
+.text
+.globl VG_(disp_run_translations)
+VG_(disp_run_translations):
+ /* a0 ($4) holds two_words */
+ /* a1 ($5) holds guest_state */
+ /* a2 ($6) holds host_addr */
+
+ /* New stack frame. Stack must remain 16 aligned (at least) */
+ daddiu $29, -176
+
+ /* Save ra */
+ sd $31, 72($29)
+
+ /* ... and s0 - s7 */
+ sd $16, 80($29)
+ sd $17, 88($29)
+ sd $18, 96($29)
+ sd $19, 104($29)
+ sd $20, 112($29)
+ sd $21, 120($29)
+ sd $22, 128($29)
+ sd $23, 136($29)
+
+ /* ... and gp, fp/s8 */
+ sd $28, 144($29)
+ sd $30, 152($29)
+
+ /* Save a0 ($4) on stack. In postamble it will be restored such that the
+ return values can be written */
+ sd $4, 160($29)
+
+ /* Load address of guest state into guest state register ($23) */
+ move $23, $5
+
+ /* and jump into the code cache. Chained translations in
+ the code cache run, until for whatever reason, they can't
+ continue. When that happens, the translation in question
+ will jump (or call) to one of the continuation points
+ VG_(cp_...) below. */
+ jr $6
+ /*NOTREACHED*/
+
+/*----------------------------------------------------*/
+/*--- Postamble and exit. ---*/
+/*----------------------------------------------------*/
+
+postamble:
+ /* At this point, $2 and $3 contain two
+ words to be returned to the caller. $2
+ holds a TRC value, and $3 optionally may
+ hold another word (for CHAIN_ME exits, the
+ address of the place to patch.) */
+
+ /* Restore $4 from stack; holds address of two_words */
+ ld $4, 160($29)
+ sd $2, 0($4) /* Store $2 to two_words[0] */
+ sd $3, 8($4) /* Store $3 to two_words[1] */
+
+ /* Restore callee-saved registers... */
+
+ /* Restore ra */
+ ld $31, 72($29)
+
+ /* ... and s0 - s7 */
+ ld $16, 80($29)
+ ld $17, 88($29)
+ ld $18, 96($29)
+ ld $19, 104($29)
+ ld $20, 112($29)
+ ld $21, 120($29)
+ ld $22, 128($29)
+ ld $23, 136($29)
+
+ /* ... and gp, fp/s8 */
+ ld $28, 144($29)
+ ld $30, 152($29)
+
+ daddiu $29, 176 /* stack_size */
+ jr $31
+ nop
+
+/*----------------------------------------------------*/
+/*--- Continuation points ---*/
+/*----------------------------------------------------*/
+
+/* ------ Chain me to slow entry point ------ */
+.global VG_(disp_cp_chain_me_to_slowEP)
+VG_(disp_cp_chain_me_to_slowEP):
+ /* We got called. The return address indicates
+ where the patching needs to happen. Collect
+ the return address and, exit back to C land,
+ handing the caller the pair (Chain_me_S, RA) */
+ li $2, VG_TRC_CHAIN_ME_TO_SLOW_EP
+ move $3, $31
+ /* 8 = mkLoadImm_EXACTLY2or6
+ 4 = jalr $9
+ 4 = nop */
+ daddiu $3, $3, -32
+ b postamble
+
+/* ------ Chain me to slow entry point ------ */
+.global VG_(disp_cp_chain_me_to_fastEP)
+VG_(disp_cp_chain_me_to_fastEP):
+ /* We got called. The return address indicates
+ where the patching needs to happen. Collect
+ the return address and, exit back to C land,
+ handing the caller the pair (Chain_me_S, RA) */
+ li $2, VG_TRC_CHAIN_ME_TO_FAST_EP
+ move $3, $31
+ /* 8 = mkLoadImm_EXACTLY2or6
+ 4 = jalr $9
+ 4 = nop */
+ daddiu $3, $3, -32
+ b postamble
+
+/* ------ Indirect but boring jump ------ */
+.global VG_(disp_cp_xindir)
+VG_(disp_cp_xindir):
+ /* Where are we going? */
+ ld $11, OFFSET_mips64_PC($23)
+
+ lw $13, vgPlain_stats__n_xindirs_32
+ addiu $13, $13, 0x1
+ sw $13, vgPlain_stats__n_xindirs_32
+
+ /* try a fast lookup in the translation cache */
+ /* t1 = VG_TT_FAST_HASH(addr) * sizeof(ULong*)
+ = (t8 >> 2 & VG_TT_FAST_MASK) << 3 */
+
+ move $14, $11
+ li $12, VG_TT_FAST_MASK
+ srl $14, $14, 2
+ and $14, $14, $12
+ sll $14, $14, 3
+
+ /* t2 = (addr of VG_(tt_fast)) + t1 */
+ la $13, VG_(tt_fast)
+ addu $13, $13, $14
+
+ ld $12, 0($13) /* t3 = VG_(tt_fast)[hash] :: ULong* */
+ addi $13, $13, 8
+ ld $25, 0($13) /* little-endian, so comparing 1st 32bit word */
+ nop
+
+check:
+ bne $12, $11, fast_lookup_failed
+ /* run the translation */
+ jr $25
+ .long 0x0 /* persuade insn decoders not to speculate past here */
+
+fast_lookup_failed:
+ /* %PC is up to date */
+ /* back out decrement of the dispatch counter */
+ /* hold dispatch_ctr in t0 (r8) */
+ lw $13, vgPlain_stats__n_xindirs_32
+ addiu $13, $13, 0x1
+ sw $13, vgPlain_stats__n_xindirs_32
+ li $2, VG_TRC_INNER_FASTMISS
+ li $3, 0
+ b postamble
+
+/* ------ Assisted jump ------ */
+ .global VG_(disp_cp_xassisted)
+VG_(disp_cp_xassisted):
+ /* guest-state-pointer contains the TRC. Put the value into the
+ return register */
+ move $2, $23
+ move $3, $0
+ b postamble
+
+/* ------ Event check failed ------ */
+ .global VG_(disp_cp_evcheck_fail)
+VG_(disp_cp_evcheck_fail):
+ li $2, VG_TRC_INNER_COUNTERZERO
+ move $3, $0
+ b postamble
+
+.size VG_(disp_run_translations), .-VG_(disp_run_translations)
+
+
+/* Let the linker know we do not need an executable stack */
+.section .note.GNU-stack,"",@progbits
+
+#endif // defined(VGP_mips64_linux)
+/*--------------------------------------------------------------------*/
+/*--- end ---*/
+/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/pub_core_trampoline.h (+5 -0)
===================================================================
--- trunk/coregrind/pub_core_trampoline.h 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/coregrind/pub_core_trampoline.h 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -133,6 +133,11 @@
extern UInt VG_(mips32_linux_REDIR_FOR_strlen)( void* );
#endif
+#if defined(VGP_mips64_linux)
+extern Addr VG_(mips64_linux_SUBST_FOR_rt_sigreturn);
+extern UInt VG_(mips64_linux_REDIR_FOR_strlen)( void* );
+#endif
+
#endif // __PUB_CORE_TRAMPOLINE_H
/*--------------------------------------------------------------------*/
Modified: trunk/drd/drd_thread.c (+1 -1)
===================================================================
--- trunk/drd/drd_thread.c 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/drd/drd_thread.c 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -597,7 +597,7 @@
}
/** Store the thread mode: joinable or detached. */
-#if defined(VGP_mips32_linux)
+#if defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
/* There is a cse related issue in gcc for MIPS. Optimization level
has to be lowered, so cse related optimizations are not
included.*/
Modified: trunk/coregrind/m_ume/elf.c (+6 -0)
===================================================================
--- trunk/coregrind/m_ume/elf.c 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/coregrind/m_ume/elf.c 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -338,8 +338,14 @@
which totally screws things up, because nothing else can go
there. So bump the hacky load addess along by 0x8000, to
0x108000. */
+ /* Later .. on mips64 we can't use 0x108000, because mapelf will fail. */
+#if defined(VGP_mips64_linux)
+ if (ebase < 0x100000)
+ ebase = 0x100000;
+#else
if (ebase < 0x108000)
ebase = 0x108000;
+#endif
}
info->phnum = e->e.e_phnum;
Added: trunk/coregrind/m_gdbserver/mips64-cp0.xml (+13 -0)
===================================================================
--- trunk/coregrind/m_gdbserver/mips64-cp0.xml 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/coregrind/m_gdbserver/mips64-cp0.xml 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.mips.cp0">
+ <reg name="status" bitsize="64" regnum="32"/>
+ <reg name="badvaddr" bitsize="64" regnum="35"/>
+ <reg name="cause" bitsize="64" regnum="36"/>
+</feature>
Modified: trunk/coregrind/m_debuginfo/readelf.c (+3 -2)
===================================================================
--- trunk/coregrind/m_debuginfo/readelf.c 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/coregrind/m_debuginfo/readelf.c 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -2042,7 +2042,7 @@
/* PLT is different on different platforms, it seems. */
# if defined(VGP_x86_linux) || defined(VGP_amd64_linux) \
|| defined(VGP_arm_linux) || defined (VGP_s390x_linux) \
- || defined(VGP_mips32_linux)
+ || defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
/* Accept .plt where mapped as rx (code) */
if (0 == VG_(strcmp)(name, ".plt")) {
if (inrx && !di->plt_present) {
@@ -2693,7 +2693,8 @@
&& !defined(VGP_s390x_linux) \
&& !defined(VGP_ppc64_linux) \
&& !defined(VGPV_arm_linux_android) \
- && !defined(VGPV_x86_linux_android)
+ && !defined(VGPV_x86_linux_android) \
+ && !defined(VGP_mips64_linux)
if (stab_img && stabstr_img) {
ML_(read_debuginfo_stabs) ( di, stab_img, stab_sz,
stabstr_img, stabstr_sz );
Modified: trunk/coregrind/m_debugger.c (+1 -1)
===================================================================
--- trunk/coregrind/m_debugger.c 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/coregrind/m_debugger.c 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -307,7 +307,7 @@
return VG_(ptrace)(VKI_PTRACE_POKEUSR_AREA, pid, &pa, NULL);
-#elif defined(VGP_mips32_linux)
+#elif defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
struct vki_user_regs_struct regs;
VG_(memset)(®s, 0, sizeof(regs));
regs.MIPS_r0 = vex->guest_r0;
Modified: trunk/coregrind/m_libcproc.c (+3 -2)
===================================================================
--- trunk/coregrind/m_libcproc.c 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/coregrind/m_libcproc.c 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -533,7 +533,8 @@
platform. */
Int VG_(getgroups)( Int size, UInt* list )
{
-# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
+# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux) \
+ || defined(VGP_mips64_linux)
Int i;
SysRes sres;
UShort list16[64];
@@ -762,7 +763,7 @@
Addr endaddr = startaddr + nbytes;
VG_(do_syscall2)(__NR_ARM_cacheflush, startaddr, endaddr);
-# elif defined(VGA_mips32)
+# elif defined(VGA_mips32) || defined(VGA_mips64)
SysRes sres = VG_(do_syscall3)(__NR_cacheflush, (UWord) ptr,
(UWord) nbytes, (UWord) 3);
vg_assert( sres._isError == 0 );
Modified: trunk/include/pub_tool_basics.h (+3 -3)
===================================================================
--- trunk/include/pub_tool_basics.h 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/include/pub_tool_basics.h 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -269,10 +269,10 @@
#undef VG_LITTLEENDIAN
#if defined(VGA_x86) || defined(VGA_amd64) || defined (VGA_arm) \
- || (defined(VGA_mips32) && defined (_MIPSEL))
+ || ((defined(VGA_mips32) || defined(VGA_mips64)) && defined (_MIPSEL))
# define VG_LITTLEENDIAN 1
#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_s390x) \
- || (defined(VGA_mips32) && defined (_MIPSEB))
+ || ((defined(VGA_mips32) || defined(VGA_mips64)) && defined (_MIPSEB))
# define VG_BIGENDIAN 1
#else
# error Unknown arch
@@ -283,7 +283,7 @@
# define VG_REGPARM(n) __attribute__((regparm(n)))
#elif defined(VGA_amd64) || defined(VGA_ppc32) \
|| defined(VGA_ppc64) || defined(VGA_arm) || defined(VGA_s390x) \
- || defined(VGA_mips32)
+ || defined(VGA_mips32) || defined(VGA_mips64)
# define VG_REGPARM(n) /* */
#else
# error Unknown arch
Modified: trunk/drd/drd_load_store.c (+2 -0)
===================================================================
--- trunk/drd/drd_load_store.c 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/drd/drd_load_store.c 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -51,6 +51,8 @@
#define STACK_POINTER_OFFSET OFFSET_s390x_r15
#elif defined(VGA_mips32)
#define STACK_POINTER_OFFSET OFFSET_mips32_r29
+#elif defined(VGA_mips64)
+#define STACK_POINTER_OFFSET OFFSET_mips64_r29
#else
#error Unknown architecture.
#endif
Modified: trunk/coregrind/pub_core_transtab_asm.h (+2 -1)
===================================================================
--- trunk/coregrind/pub_core_transtab_asm.h 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/coregrind/pub_core_transtab_asm.h 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -62,7 +62,8 @@
#elif defined(VGA_s390x) || defined(VGA_arm)
# define VG_TT_FAST_HASH(_addr) ((((UWord)(_addr)) >> 1) & VG_TT_FAST_MASK)
-#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_mips32)
+#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_mips32) \
+ || defined(VGA_mips64)
# define VG_TT_FAST_HASH(_addr) ((((UWord)(_addr)) >> 2) & VG_TT_FAST_MASK)
#else
Modified: trunk/include/valgrind.h (+726 -234)
===================================================================
--- trunk/include/valgrind.h 2013-02-26 21:54:28 +00:00 (rev 13291)
+++ trunk/include/valgrind.h 2013-02-27 23:17:33 +00:00 (rev 13292)
@@ -118,6 +118,7 @@
#undef PLAT_arm_linux
#undef PLAT_s390x_linux
#undef PLAT_mips32_linux
+#undef PLAT_mips64_linux
#if defined(__APPLE__) && defined(__i386__)
@@ -140,7 +141,11 @@
#elif defined(__linux__) && defined(__s390__) && defined(__s390x__)
# define PLAT_s390x_linux 1
#elif defined(__linux__) && defined(__mips__)
+#if (__mips==64)
+# define PLAT_mips64_linux 1
+#else
# define PLAT_mips32_linux 1
+#endif
#else
/* If we're not compiling for our target platform, don't generate
any inline asms. */
@@ -763,7 +768,7 @@
"move %0, $11\n\t" /*result*/ \
: "=r" (_zzq_result) \
: "r" (_zzq_default), "r" (&_zzq_args[0]) \
- : "cc","memory", "t3", "t4"); \
+ : "$11", "$12"); \
_zzq_result; \
})
@@ -776,7 +781,7 @@
"move %0, $11" /*result*/ \
: "=r" (__addr) \
: \
- : "cc", "memory" , "t3" \
+ : "$11" \
); \
_zzq_orig->nraddr = __addr; \
}
@@ -796,6 +801,75 @@
#endif /* PLAT_mips32_linux */
+/* ------------------------- mips64-linux ---------------- */
+
+#if defined(PLAT_mips64_linux)
+
+typedef
+ struct {
+ unsigned long long nraddr; /* where's the code? */
+ }
+ OrigFn;
+
+/* dsll $0,$0, 3
+ * dsll $0,$0, 13
+ * dsll $0,$0, 29
+ * dsll $0,$0, 19*/
+#define __SPECIAL_INSTRUCTION_PREAMBLE \
+ "dsll $0,$0, 3 ; dsll $0,$0,13\n\t" \
+ "dsll $0,$0,29 ; dsll $0,$0,19\n\t"
+
+#define VALGRIND_DO_CLIENT_REQUEST_EXPR( \
+ _zzq_default, _zzq_request, \
+ _zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \
+ __extension__ \
+ ({ volatile unsigned long long int _zzq_args[6]; \
+ volatile unsigned long long int _zzq_result; \
+ _zzq_args[0] = (unsigned long long int)(_zzq_request); \
+ _zzq_args[1] = (unsigned long long int)(_zzq_arg1); \
+ _zzq_args[2] = (unsigned long long int)(_zzq_arg2); \
+ _zzq_args[3] = (unsigned long long int)(_zzq_arg3); \
+ _zzq_args[4] = (unsigned long long int)(_zzq_arg4); \
+ _zzq_args[5] = (unsigned long long int)(_zzq_arg5); \
+ __asm__ volatile("move $11, %1\n\t" /*default*/ \
+ "move $12, %2\n\t" /*ptr*/ \
+ __SPECIAL_INSTRUCTION_PREAMBLE \
+ /* $11 = client_request ( $12 ) */ \
+ "or $13, $13, $13\n\t" \
+ "move %0, $11\n\t" /*result*/ \
+ : "=r" (_zzq_result) \
+ : "r" (_zzq_default), "r" (&_zzq_args[0]) \
+ : "$11", "$12"); \
+ _zzq_result; \
+ })
+
+#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \
+ { volatile OrigFn* _zzq_orig = &(_zzq_rlval); \
+ volatile unsigned long long int __addr; \
+ __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
+ /* $11 = guest_NRADDR */ \
+ "or $14, $14, $14\n\t" \
+ "move %0, $11" /*result*/ \
+ : "=r" (__addr) \
+ : \
+ : "$11"); \
+ _zzq_orig->nraddr = __addr; \
+ }
+
+#define VALGRIND_CALL_NOREDIR_T9 \
+ __SPECIAL_INSTRUCTION_PREAMBLE \
+ /* call-noredir $25 */ \
+ "or $15, $15, $15\n\t"
+
+#define VALGRIND_VEX_INJECT_IR() \
+ do { \
+ __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
+ "or $11, $11, $11\n\t" \
+ ); \
+ } while (0)
+
+#endif /* PLAT_mips64_linux */
+
/* Insert assembly code for other platforms here... */
#endif /* NVALGRIND */
@@ -3881,7 +3955,7 @@
#endif /* PLAT_s390x_linux */
-/* ------------------------- mips-linux ------------------------- */
+/* ------------------------- mips32-linux ----------------------- */
#if defined(PLAT_mips32_linux)
@@ -3901,19 +3975,19 @@
_argvec[0] = (unsigned long)_orig.nraddr; \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
- "subu $29, $29, 16 \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
+ "subu $29, $29, 16 \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
"addu $29, $29, 16\n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
"addu $29, $29, 8 \n\t" \
- "move %0, $v0\n" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -3927,20 +4001,20 @@
_argvec[1] = (unsigned long)(arg1); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
"subu $29, $29, 16 \n\t" \
- "lw $a0, 4(%1) \n\t" /* arg1*/ \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "lw $4, 4(%1) \n\t" /* arg1*/ \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
"addu $29, $29, 16 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
"addu $29, $29, 8 \n\t" \
- "move %0, $v0\n" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
- : /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*in*/ "0" (&_argvec[0]) \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -3955,21 +4029,21 @@
_argvec[2] = (unsigned long)(arg2); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
"subu $29, $29, 16 \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "lw $4, 4(%1) \n\t" \
+ "lw $5, 8(%1) \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
"addu $29, $29, 16 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
"addu $29, $29, 8 \n\t" \
- "move %0, $v0\n" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -3985,22 +4059,22 @@
_argvec[3] = (unsigned long)(arg3); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
"subu $29, $29, 16 \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $a2, 12(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "lw $4, 4(%1) \n\t" \
+ "lw $5, 8(%1) \n\t" \
+ "lw $6, 12(%1) \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
"addu $29, $29, 16 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
"addu $29, $29, 8 \n\t" \
- "move %0, $v0\n" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -4017,23 +4091,23 @@
_argvec[4] = (unsigned long)(arg4); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
"subu $29, $29, 16 \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $a2, 12(%1) \n\t" \
- "lw $a3, 16(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "lw $4, 4(%1) \n\t" \
+ "lw $5, 8(%1) \n\t" \
+ "lw $6, 12(%1) \n\t" \
+ "lw $7, 16(%1) \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
"addu $29, $29, 16 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
"addu $29, $29, 8 \n\t" \
- "move %0, $v0\n" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -4051,25 +4125,25 @@
_argvec[5] = (unsigned long)(arg5); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
- "lw $a0, 20(%1) \n\t" \
- "subu $sp, $sp, 24\n\t" \
- "sw $a0, 16($sp) \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $a2, 12(%1) \n\t" \
- "lw $a3, 16(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
+ "lw $4, 20(%1) \n\t" \
+ "subu $29, $29, 24\n\t" \
+ "sw $4, 16($29) \n\t" \
+ "lw $4, 4(%1) \n\t" \
+ "lw $5, 8(%1) \n\t" \
+ "lw $6, 12(%1) \n\t" \
+ "lw $7, 16(%1) \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
"addu $29, $29, 24 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
- "addu $sp, $sp, 8 \n\t" \
- "move %0, $v0\n" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
+ "addu $29, $29, 8 \n\t" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -4087,28 +4161,28 @@
_argvec[6] = (unsigned long)(arg6); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
- "lw $a0, 20(%1) \n\t" \
- "subu $sp, $sp, 32\n\t" \
- "sw $a0, 16($sp) \n\t" \
- "lw $a0, 24(%1) \n\t" \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
+ "lw $4, 20(%1) \n\t" \
+ "subu $29, $29, 32\n\t" \
+ "sw $4, 16($29) \n\t" \
+ "lw $4, 24(%1) \n\t" \
"nop\n\t" \
- "sw $a0, 20($sp) \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $a2, 12(%1) \n\t" \
- "lw $a3, 16(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "sw $4, 20($29) \n\t" \
+ "lw $4, 4(%1) \n\t" \
+ "lw $5, 8(%1) \n\t" \
+ "lw $6, 12(%1) \n\t" \
+ "lw $7, 16(%1) \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
- "addu $sp, $sp, 32 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
- "addu $sp, $sp, 8 \n\t" \
- "move %0, $v0\n" \
+ "addu $29, $29, 32 \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
+ "addu $29, $29, 8 \n\t" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -4129,29 +4203,29 @@
_argvec[7] = (unsigned long)(arg7); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
- "lw $a0, 20(%1) \n\t" \
- "subu $sp, $sp, 32\n\t" \
- "sw $a0, 16($sp) \n\t" \
- "lw $a0, 24(%1) \n\t" \
- "sw $a0, 20($sp) \n\t" \
- "lw $a0, 28(%1) \n\t" \
- "sw $a0, 24($sp) \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $a2, 12(%1) \n\t" \
- "lw $a3, 16(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
+ "lw $4, 20(%1) \n\t" \
+ "subu $29, $29, 32\n\t" \
+ "sw $4, 16($29) \n\t" \
+ "lw $4, 24(%1) \n\t" \
+ "sw $4, 20($29) \n\t" \
+ "lw $4, 28(%1) \n\t" \
+ "sw $4, 24($29) \n\t" \
+ "lw $4, 4(%1) \n\t" \
+ "lw $5, 8(%1) \n\t" \
+ "lw $6, 12(%1) \n\t" \
+ "lw $7, 16(%1) \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
- "addu $sp, $sp, 32 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
- "addu $sp, $sp, 8 \n\t" \
- "move %0, $v0\n" \
+ "addu $29, $29, 32 \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
+ "addu $29, $29, 8 \n\t" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -4173,31 +4247,31 @@
_argvec[8] = (unsigned long)(arg8); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
- "lw $a0, 20(%1) \n\t" \
- "subu $sp, $sp, 40\n\t" \
- "sw $a0, 16($sp) \n\t" \
- "lw $a0, 24(%1) \n\t" \
- "sw $a0, 20($sp) \n\t" \
- "lw $a0, 28(%1) \n\t" \
- "sw $a0, 24($sp) \n\t" \
- "lw $a0, 32(%1) \n\t" \
- "sw $a0, 28($sp) \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $a2, 12(%1) \n\t" \
- "lw $a3, 16(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
+ "lw $4, 20(%1) \n\t" \
+ "subu $29, $29, 40\n\t" \
+ "sw $4, 16($29) \n\t" \
+ "lw $4, 24(%1) \n\t" \
+ "sw $4, 20($29) \n\t" \
+ "lw $4, 28(%1) \n\t" \
+ "sw $4, 24($29) \n\t" \
+ "lw $4, 32(%1) \n\t" \
+ "sw $4, 28($29) \n\t" \
+ "lw $4, 4(%1) \n\t" \
+ "lw $5, 8(%1) \n\t" \
+ "lw $6, 12(%1) \n\t" \
+ "lw $7, 16(%1) \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
- "addu $sp, $sp, 40 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
- "addu $sp, $sp, 8 \n\t" \
- "move %0, $v0\n" \
+ "addu $29, $29, 40 \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
+ "addu $29, $29, 8 \n\t" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -4220,33 +4294,33 @@
_argvec[9] = (unsigned long)(arg9); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
- "lw $a0, 20(%1) \n\t" \
- "subu $sp, $sp, 40\n\t" \
- "sw $a0, 16($sp) \n\t" \
- "lw $a0, 24(%1) \n\t" \
- "sw $a0, 20($sp) \n\t" \
- "lw $a0, 28(%1) \n\t" \
- "sw $a0, 24($sp) \n\t" \
- "lw $a0, 32(%1) \n\t" \
- "sw $a0, 28($sp) \n\t" \
- "lw $a0, 36(%1) \n\t" \
- "sw $a0, 32($sp) \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $a2, 12(%1) \n\t" \
- "lw $a3, 16(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
+ "lw $4, 20(%1) \n\t" \
+ "subu $29, $29, 40\n\t" \
+ "sw $4, 16($29) \n\t" \
+ "lw $4, 24(%1) \n\t" \
+ "sw $4, 20($29) \n\t" \
+ "lw $4, 28(%1) \n\t" \
+ "sw $4, 24($29) \n\t" \
+ "lw $4, 32(%1) \n\t" \
+ "sw $4, 28($29) \n\t" \
+ "lw $4, 36(%1) \n\t" \
+ "sw $4, 32($29) \n\t" \
+ "lw $4, 4(%1) \n\t" \
+ "lw $5, 8(%1) \n\t" \
+ "lw $6, 12(%1) \n\t" \
+ "lw $7, 16(%1) \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
- "addu $sp, $sp, 40 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
- "addu $sp, $sp, 8 \n\t" \
- "move %0, $v0\n" \
+ "addu $29, $29, 40 \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
+ "addu $29, $29, 8 \n\t" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -4270,35 +4344,35 @@
_argvec[10] = (unsigned long)(arg10); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
- "lw $a0, 20(%1) \n\t" \
- "subu $sp, $sp, 48\n\t" \
- "sw $a0, 16($sp) \n\t" \
- "lw $a0, 24(%1) \n\t" \
- "sw $a0, 20($sp) \n\t" \
- "lw $a0, 28(%1) \n\t" \
- "sw $a0, 24($sp) \n\t" \
- "lw $a0, 32(%1) \n\t" \
- "sw $a0, 28($sp) \n\t" \
- "lw $a0, 36(%1) \n\t" \
- "sw $a0, 32($sp) \n\t" \
- "lw $a0, 40(%1) \n\t" \
- "sw $a0, 36($sp) \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $a2, 12(%1) \n\t" \
- "lw $a3, 16(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
+ "lw $4, 20(%1) \n\t" \
+ "subu $29, $29, 48\n\t" \
+ "sw $4, 16($29) \n\t" \
+ "lw $4, 24(%1) \n\t" \
+ "sw $4, 20($29) \n\t" \
+ "lw $4, 28(%1) \n\t" \
+ "sw $4, 24($29) \n\t" \
+ "lw $4, 32(%1) \n\t" \
+ "sw $4, 28($29) \n\t" \
+ "lw $4, 36(%1) \n\t" \
+ "sw $4, 32($29) \n\t" \
+ "lw $4, 40(%1) \n\t" \
+ "sw $4, 36($29) \n\t" \
+ "lw $4, 4(%1) \n\t" \
+ "lw $5, 8(%1) \n\t" \
+ "lw $6, 12(%1) \n\t" \
+ "lw $7, 16(%1) \n\t" \
+ "lw $25, 0(%1) \n\t" /* target->t9 */ \
VALGRIND_CALL_NOREDIR_T9 \
- "addu $sp, $sp, 48 \n\t" \
- "lw $gp, 0($sp) \n\t" \
- "lw $ra, 4($sp) \n\t" \
- "addu $sp, $sp, 8 \n\t" \
- "move %0, $v0\n" \
+ "addu $29, $29, 48 \n\t" \
+ "lw $28, 0($29) \n\t" \
+ "lw $31, 4($29) \n\t" \
+ "addu $29, $29, 8 \n\t" \
+ "move %0, $2\n" \
: /*out*/ "=r" (_res) \
: /*in*/ "0" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "memory", __CALLER_SAVED_REGS \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -4324,37 +4398,37 @@
_argvec[11] = (unsigned long)(arg11); \
__asm__ volatile( \
"subu $29, $29, 8 \n\t" \
- "sw $gp, 0($sp) \n\t" \
- "sw $ra, 4($sp) \n\t" \
- "lw $a0, 20(%1) \n\t" \
- "subu $sp, $sp, 48\n\t" \
- "sw $a0, 16($sp) \n\t" \
- "lw $a0, 24(%1) \n\t" \
- "sw $a0, 20($sp) \n\t" \
- "lw $a0, 28(%1) \n\t" \
- "sw $a0, 24($sp) \n\t" \
- "lw $a0, 32(%1) \n\t" \
- "sw $a0, 28($sp) \n\t" \
- "lw $a0, 36(%1) \n\t" \
- "sw $a0, 32($sp) \n\t" \
- "lw $a0, 40(%1) \n\t" \
- "sw $a0, 36($sp) \n\t" \
- "lw $a0, 44(%1) \n\t" \
- "sw $a0, 40($sp) \n\t" \
- "lw $a0, 4(%1) \n\t" \
- "lw $a1, 8(%1) \n\t" \
- "lw $a2, 12(%1) \n\t" \
- "lw $a3, 16(%1) \n\t" \
- "lw $t9, 0(%1) \n\t" /* target->t9 */ \
+ "sw $28, 0($29) \n\t" \
+ "sw $31, 4($29) \n\t" \
+ "lw $4, 20(%1) \n\t" \
+ "subu $29, $29, 48\n\t" \
+ "sw $4, 16($29) \n\t" \
+ "lw $4, 24(%1) \n\t" \
+ "sw $4, 20($29) \n\t" \
+ "lw $4, 28(%1) \n\t" \
+ "sw $4, 24($29) \n\t" \
+ "l...
[truncated message content] |
|
From: <sv...@va...> - 2013-02-27 22:58:46
|
petarj 2013-02-27 22:57:17 +0000 (Wed, 27 Feb 2013)
New Revision: 2687
Log:
mips: adding MIPS64LE support to VEX
Necessary changes to VEX to support MIPS64LE on Linux.
Minor cleanup/style changes embedded in the patch as well.
Patch written by Dejan Jevtic and Petar Jovanovic.
More information about this issue:
https://bugs.kde.org/show_bug.cgi?id=313267
Added files:
trunk/pub/libvex_guest_mips64.h
Modified files:
trunk/auxprogs/genoffsets.c
trunk/priv/guest_mips_defs.h
trunk/priv/guest_mips_helpers.c
trunk/priv/guest_mips_toIR.c
trunk/priv/host_mips_defs.c
trunk/priv/host_mips_defs.h
trunk/priv/host_mips_isel.c
trunk/priv/main_main.c
trunk/pub/libvex.h
trunk/pub/libvex_basictypes.h
trunk/pub/libvex_guest_mips32.h
Modified: trunk/priv/host_mips_isel.c (+704 -395)
===================================================================
--- trunk/priv/host_mips_isel.c 2013-02-22 03:40:22 +00:00 (rev 2686)
+++ trunk/priv/host_mips_isel.c 2013-02-27 22:57:17 +00:00 (rev 2687)
@@ -7,7 +7,7 @@
This file is part of Valgrind, a dynamic binary instrumentation
framework.
- Copyright (C) 2010-2012 RT-RK
+ Copyright (C) 2010-2013 RT-RK
mip...@rt...
This program is free software; you can redistribute it and/or
@@ -40,19 +40,16 @@
/*---------------------------------------------------------*/
/*--- Register Usage Conventions ---*/
/*---------------------------------------------------------*/
-/*
-Integer Regs
-------------
-ZERO0 Reserved
-GPR1:9 Allocateable
-10 GuestStatePointer
-GPR1:9 Allocateable
-SP StackFramePointer
-RA LinkRegister
+/* Integer Regs
+ ------------
+ ZERO0 Reserved
+ GPR12:22 Allocateable
+ 23 GuestStatePointer
+ 23 Allocateable
+ SP StackFramePointer
+ RA LinkRegister */
-*/
-
static Bool mode64 = False;
/* GPR register class for mips32/64 */
@@ -61,6 +58,9 @@
/* FPR register class for mips32/64 */
#define HRcFPR(__mode64) (__mode64 ? HRcFlt64 : HRcFlt32)
+/* guest_COND offset */
+#define COND_OFFSET(__mode64) (__mode64 ? 612 : 316)
+
/*---------------------------------------------------------*/
/*--- ISelEnv ---*/
/*---------------------------------------------------------*/
@@ -189,16 +189,24 @@
{
HReg sp = StackPointer(mode64);
vassert(n < 256 && (n % 8) == 0);
- addInstr(env, MIPSInstr_Alu(Malu_ADD, sp, sp, MIPSRH_Imm(True,
- toUShort(n))));
+ if (mode64)
+ addInstr(env, MIPSInstr_Alu(Malu_DADD, sp, sp, MIPSRH_Imm(True,
+ toUShort(n))));
+ else
+ addInstr(env, MIPSInstr_Alu(Malu_ADD, sp, sp, MIPSRH_Imm(True,
+ toUShort(n))));
}
static void sub_from_sp(ISelEnv * env, UInt n)
{
HReg sp = StackPointer(mode64);
vassert(n < 256 && (n % 8) == 0);
- addInstr(env, MIPSInstr_Alu(Malu_SUB, sp, sp,
- MIPSRH_Imm(True, toUShort(n))));
+ if (mode64)
+ addInstr(env, MIPSInstr_Alu(Malu_DSUB, sp, sp,
+ MIPSRH_Imm(True, toUShort(n))));
+ else
+ addInstr(env, MIPSInstr_Alu(Malu_SUB, sp, sp,
+ MIPSRH_Imm(True, toUShort(n))));
}
/*---------------------------------------------------------*/
@@ -226,6 +234,10 @@
static MIPSRH *iselWordExpr_RH5u_wrk(ISelEnv * env, IRExpr * e);
static MIPSRH *iselWordExpr_RH5u(ISelEnv * env, IRExpr * e);
+/* In 64-bit mode ONLY */
+static MIPSRH *iselWordExpr_RH6u_wrk(ISelEnv * env, IRExpr * e);
+static MIPSRH *iselWordExpr_RH6u(ISelEnv * env, IRExpr * e);
+
/* compute an I8/I16/I32 into a GPR*/
static HReg iselWordExpr_R_wrk(ISelEnv * env, IRExpr * e);
static HReg iselWordExpr_R(ISelEnv * env, IRExpr * e);
@@ -263,7 +275,7 @@
to +infinity | 10 | 10
to -infinity | 11 | 01
*/
- // rm_MIPS32 = XOR(rm_IR , (rm_IR << 1)) & 2
+ /* rm_MIPS32 = XOR(rm_IR , (rm_IR << 1)) & 2 */
HReg irrm = iselWordExpr_R(env, mode);
HReg tmp = newVRegI(env);
HReg fcsr_old = newVRegI(env);
@@ -275,28 +287,28 @@
addInstr(env, MIPSInstr_Alu(Malu_AND, irrm, tmp, MIPSRH_Imm(False, 3)));
/* save old value of FCSR */
addInstr(env, MIPSInstr_MfFCSR(fcsr_old));
- sub_from_sp(env, 8); // Move SP down 4 bytes
+ sub_from_sp(env, 8); /* Move SP down 8 bytes */
am_addr = MIPSAMode_IR(0, StackPointer(mode64));
- //store old FCSR to stack
+ /* store old FCSR to stack */
addInstr(env, MIPSInstr_Store(4, am_addr, fcsr_old, mode64));
- //set new value of FCSR
+ /* set new value of FCSR */
addInstr(env, MIPSInstr_MtFCSR(irrm));
}
static void set_MIPS_rounding_default(ISelEnv * env)
{
HReg fcsr = newVRegI(env);
- // load as float
+ /* load as float */
MIPSAMode *am_addr;
am_addr = MIPSAMode_IR(0, StackPointer(mode64));
addInstr(env, MIPSInstr_Load(4, fcsr, am_addr, mode64));
- add_to_sp(env, 8); // Reset SP
+ add_to_sp(env, 8); /* Reset SP */
- //set new value of FCSR
+ /* set new value of FCSR*/
addInstr(env, MIPSInstr_MtFCSR(fcsr));
}
@@ -342,18 +354,18 @@
vassert(hregClass(r_srcHi) == HRcInt32);
vassert(hregClass(r_srcLo) == HRcInt32);
- sub_from_sp(env, 16); // Move SP down 16 bytes
+ sub_from_sp(env, 16); /* Move SP down 16 bytes */
am_addr0 = MIPSAMode_IR(0, StackPointer(mode64));
am_addr1 = MIPSAMode_IR(4, StackPointer(mode64));
- // store hi,lo as Ity_I32's
+ /* store hi,lo as Ity_I32's */
addInstr(env, MIPSInstr_Store(4, am_addr0, r_srcLo, mode64));
addInstr(env, MIPSInstr_Store(4, am_addr1, r_srcHi, mode64));
- // load as float
+ /* load as float */
addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 8, fr_dst, am_addr0));
- add_to_sp(env, 16); // Reset SP
+ add_to_sp(env, 16); /* Reset SP */
return fr_dst;
}
@@ -389,19 +401,30 @@
n_args++;
if (MIPS_N_REGPARMS < n_args + (passBBP ? 1 : 0)) {
- vpanic("doHelperCall(MIPS): cannot currently handle > 4 args");
+ vpanic("doHelperCall(MIPS): cannot currently handle > 4 or 8 args");
}
- argregs[0] = hregMIPS_GPR4(mode64);
- argregs[1] = hregMIPS_GPR5(mode64);
- argregs[2] = hregMIPS_GPR6(mode64);
- argregs[3] = hregMIPS_GPR7(mode64);
- argiregs = 0;
+ if (mode64) {
+ argregs[0] = hregMIPS_GPR4(mode64);
+ argregs[1] = hregMIPS_GPR5(mode64);
+ argregs[2] = hregMIPS_GPR6(mode64);
+ argregs[3] = hregMIPS_GPR7(mode64);
+ argregs[4] = hregMIPS_GPR8(mode64);
+ argregs[5] = hregMIPS_GPR9(mode64);
+ argregs[6] = hregMIPS_GPR10(mode64);
+ argregs[7] = hregMIPS_GPR11(mode64);
+ argiregs = 0;
+ } else {
+ argregs[0] = hregMIPS_GPR4(mode64);
+ argregs[1] = hregMIPS_GPR5(mode64);
+ argregs[2] = hregMIPS_GPR6(mode64);
+ argregs[3] = hregMIPS_GPR7(mode64);
+ argiregs = 0;
+ }
tmpregs[0] = tmpregs[1] = tmpregs[2] = tmpregs[3] = INVALID_HREG;
- /* First decide which scheme (slow or fast) is to be used. First
- assume the fast scheme, and select slow if any contraindications
- (wow) appear. */
+ /* First decide which scheme (slow or fast) is to be used. First assume the
+ fast scheme, and select slow if any contraindications (wow) appear. */
go_fast = True;
@@ -424,11 +447,6 @@
}
}
- /* save GuestStatePointer on the stack */
- sub_from_sp(env, 8); // Move SP down 4 bytes
- addInstr(env, MIPSInstr_Store(4, MIPSAMode_IR(0, StackPointer(mode64)),
- GuestStatePointer(mode64), mode64));
-
/* At this point the scheme to use has been established. Generate
code to get the arg values into the argument rregs. */
if (go_fast) {
@@ -449,7 +467,7 @@
argiregs |= (1 << (argreg + 4));
addInstr(env, mk_iMOVds_RR(argregs[argreg], iselWordExpr_R(env,
args[i])));
- } else { // Ity_I64
+ } else { /* Ity_I64 */
if (argreg & 1) {
argreg++;
argiregs |= (1 << (argreg + 4));
@@ -482,7 +500,7 @@
|| typeOfIRExpr(env->type_env, args[i]) == Ity_I64);
if (typeOfIRExpr(env->type_env, args[i]) == Ity_I32 || mode64) {
tmpregs[argreg] = iselWordExpr_R(env, args[i]);
- } else { // Ity_I64
+ } else { /* Ity_I64 */
if (argreg & 1)
argreg++;
if (argreg + 1 >= MIPS_N_REGPARMS)
@@ -512,7 +530,7 @@
}
/* Move the args to their final destinations. */
for (i = 0; i < argreg; i++) {
- if (hregIsInvalid(tmpregs[i])) // Skip invalid regs
+ if (hregIsInvalid(tmpregs[i])) /* Skip invalid regs */
continue;
/* None of these insns, including any spill code that might
be generated, may alter the condition codes. */
@@ -521,23 +539,14 @@
}
}
- target = toUInt(Ptr_to_ULong(cee->addr));
+ target = mode64 ? Ptr_to_ULong(cee->addr) :
+ toUInt(Ptr_to_ULong(cee->addr));
/* Finally, the call itself. */
- if (mode64)
- if (cc == MIPScc_AL) {
- addInstr(env, MIPSInstr_CallAlways(cc, target, argiregs, rloc));
- } else {
- addInstr(env, MIPSInstr_Call(cc, target, argiregs, src, rloc));
- } else if (cc == MIPScc_AL) {
- addInstr(env, MIPSInstr_CallAlways(cc, (Addr32) target, argiregs, rloc));
- } else {
- addInstr(env, MIPSInstr_Call(cc, (Addr32) target, argiregs, src, rloc));
- }
- /* restore GuestStatePointer */
- addInstr(env, MIPSInstr_Load(4, GuestStatePointer(mode64),
- MIPSAMode_IR(0, StackPointer(mode64)), mode64));
- add_to_sp(env, 8); // Reset SP
+ if (cc == MIPScc_AL)
+ addInstr(env, MIPSInstr_CallAlways(cc, (Addr64)target, argiregs, rloc));
+ else
+ addInstr(env, MIPSInstr_Call(cc, (Addr64)target, argiregs, src, rloc));
}
/*---------------------------------------------------------*/
@@ -559,6 +568,19 @@
return toBool(u == (UInt) i);
}
+static Bool uLong_fits_in_16_bits ( ULong u )
+{
+ Long i = u & 0xFFFFULL;
+ i <<= 48;
+ i >>= 48;
+ return toBool(u == (ULong) i);
+}
+
+static Bool uLong_is_4_aligned ( ULong u )
+{
+ return toBool((u & 3ULL) == 0);
+}
+
static Bool sane_AMode(ISelEnv * env, MIPSAMode * am)
{
switch (am->tag) {
@@ -585,10 +607,31 @@
/* DO NOT CALL THIS DIRECTLY ! */
static MIPSAMode *iselWordExpr_AMode_wrk(ISelEnv * env, IRExpr * e,
- IRType xferTy)
+ IRType xferTy)
{
IRType ty = typeOfIRExpr(env->type_env, e);
- {
+ if (env->mode64) {
+ Bool aligned4imm = toBool(xferTy == Ity_I32 || xferTy == Ity_I64);
+ vassert(ty == Ity_I64);
+
+ /* Add64(expr,i), where i == sign-extend of (i & 0xFFFF) */
+ if (e->tag == Iex_Binop && e->Iex.Binop.op == Iop_Add64
+ && e->Iex.Binop.arg2->tag == Iex_Const
+ && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U64
+ && (aligned4imm ?
+ uLong_is_4_aligned(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64) : True)
+ && uLong_fits_in_16_bits(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)) {
+ return MIPSAMode_IR((Int) e->Iex.Binop.arg2->Iex.Const.con->Ico.U64,
+ iselWordExpr_R(env, e->Iex.Binop.arg1));
+ }
+
+ /* Add64(expr,expr) */
+ if (e->tag == Iex_Binop && e->Iex.Binop.op == Iop_Add64) {
+ HReg r_base = iselWordExpr_R(env, e->Iex.Binop.arg1);
+ HReg r_idx = iselWordExpr_R(env, e->Iex.Binop.arg2);
+ return MIPSAMode_RR(r_idx, r_base);
+ }
+ } else {
vassert(ty == Ity_I32);
/* Add32(expr,i), where i == sign-extend of (i & 0xFFFF) */
@@ -687,6 +730,10 @@
aluOp = Malu_SUB;
break;
+ case Iop_Sub64:
+ aluOp = Malu_DSUB;
+ break;
+
case Iop_And32:
case Iop_And64:
aluOp = Malu_AND;
@@ -702,6 +749,10 @@
aluOp = Malu_XOR;
break;
+ case Iop_Add64:
+ aluOp = Malu_DADD;
+ break;
+
default:
aluOp = Malu_INVALID;
break;
@@ -717,6 +768,8 @@
switch (aluOp) {
case Malu_ADD:
case Malu_SUB:
+ case Malu_DADD:
+ case Malu_DSUB:
ri_srcR = iselWordExpr_RH(env, True /*signed */ ,
e->Iex.Binop.arg2);
break;
@@ -762,23 +815,23 @@
case Mshft_SLL:
case Mshft_SRL:
case Mshft_SRA:
- ri_srcR = iselWordExpr_RH5u(env, e->Iex.Binop. arg2);
+ if (mode64)
+ ri_srcR = iselWordExpr_RH6u(env, e->Iex.Binop.arg2);
+ else
+ ri_srcR = iselWordExpr_RH5u(env, e->Iex.Binop.arg2);
break;
default:
vpanic("iselIntExpr_R_wrk-shftOp-arg2");
}
- /* widen the left arg if needed */
- /*TODO do we need this? */
- if (ty == Ity_I8 || ty == Ity_I16)
- goto irreducible;
if (ty == Ity_I64) {
vassert(mode64);
addInstr(env, MIPSInstr_Shft(shftOp, False/*64bit shift */,
r_dst, r_srcL, ri_srcR));
- } else {
+ } else if (ty == Ity_I32) {
addInstr(env, MIPSInstr_Shft(shftOp, True /*32bit shift */,
r_dst, r_srcL, ri_srcR));
- }
+ } else
+ goto irreducible;
return r_dst;
}
@@ -847,8 +900,7 @@
size32 = False;
break;
default:
- vpanic
- ("iselCondCode(mips): CmpXX32 or CmpXX64");
+ vpanic("iselCondCode(mips): CmpXX32 or CmpXX64");
}
addInstr(env, MIPSInstr_Cmp(syned, size32, dst, r1, r2, cc));
@@ -856,22 +908,21 @@
}
if (e->Iex.Binop.op == Iop_Max32U) {
- /*
- tmp = argR - argL;
- dst = argL;
- bltz tmp,2;
- dst = argR;
-
- */
+ HReg tmp = newVRegI(env);
+ HReg r_dst = newVRegI(env);
HReg argL = iselWordExpr_R(env, e->Iex.Binop.arg1);
- MIPSRH *argR = iselWordExpr_RH(env, False /*signed */ ,
+ HReg argR = iselWordExpr_R(env, e->Iex.Binop.arg2);
+ MIPSRH *argRH = iselWordExpr_RH(env, False /*signed */ ,
e->Iex.Binop.arg2);
- HReg dst = newVRegI(env);
- HReg tmp = newVRegI(env);
- addInstr(env, MIPSInstr_Alu(Malu_SUB, tmp, argL, argR));
- addInstr(env, MIPSInstr_MovCond(dst, argL, argR, tmp, MIPScc_MI));
+ /* max (v0, s0)
+ ------------
+ slt v1, v0, s0
+ movn v0, s0, v1 */
- return dst;
+ addInstr(env, MIPSInstr_Alu(Malu_SLT, tmp, argL, argRH));
+ addInstr(env, mk_iMOVds_RR(r_dst, argL));
+ addInstr(env, MIPSInstr_MoveCond(MMoveCond_movn, r_dst, argR, tmp));
+ return r_dst;
}
if (e->Iex.Binop.op == Iop_Mul32 || e->Iex.Binop.op == Iop_Mul64) {
@@ -922,7 +973,10 @@
if (e->Iex.Binop.op == Iop_CmpF64) {
HReg r_srcL, r_srcR;
- {
+ if (mode64) {
+ r_srcL = iselFltExpr(env, e->Iex.Binop.arg1);
+ r_srcR = iselFltExpr(env, e->Iex.Binop.arg2);
+ } else {
r_srcL = iselDblExpr(env, e->Iex.Binop.arg1);
r_srcR = iselDblExpr(env, e->Iex.Binop.arg2);
}
@@ -934,26 +988,26 @@
HReg r_ccIR_b6 = newVRegI(env);
/* Create in dst, the IRCmpF64Result encoded result. */
- // chech for EQ
+ /* chech for EQ */
addInstr(env, MIPSInstr_FpCompare(Mfp_CMP, tmp, r_srcL, r_srcR,
toUChar(2)));
addInstr(env, MIPSInstr_Shft(Mshft_SRA, True, r_ccMIPS, tmp,
MIPSRH_Imm(False, 22)));
- // chech for UN
+ /* chech for UN */
addInstr(env, MIPSInstr_FpCompare(Mfp_CMP, tmp, r_srcL, r_srcR,
toUChar(1)));
addInstr(env, MIPSInstr_Shft(Mshft_SRA, True, tmp, tmp,
MIPSRH_Imm(False, 23)));
addInstr(env, MIPSInstr_Alu(Malu_OR, r_ccMIPS, r_ccMIPS,
MIPSRH_Reg(tmp)));
- // chech for LT
+ /* chech for LT */
addInstr(env, MIPSInstr_FpCompare(Mfp_CMP, tmp, r_srcL, r_srcR,
toUChar(12)));
addInstr(env, MIPSInstr_Shft(Mshft_SRA, True, tmp,
tmp, MIPSRH_Imm(False, 21)));
addInstr(env, MIPSInstr_Alu(Malu_OR, r_ccMIPS, r_ccMIPS,
MIPSRH_Reg(tmp)));
- // chech for GT
+ /* chech for GT */
addInstr(env, MIPSInstr_FpCompare(Mfp_CMP, tmp, r_srcL, r_srcR,
toUChar(15)));
addInstr(env, MIPSInstr_Shft(Mshft_SRA, True, tmp, tmp,
@@ -964,9 +1018,8 @@
MIPSRH_Imm(False, 8)));
addInstr(env, MIPSInstr_Alu(Malu_OR, r_ccMIPS, r_ccMIPS,
MIPSRH_Reg(tmp)));
- /* Map compare result from PPC to IR,
- conforming to CmpF64 definition. */
- /*
+ /* Map compare result from MIPS to IR,
+ conforming to CmpF64 definition.
FP cmp result | MIPS | IR
--------------------------
UN | 0x1 | 0x45
@@ -975,7 +1028,7 @@
LT | 0x8 | 0x01
*/
- // r_ccIR_b0 = r_ccPPC[0] | r_ccPPC[3]
+ /* r_ccIR_b0 = r_ccMIPS[0] | r_ccMIPS[3] */
addInstr(env, MIPSInstr_Shft(Mshft_SRL, True, r_ccIR_b0, r_ccMIPS,
MIPSRH_Imm(False, 0x3)));
addInstr(env, MIPSInstr_Alu(Malu_OR, r_ccIR_b0, r_ccMIPS,
@@ -983,13 +1036,13 @@
addInstr(env, MIPSInstr_Alu(Malu_AND, r_ccIR_b0, r_ccIR_b0,
MIPSRH_Imm(False, 0x1)));
- // r_ccIR_b2 = r_ccPPC[0]
+ /* r_ccIR_b2 = r_ccMIPS[0] */
addInstr(env, MIPSInstr_Shft(Mshft_SLL, True, r_ccIR_b2, r_ccMIPS,
MIPSRH_Imm(False, 0x2)));
addInstr(env, MIPSInstr_Alu(Malu_AND, r_ccIR_b2, r_ccIR_b2,
MIPSRH_Imm(False, 0x4)));
- // r_ccIR_b6 = r_ccPPC[0] | r_ccPPC[1]
+ /* r_ccIR_b6 = r_ccMIPS[0] | r_ccMIPS[1] */
addInstr(env, MIPSInstr_Shft(Mshft_SRL, True, r_ccIR_b6,
r_ccMIPS, MIPSRH_Imm(False, 0x1)));
addInstr(env, MIPSInstr_Alu(Malu_OR, r_ccIR_b6, r_ccMIPS,
@@ -999,7 +1052,7 @@
addInstr(env, MIPSInstr_Alu(Malu_AND, r_ccIR_b6, r_ccIR_b6,
MIPSRH_Imm(False, 0x40)));
- // r_ccIR = r_ccIR_b0 | r_ccIR_b2 | r_ccIR_b6
+ /* r_ccIR = r_ccIR_b0 | r_ccIR_b2 | r_ccIR_b6 */
addInstr(env, MIPSInstr_Alu(Malu_OR, r_ccIR, r_ccIR_b0,
MIPSRH_Reg(r_ccIR_b2)));
addInstr(env, MIPSInstr_Alu(Malu_OR, r_ccIR, r_ccIR,
@@ -1058,33 +1111,49 @@
return r_dst;
}
+ if (e->Iex.Binop.op == Iop_F32toI64S) {
+ vassert(mode64);
+ HReg valS = newVRegI(env);
+ HReg tmpF = newVRegF(env);
+ HReg valF = iselFltExpr(env, e->Iex.Binop.arg2);
+
+ /* CVTLS tmpF, valF */
+ set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
+ addInstr(env, MIPSInstr_FpConvert(Mfp_CVTLS, tmpF, valF));
+ set_MIPS_rounding_default(env);
+
+ /* Doubleword Move from Floating Point
+ dmfc1 valS, tmpF */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_dmfc1, valS, tmpF));
+
+ return valS;
+ }
+
if (e->Iex.Binop.op == Iop_F64toI32S) {
- HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
+ HReg valD;
+ if (mode64)
+ valD = iselFltExpr(env, e->Iex.Binop.arg2);
+ else
+ valD = iselDblExpr(env, e->Iex.Binop.arg2);
HReg valS = newVRegF(env);
HReg r_dst = newVRegI(env);
- MIPSAMode *am_addr;
+ /* CVTWD valS, valD */
set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
addInstr(env, MIPSInstr_FpConvert(Mfp_CVTWD, valS, valD));
set_MIPS_rounding_default(env);
- sub_from_sp(env, 16); // Move SP down 16 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
+ /* Move Word From Floating Point
+ mfc1 r_dst, valS */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_mfc1, r_dst, valS));
- // store as F32
- addInstr(env, MIPSInstr_FpLdSt(False/*store */ , 4, valS, am_addr));
- // load as I32
- addInstr(env, MIPSInstr_Load(4, r_dst, am_addr, mode64));
-
- add_to_sp(env, 16); // Reset SP
-
return r_dst;
}
break;
}
- /* --------- UNARY OP --------- */
+ /* --------- UNARY OP --------- */
case Iex_Unop: {
IROp op_unop = e->Iex.Unop.op;
@@ -1135,7 +1204,7 @@
return r_dst;
}
- /*not(x) = nor(x,x) */
+ /* not(x) = nor(x,x) */
case Iop_Not1: {
HReg r_dst = newVRegI(env);
HReg r_srcL = iselWordExpr_R(env, e->Iex.Unop.arg);
@@ -1157,39 +1226,45 @@
}
case Iop_ReinterpF32asI32: {
- MIPSAMode *am_addr;
HReg fr_src = iselFltExpr(env, e->Iex.Unop.arg);
HReg r_dst = newVRegI(env);
- sub_from_sp(env, 16); // Move SP down 16 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
+ /* Move Word From Floating Point
+ mfc1 r_dst, fr_src */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_mfc1, r_dst, fr_src));
- // store as F32
- addInstr(env, MIPSInstr_FpLdSt(False/*store */ , 4, fr_src,
- am_addr));
- // load as Ity_I32
- addInstr(env, MIPSInstr_Load(4, r_dst, am_addr, mode64));
-
- add_to_sp(env, 16); // Reset SP
return r_dst;
}
case Iop_ReinterpF64asI64: {
vassert(mode64);
- MIPSAMode *am_addr;
HReg fr_src = iselFltExpr(env, e->Iex.Unop.arg);
HReg r_dst = newVRegI(env);
- sub_from_sp(env, 16); // Move SP down 16 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
+ /* Doubleword Move from Floating Point
+ mfc1 r_dst, fr_src */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_dmfc1, r_dst, fr_src));
- // store as F64
- addInstr(env, MIPSInstr_FpLdSt(False/*store */ , 8, fr_src,
- am_addr));
- // load as Ity_I64
- addInstr(env, MIPSInstr_Load(8, r_dst, am_addr, mode64));
+ return r_dst;
+ }
- add_to_sp(env, 16); // Reset SP
+ case Iop_F64toI32S: {
+ HReg valD;
+ if (mode64)
+ valD = iselFltExpr(env, e->Iex.Binop.arg2);
+ else
+ valD = iselDblExpr(env, e->Iex.Binop.arg2);
+ HReg valS = newVRegF(env);
+ HReg r_dst = newVRegI(env);
+
+ set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
+ addInstr(env, MIPSInstr_FpConvert(Mfp_CVTWD, valS, valD));
+ set_MIPS_rounding_default(env);
+
+ /* Move Word From Floating Point
+ mfc1 r_dst, valS */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_mfc1, r_dst, valS));
+
return r_dst;
}
@@ -1251,9 +1326,9 @@
HReg r_dst = newVRegI(env);
HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
vassert(mode64);
- addInstr(env, MIPSInstr_Shft(Mshft_SLL, False/*!32bit shift */,
+ addInstr(env, MIPSInstr_Shft(Mshft_SLL, False /*!32bit shift */,
r_dst, r_src, MIPSRH_Imm(False, 32)));
- addInstr(env, MIPSInstr_Shft(Mshft_SRL, False/*!32bit shift */,
+ addInstr(env, MIPSInstr_Shft(Mshft_SRL, False /*!32bit shift */,
r_dst, r_dst, MIPSRH_Imm(False, 32)));
return r_dst;
}
@@ -1263,33 +1338,47 @@
return iselWordExpr_R(env, e->Iex.Unop.arg);
case Iop_64HIto32: {
- HReg rHi, rLo;
- iselInt64Expr(&rHi, &rLo, env, e->Iex.Unop.arg);
- return rHi;
+ if (env->mode64) {
+ HReg r_dst = newVRegI(env);
+ HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
+ addInstr(env, MIPSInstr_Shft(Mshft_SRA, False /*64bit shift */,
+ r_dst, r_src, MIPSRH_Imm(True, 32)));
+ return r_dst;
+ } else {
+ HReg rHi, rLo;
+ iselInt64Expr(&rHi, &rLo, env, e->Iex.Unop.arg);
+ return rHi;
+ }
}
case Iop_64to32: {
- HReg rHi, rLo;
- iselInt64Expr(&rHi, &rLo, env, e->Iex.Unop.arg);
- return rLo;
+ if (env->mode64) {
+ HReg r_dst = newVRegI(env);
+ r_dst = iselWordExpr_R(env, e->Iex.Unop.arg);
+ return r_dst;
+ } else {
+ HReg rHi, rLo;
+ iselInt64Expr(&rHi, &rLo, env, e->Iex.Unop.arg);
+ return rLo;
+ }
}
-
+
case Iop_64to16: {
vassert(env->mode64);
HReg r_dst = newVRegI(env);
r_dst = iselWordExpr_R(env, e->Iex.Unop.arg);
return r_dst;
}
-
+
case Iop_32Sto64: {
HReg r_dst = newVRegI(env);
HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
vassert(mode64);
- addInstr(env, MIPSInstr_Shft(Mshft_SLL, True/*!32bit shift */,
+ addInstr(env, MIPSInstr_Shft(Mshft_SLL, True /*!32bit shift */,
r_dst, r_src, MIPSRH_Imm(True, 0)));
return r_dst;
}
-
+
case Iop_CmpNEZ8: {
HReg r_dst = newVRegI(env);
HReg tmp = newVRegI(env);
@@ -1353,13 +1442,25 @@
return r_dst;
}
+ case Iop_Clz64: {
+ vassert(mode64);
+ HReg r_dst = newVRegI(env);
+ HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
+ addInstr(env, MIPSInstr_Unary(Mun_DCLZ, r_dst, r_src));
+ return r_dst;
+ }
+
case Iop_CmpNEZ64: {
HReg hi, lo;
HReg r_dst = newVRegI(env);
HReg r_src;
- r_src = newVRegI(env);
- iselInt64Expr(&hi, &lo, env, e->Iex.Unop.arg);
- addInstr(env, MIPSInstr_Alu(Malu_OR, r_src, lo, MIPSRH_Reg(hi)));
+ if (env->mode64) {
+ r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
+ } else {
+ r_src = newVRegI(env);
+ iselInt64Expr(&hi, &lo, env, e->Iex.Unop.arg);
+ addInstr(env, MIPSInstr_Alu(Malu_OR, r_src, lo, MIPSRH_Reg(hi)));
+ }
MIPSCondCode cc;
cc = MIPScc_NE;
@@ -1388,14 +1489,14 @@
vassert(mode64);
HReg rHi, rLo;
iselInt128Expr(&rHi, &rLo, env, e->Iex.Unop.arg);
- return rHi; /* and abandon rLo .. poor wee thing :-) */
+ return rHi; /* and abandon rLo .. poor wee thing :-) */
}
case Iop_128to64: {
vassert(mode64);
HReg rHi, rLo;
iselInt128Expr(&rHi, &rLo, env, e->Iex.Unop.arg);
- return rLo; /* and abandon rLo .. poor wee thing :-) */
+ return rLo; /* and abandon rLo .. poor wee thing :-) */
}
default:
@@ -1404,7 +1505,7 @@
break;
}
- /* --------- GET --------- */
+ /* --------- GET --------- */
case Iex_Get: {
if (ty == Ity_I8 || ty == Ity_I16 || ty == Ity_I32
|| ((ty == Ity_I64) && mode64)) {
@@ -1419,13 +1520,13 @@
break;
}
- /* --------- MULTIPLEX --------- */
+ /* --------- ITE --------- */
case Iex_ITE: {
if ((ty == Ity_I8 || ty == Ity_I16 ||
ty == Ity_I32 || ((ty == Ity_I64))) &&
typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I1) {
/*
- * r_dst = cond && rX
+ * r_dst = cond && r1
* cond = not(cond)
* tmp = cond && r0
* r_dst = tmp + r_dst
@@ -1439,7 +1540,6 @@
HReg r_tmp = newVRegI(env);
HReg r_tmp1 = newVRegI(env);
HReg r_cond_neg = newVRegI(env);
-
/* r_cond = 0 - r_cond_1 */
addInstr(env, MIPSInstr_LI(mask, 0x0));
addInstr(env, MIPSInstr_Alu(Malu_SUB, r_cond,
@@ -1458,8 +1558,8 @@
break;
}
- /* --------- LITERAL --------- */
- /* 32/16/8-bit literals */
+ /* --------- LITERAL --------- */
+ /* 32/16/8-bit literals */
case Iex_Const: {
Long l;
HReg r_dst = newVRegI(env);
@@ -1486,7 +1586,7 @@
return r_dst;
}
- /* --------- CCALL --------- */
+ /* --------- CCALL --------- */
case Iex_CCall: {
HReg r_dst = newVRegI(env);
vassert(ty == e->Iex.CCall.retty);
@@ -1517,7 +1617,7 @@
default:
break;
- } /* end switch(e->tag) */
+ } /* end switch(e->tag) */
/* We get here if no pattern matched. */
irreducible:
@@ -1644,6 +1744,48 @@
return MIPSRH_Reg(iselWordExpr_R(env, e));
}
+/* --------------------- RH6u --------------------- */
+
+/* Only used in 64-bit mode. */
+static MIPSRH *iselWordExpr_RH6u ( ISelEnv * env, IRExpr * e )
+{
+ MIPSRH *ri;
+ vassert(env->mode64);
+ ri = iselWordExpr_RH6u_wrk(env, e);
+ /* sanity checks ... */
+ switch (ri->tag) {
+ case Mrh_Imm:
+ vassert(ri->Mrh.Imm.imm16 >= 1 && ri->Mrh.Imm.imm16 <= 63);
+ vassert(!ri->Mrh.Imm.syned);
+ return ri;
+ case Mrh_Reg:
+ vassert(hregClass(ri->Mrh.Reg.reg) == HRcGPR(env->mode64));
+ vassert(hregIsVirtual(ri->Mrh.Reg.reg));
+ return ri;
+ default:
+ vpanic("iselIntExpr_RH6u: unknown mips64 RI tag");
+ }
+}
+
+/* DO NOT CALL THIS DIRECTLY ! */
+static MIPSRH *iselWordExpr_RH6u_wrk ( ISelEnv * env, IRExpr * e )
+{
+ IRType ty = typeOfIRExpr(env->type_env, e);
+ vassert(ty == Ity_I8);
+
+ /* special case: immediate */
+ if (e->tag == Iex_Const
+ && e->Iex.Const.con->tag == Ico_U8
+ && e->Iex.Const.con->Ico.U8 >= 1 && e->Iex.Const.con->Ico.U8 <= 63)
+ {
+ return MIPSRH_Imm(False /*unsigned */ ,
+ e->Iex.Const.con->Ico.U8);
+ }
+
+ /* default case: calculate into a register and return that */
+ return MIPSRH_Reg(iselWordExpr_R(env, e));
+}
+
/* --------------------- CONDCODE --------------------- */
/* Generate code to evaluated a bit-typed expression, returning the
@@ -1732,11 +1874,12 @@
}
addInstr(env, MIPSInstr_Cmp(syned, size32, dst, r1, r2, cc));
- // Store result to guest_COND
+ /* Store result to guest_COND */
MIPSAMode *am_addr = MIPSAMode_IR(0, GuestStatePointer(mode64));
addInstr(env, MIPSInstr_Store(4,
- MIPSAMode_IR(am_addr->Mam.IR.index + 316, am_addr->Mam.IR.base),
+ MIPSAMode_IR(am_addr->Mam.IR.index + COND_OFFSET(mode64),
+ am_addr->Mam.IR.base),
dst, mode64));
return cc;
}
@@ -1747,21 +1890,23 @@
addInstr(env, MIPSInstr_LI(r_dst, 0x1));
addInstr(env, MIPSInstr_Alu(Malu_SUB, r_dst, r_dst, r_srcR));
- // Store result to guest_COND
+ /* Store result to guest_COND */
MIPSAMode *am_addr = MIPSAMode_IR(0, GuestStatePointer(mode64));
addInstr(env, MIPSInstr_Store(4,
- MIPSAMode_IR(am_addr->Mam.IR.index + 316, am_addr->Mam.IR.base),
+ MIPSAMode_IR(am_addr->Mam.IR.index + COND_OFFSET(mode64),
+ am_addr->Mam.IR.base),
r_dst, mode64));
return MIPScc_NE;
}
if (e->tag == Iex_RdTmp || e->tag == Iex_Unop) {
HReg r_dst = iselWordExpr_R_wrk(env, e);
- // Store result to guest_COND
+ /* Store result to guest_COND */
MIPSAMode *am_addr = MIPSAMode_IR(0, GuestStatePointer(mode64));
addInstr(env, MIPSInstr_Store(4,
- MIPSAMode_IR(am_addr->Mam.IR.index + 316, am_addr->Mam.IR.base),
+ MIPSAMode_IR(am_addr->Mam.IR.index + COND_OFFSET(mode64),
+ am_addr->Mam.IR.base),
r_dst, mode64));
return MIPScc_EQ;
}
@@ -1961,6 +2106,7 @@
/* 64-bit ITE */
if (e->tag == Iex_ITE) {
vassert(typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I1);
+ vassert(!mode64);
HReg expr0Lo, expr0Hi;
HReg expr1Lo, expr1Hi;
HReg tmpHi = newVRegI(env);
@@ -1973,7 +2119,6 @@
HReg mask = newVRegI(env);
HReg desLo = newVRegI(env);
HReg desHi = newVRegI(env);
-
/* r_cond = 0 - r_cond_1 */
addInstr(env, MIPSInstr_LI(mask, 0x0));
addInstr(env, MIPSInstr_Alu(Malu_SUB, r_cond,
@@ -2030,7 +2175,7 @@
HReg r_srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
HReg r_srcR = iselWordExpr_R(env, e->Iex.Binop.arg2);
- addInstr(env, MIPSInstr_Mul(syned/*Unsigned or Signed */ ,
+ addInstr(env, MIPSInstr_Mul(syned /*Unsigned or Signed */,
True /*widen */ , True,
r_dst, r_srcL, r_srcR));
addInstr(env, MIPSInstr_Mfhi(tHi));
@@ -2058,13 +2203,13 @@
return;
}
- /* 32HLto64(e1,e2) */
+ /* 32HLto64(e1,e2) */
case Iop_32HLto64:
*rHi = iselWordExpr_R(env, e->Iex.Binop.arg1);
*rLo = iselWordExpr_R(env, e->Iex.Binop.arg2);
return;
- /* Or64/And64/Xor64 */
+ /* Or64/And64/Xor64 */
case Iop_Or64:
case Iop_And64:
case Iop_Xor64: {
@@ -2165,24 +2310,25 @@
MIPSAMode *am_addr;
HReg fr_src = iselDblExpr(env, e->Iex.Unop.arg);
- sub_from_sp(env, 16); // Move SP down 16 bytes
+ sub_from_sp(env, 16); /* Move SP down 16 bytes */
am_addr = MIPSAMode_IR(0, StackPointer(mode64));
- // store as F64
+ /* store as F64 */
addInstr(env, MIPSInstr_FpLdSt(False /*store */ , 8, fr_src,
am_addr));
- // load as 2xI32
+ /* load as 2xI32 */
addInstr(env, MIPSInstr_Load(4, tLo, am_addr, mode64));
addInstr(env, MIPSInstr_Load(4, tHi, nextMIPSAModeFloat(am_addr),
mode64));
- add_to_sp(env, 16); // Reset SP
+ /* Reset SP */
+ add_to_sp(env, 16);
*rHi = tHi;
*rLo = tLo;
return;
}
-
+
default:
vex_printf("UNARY: No such op: ");
ppIROp(e->Iex.Unop.op);
@@ -2202,7 +2348,6 @@
/* Nothing interesting here; really just wrappers for
64-bit stuff. */
-
static HReg iselFltExpr(ISelEnv * env, IRExpr * e)
{
HReg r = iselFltExpr_wrk(env, e);
@@ -2226,7 +2371,10 @@
vassert(e->Iex.Load.ty == Ity_F32
|| (e->Iex.Load.ty == Ity_F64 && mode64));
am_addr = iselWordExpr_AMode(env, e->Iex.Load.addr, ty);
- addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 4, r_dst, am_addr));
+ if (mode64 && e->Iex.Load.ty == Ity_F64)
+ addInstr(env, MIPSInstr_FpLdSt(True /*load */, 8, r_dst, am_addr));
+ else
+ addInstr(env, MIPSInstr_FpLdSt(True /*load */, 4, r_dst, am_addr));
return r_dst;
}
@@ -2234,70 +2382,110 @@
HReg r_dst = newVRegF(env);
MIPSAMode *am_addr = MIPSAMode_IR(e->Iex.Get.offset,
GuestStatePointer(mode64));
- addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 4, r_dst, am_addr));
+ if (mode64)
+ addInstr(env, MIPSInstr_FpLdSt(True /*load */, 8, r_dst, am_addr));
+ else
+ addInstr(env, MIPSInstr_FpLdSt(True /*load */, 4, r_dst, am_addr));
return r_dst;
}
if (e->tag == Iex_Unop) {
switch (e->Iex.Unop.op) {
case Iop_ReinterpI32asF32: {
- MIPSAMode *am_addr;
HReg fr_src = iselWordExpr_R(env, e->Iex.Unop.arg);
HReg r_dst = newVRegF(env);
- sub_from_sp(env, 16); // Move SP down 16 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
+ /* Move Word to Floating Point
+ mtc1 r_dst, valS */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_mtc1, r_dst, fr_src));
- // store as I32
- addInstr(env, MIPSInstr_Store(4, am_addr, fr_src, mode64));
-
- // load as Ity_F32
- addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 4, r_dst, am_addr));
-
- add_to_sp(env, 16); // Reset SP
return r_dst;
-
}
case Iop_F32toF64: {
- /* first arg is rounding mode; we ignore it. */
- MIPSAMode *am_addr;
- HReg src = iselFltExpr(env, e->Iex.Unop.arg);
- HReg dst = newVRegF(env);
+ if (mode64) {
+ HReg src = iselFltExpr(env, e->Iex.Unop.arg);
+ HReg dst = newVRegD(env);
- sub_from_sp(env, 16); // Move SP down 16 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
-
- addInstr(env, MIPSInstr_Store(4,
- MIPSAMode_IR(am_addr->Mam.IR.index + 4,
- am_addr->Mam.IR.base),
- hregMIPS_GPR0(mode64), mode64));
- addInstr(env, MIPSInstr_FpLdSt(False /*store */ , 4, src, am_addr));
-
- // load as Ity_F32
- addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 8, dst, am_addr));
- add_to_sp(env, 16); // Reset SP
-
- return dst;
+ addInstr(env, MIPSInstr_FpConvert(Mfp_CVTDS, dst, src));
+ return dst;
+ } else {
+ MIPSAMode *am_addr;
+ HReg src = iselFltExpr(env, e->Iex.Unop.arg);
+ HReg dst = newVRegF(env);
+
+ sub_from_sp(env, 16); /* Move SP down 16 bytes */
+ am_addr = MIPSAMode_IR(0, StackPointer(mode64));
+
+ addInstr(env, MIPSInstr_Store(4,
+ MIPSAMode_IR(am_addr->Mam.IR.index +4,
+ am_addr->Mam.IR.base),
+ hregMIPS_GPR0(mode64), mode64));
+ addInstr(env, MIPSInstr_FpLdSt(False /* store */, 4, src, am_addr));
+
+ /* load as Ity_F64 */
+ addInstr(env, MIPSInstr_FpLdSt(True /* load */, 8, dst, am_addr));
+ /* Reset SP */
+ add_to_sp(env, 16);
+
+ return dst;
+ }
}
- case Iop_ReinterpI64asF64:
- {
+ case Iop_ReinterpI64asF64: {
vassert(mode64);
- MIPSAMode *am_addr;
HReg fr_src = iselWordExpr_R(env, e->Iex.Unop.arg);
HReg r_dst = newVRegF(env);
- sub_from_sp(env, 16); // Move SP down 16 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
+ /* Move Doubleword to Floating Point
+ dmtc1 r_dst, valS */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_dmtc1, r_dst, fr_src));
- // store as I64
- addInstr(env, MIPSInstr_Store(8, am_addr, fr_src, mode64));
+ return r_dst;
+ }
+ case Iop_I32StoF64: {
+ vassert(mode64);
+ HReg dst = newVRegF(env);
+ HReg tmp1 = newVRegF(env);
+ HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
+ MIPSAMode *am_addr;
- // load as Ity_F64
- addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 8, r_dst, am_addr));
+ /* Move Word to Floating Point
+ mtc1 tmp1, r_src */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_mtc1, tmp1, r_src));
- add_to_sp(env, 16); // Reset SP
- return r_dst;
- }
+ HReg irrm = newVRegI(env);
+
+ MIPSAMode *am_addr1 = MIPSAMode_IR(552, GuestStatePointer(mode64));
+
+ addInstr(env, MIPSInstr_Load(4, irrm, am_addr1, mode64));
+
+ /* set rounding mode */
+ HReg tmp = newVRegI(env);
+ HReg fcsr_old = newVRegI(env);
+
+ addInstr(env, MIPSInstr_Shft(Mshft_SLL, True, tmp,
+ irrm, MIPSRH_Imm(False, 1)));
+ addInstr(env, MIPSInstr_Alu(Malu_XOR, tmp, irrm, MIPSRH_Reg(tmp)));
+ addInstr(env, MIPSInstr_Alu(Malu_AND, irrm, tmp,
+ MIPSRH_Imm(False, 3)));
+ /* save old value of FCSR */
+ addInstr(env, MIPSInstr_MfFCSR(fcsr_old));
+ /* Move SP down 8 bytes */
+ sub_from_sp(env, 8);
+ am_addr = MIPSAMode_IR(0, StackPointer(mode64));
+
+ /* store old FCSR to stack */
+ addInstr(env, MIPSInstr_Store(4, am_addr, fcsr_old, mode64));
+
+ /* set new value of FCSR */
+ addInstr(env, MIPSInstr_MtFCSR(irrm));
+
+ /* and do convert */
+ addInstr(env, MIPSInstr_FpConvert(Mfp_CVTDW, dst, tmp1));
+ /* set MIPS roundig mode to default and reset sp */
+ set_MIPS_rounding_default(env);
+
+ return dst;
+ }
case Iop_AbsF32:
case Iop_AbsF64: {
Bool sz32 = e->Iex.Unop.op == Iop_AbsF32;
@@ -2314,6 +2502,13 @@
addInstr(env, MIPSInstr_FpUnary(sz32 ? Mfp_NEGS : Mfp_NEGD, dst, src));
return dst;
}
+ case Iop_RoundF64toF64_ZERO: {
+ vassert(mode64);
+ HReg src = iselFltExpr(env, e->Iex.Unop.arg);
+ HReg dst = newVRegF(env);
+ addInstr(env, MIPSInstr_FpConvert(Mfp_TRULD, dst, src));
+ return dst;
+ }
default:
break;
}
@@ -2337,19 +2532,37 @@
case Iop_DivF32:
op = Mfp_DIVS;
break;
+ case Iop_DivF64:
+ vassert(mode64);
+ op = Mfp_DIVD;
+ break;
case Iop_MulF32:
op = Mfp_MULS;
break;
+ case Iop_MulF64:
+ vassert(mode64);
+ op = Mfp_MULD;
+ break;
case Iop_AddF32:
op = Mfp_ADDS;
break;
+ case Iop_AddF64:
+ vassert(mode64);
+ op = Mfp_ADDD;
+ break;
case Iop_SubF32:
op = Mfp_SUBS;
break;
+ case Iop_SubF64:
+ vassert(mode64);
+ op = Mfp_SUBD;
+ break;
default:
vassert(0);
}
+ set_MIPS_rounding_mode(env, e->Iex.Triop.details->arg1);
addInstr(env, MIPSInstr_FpBinary(op, dst, argL, argR));
+ set_MIPS_rounding_default(env);
return dst;
}
default:
@@ -2360,7 +2573,11 @@
if (e->tag == Iex_Binop) {
switch (e->Iex.Binop.op) {
case Iop_F64toF32: {
- HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
+ HReg valD;
+ if (mode64)
+ valD = iselFltExpr(env, e->Iex.Binop.arg2);
+ else
+ valD = iselDblExpr(env, e->Iex.Binop.arg2);
HReg valS = newVRegF(env);
set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
@@ -2375,36 +2592,90 @@
set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
addInstr(env, MIPSInstr_FpConvert(Mfp_CVTWS, valS, valF));
-
set_MIPS_rounding_default(env);
return valS;
}
+ case Iop_RoundF64toInt: {
+ HReg valS = newVRegF(env);
+ HReg valF = iselFltExpr(env, e->Iex.Binop.arg2);
+
+ set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
+ addInstr(env, MIPSInstr_FpConvert(Mfp_CVTLD, valS, valF));
+ set_MIPS_rounding_default(env);
+ return valS;
+ }
+
case Iop_I32StoF32: {
HReg r_dst = newVRegF(env);
+ HReg fr_src = iselWordExpr_R(env, e->Iex.Binop.arg2);
+ HReg tmp = newVRegF(env);
+ /* Move Word to Floating Point
+ mtc1 tmp, fr_src */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_mtc1, tmp, fr_src));
+
+ set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
+ addInstr(env, MIPSInstr_FpConvert(Mfp_CVTSW, r_dst, tmp));
+ set_MIPS_rounding_default(env);
+
+ return r_dst;
+ }
+
+ case Iop_I64StoF64: {
+ HReg r_dst = newVRegF(env);
+
MIPSAMode *am_addr;
HReg fr_src = iselWordExpr_R(env, e->Iex.Binop.arg2);
HReg tmp = newVRegF(env);
- sub_from_sp(env, 16); // Move SP down 16 bytes
+ /* Move SP down 8 bytes */
+ sub_from_sp(env, 8);
am_addr = MIPSAMode_IR(0, StackPointer(mode64));
- // store as I32
- addInstr(env, MIPSInstr_Store(4, am_addr, fr_src, mode64));
+ /* store as I64 */
+ addInstr(env, MIPSInstr_Store(8, am_addr, fr_src, mode64));
- // load as Ity_F32
- addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 4, tmp, am_addr));
+ /* load as Ity_F64 */
+ addInstr(env, MIPSInstr_FpLdSt(True /*load */, 8, tmp, am_addr));
- add_to_sp(env, 16); // Reset SP
+ /* Reset SP */
+ add_to_sp(env, 8);
set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
- addInstr(env, MIPSInstr_FpConvert(Mfp_CVTSW, r_dst, tmp));
+ addInstr(env, MIPSInstr_FpConvert(Mfp_CVTDL, r_dst, tmp));
set_MIPS_rounding_default(env);
return r_dst;
}
+ case Iop_I64StoF32: {
+ HReg r_dst = newVRegF(env);
+
+ MIPSAMode *am_addr;
+ HReg fr_src = iselWordExpr_R(env, e->Iex.Binop.arg2);
+ HReg tmp = newVRegF(env);
+
+ /* Move SP down 8 bytes */
+ sub_from_sp(env, 8);
+ am_addr = MIPSAMode_IR(0, StackPointer(mode64));
+
+ /* store as I64 */
+ addInstr(env, MIPSInstr_Store(8, am_addr, fr_src, mode64));
+
+ /* load as Ity_F64 */
+ addInstr(env, MIPSInstr_FpLdSt(True /*load */, 8, tmp, am_addr));
+
+ /* Reset SP */
+ add_to_sp(env, 8);
+
+ set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
+ addInstr(env, MIPSInstr_FpConvert(Mfp_CVTSL, r_dst, tmp));
+ set_MIPS_rounding_default(env);
+
+ return r_dst;
+ }
+
case Iop_SqrtF32:
case Iop_SqrtF64: {
/* first arg is rounding mode; we ignore it. */
@@ -2417,12 +2688,51 @@
set_MIPS_rounding_default(env);
return dst;
}
-
+
default:
break;
}
}
+ if (e->tag == Iex_Qop) {
+ switch (e->Iex.Qop.details->op) {
+ case Iop_MAddF32:
+ case Iop_MAddF64:
+ case Iop_MSubF32:
+ case Iop_MSubF64: {
+ MIPSFpOp op = 0;
+ switch (e->Iex.Qop.details->op) {
+ case Iop_MAddF32:
+ op = Mfp_MADDS;
+ break;
+ case Iop_MAddF64:
+ op = Mfp_MADDD;
+ break;
+ case Iop_MSubF32:
+ op = Mfp_MSUBS;
+ break;
+ case Iop_MSubF64:
+ op = Mfp_MSUBD;
+ break;
+ default:
+ vassert(0);
+ }
+ HReg dst = newVRegF(env);
+ HReg src1 = iselFltExpr(env, e->Iex.Qop.details->arg2);
+ HReg src2 = iselFltExpr(env, e->Iex.Qop.details->arg3);
+ HReg src3 = iselFltExpr(env, e->Iex.Qop.details->arg4);
+ set_MIPS_rounding_mode(env, e->Iex.Qop.details->arg1);
+ addInstr(env, MIPSInstr_FpTernary(op, dst,
+ src1, src2, src3));
+ set_MIPS_rounding_default(env);
+ return dst;
+ }
+
+ default:
+ break;
+ }
+ }
+
if (e->tag == Iex_Unop && e->Iex.Unop.op == Iop_TruncF64asF32) {
/* This is quite subtle. The only way to do the relevant
truncation is to do a single-precision store and then a
@@ -2457,14 +2767,30 @@
MIPSAMode *zero_r1 = MIPSAMode_IR(0, StackPointer(mode64));
sub_from_sp(env, 16);
- // store as F32, hence truncating
+ /* store as F32, hence truncating */
addInstr(env, MIPSInstr_FpLdSt(False /*store */ , 4, fsrc, zero_r1));
- // and reload. Good huh?! (sigh)
+ /* and reload. Good huh?! (sigh) */
addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 4, fdst, zero_r1));
add_to_sp(env, 16);
return fdst;
}
+ /* --------- ITE --------- */
+ if (e->tag == Iex_ITE) {
+ if (ty == Ity_F64
+ && typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I1) {
+ vassert(mode64);
+ HReg r0 = iselFltExpr(env, e->Iex.ITE.iffalse);
+ HReg r1 = iselFltExpr(env, e->Iex.ITE.iftrue);
+ HReg r_cond = iselWordExpr_R(env, e->Iex.ITE.cond);
+ HReg r_dst = newVRegF(env);
+ addInstr(env, MIPSInstr_FpUnary(Mfp_MOVD, r_dst, r0));
+ addInstr(env, MIPSInstr_MoveCond(MFpMoveCond_movnd, r_dst, r1,
+ r_cond));
+ return r_dst;
+ }
+ }
+
vex_printf("iselFltExpr(mips): No such tag(0x%x)\n", e->tag);
ppIRExpr(e);
vpanic("iselFltExpr_wrk(mips)");
@@ -2519,39 +2845,11 @@
fpop = Mfp_ABSD;
break;
case Iop_F32toF64: {
+ vassert(!mode64);
HReg src = iselFltExpr(env, e->Iex.Unop.arg);
HReg dst = newVRegD(env);
- HReg irrm = newVRegI(env);
-
- MIPSAMode *am_addr1 = MIPSAMode_IR(284, GuestStatePointer(mode64));
-
- addInstr(env, MIPSInstr_Load(4, irrm, am_addr1, mode64));
-
- // set new FCSR
- HReg tmp = newVRegI(env);
- HReg fcsr_old = newVRegI(env);
- MIPSAMode *am_addr;
-
- addInstr(env, MIPSInstr_Shft(Mshft_SLL, True, tmp, irrm,
- MIPSRH_Imm(False, 1)));
- addInstr(env, MIPSInstr_Alu(Malu_XOR, tmp, irrm, MIPSRH_Reg(tmp)));
- addInstr(env, MIPSInstr_Alu(Malu_AND, irrm, tmp,
- MIPSRH_Imm(False, 3)));
- /* save old value of FCSR */
- addInstr(env, MIPSInstr_MfFCSR(fcsr_old));
- sub_from_sp(env, 8); // Move SP down 4 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
-
- //store old FCSR to stack
- addInstr(env, MIPSInstr_Store(4, am_addr, fcsr_old, mode64));
-
- //set new value of FCSR
- addInstr(env, MIPSInstr_MtFCSR(irrm));
-
- //set_MIPS_rounding_mode(env, e->Iex.Binop.arg1);
- addInstr(env, MIPSInstr_FpUnary(Mfp_CVTD, dst, src));
- set_MIPS_rounding_default(env);
+ addInstr(env, MIPSInstr_FpConvert(Mfp_CVTDS, dst, src));
return dst;
}
case Iop_ReinterpI64asF64: {
@@ -2561,32 +2859,27 @@
iselInt64Expr(&Hi, &Lo, env, e->Iex.Unop.arg);
- dst = mk_LoadRR32toFPR(env, Hi, Lo); // 2*I32 -> F64
+ dst = mk_LoadRR32toFPR(env, Hi, Lo); /* 2*I32 -> F64 */
return dst;
}
case Iop_I32StoF64: {
+ vassert(!mode64);
HReg dst = newVRegD(env);
HReg tmp1 = newVRegF(env);
HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
MIPSAMode *am_addr;
- sub_from_sp(env, 16); // Move SP down 16 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
- // store as I32
- addInstr(env, MIPSInstr_Store(4, am_addr, r_src, mode64));
+ /* Move Word to Floating Point
+ mtc1 tmp1, r_src */
+ addInstr(env, MIPSInstr_FpGpMove(MFpGpMove_mtc1, tmp1, r_src));
- // load as Ity_F32
- addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 4, tmp1, am_addr));
-
- add_to_sp(env, 16); // Reset SP
-
HReg irrm = newVRegI(env);
MIPSAMode *am_addr1 = MIPSAMode_IR(284, GuestStatePointer(mode64));
addInstr(env, MIPSInstr_Load(4, irrm, am_addr1, mode64));
- //set rounding mode
+ /* set rounding mode */
HReg tmp = newVRegI(env);
HReg fcsr_old = newVRegI(env);
@@ -2597,17 +2890,20 @@
MIPSRH_Imm(False, 3)));
/* save old value of FCSR */
addInstr(env, MIPSInstr_MfFCSR(fcsr_old));
- sub_from_sp(env, 8); // Move SP down 4 bytes
+ /* Move SP down 8 bytes */
+ sub_from_sp(env, 8);
am_addr = MIPSAMode_IR(0, StackPointer(mode64));
- //store old FCSR to stack
+ /* store old FCSR to stack */
addInstr(env, MIPSInstr_Store(4, am_addr, fcsr_old, mode64));
- //set new value of FCSR
+ /* set new value of FCSR */
addInstr(env, MIPSInstr_MtFCSR(irrm));
- // and do convert
+ /* and do convert */
addInstr(env, MIPSInstr_FpConvert(Mfp_CVTDW, dst, tmp1));
+
+ /* set MIPS roundinf mode to default and reset sp */
set_MIPS_rounding_default(env);
return dst;
@@ -2689,90 +2985,57 @@
}
}
- /* --------- MULTIPLEX --------- */
+ if (e->tag == Iex_Qop) {
+ switch (e->Iex.Qop.details->op) {
+ case Iop_MAddF32:
+ case Iop_MAddF64:
+ case Iop_MSubF32:
+ case Iop_MSubF64: {
+ MIPSFpOp op = 0;
+ switch (e->Iex.Qop.details->op) {
+ case Iop_MAddF32:
+ op = Mfp_MADDS;
+ break;
+ case Iop_MAddF64:
+ op = Mfp_MADDD;
+ break;
+ case Iop_MSubF32:
+ op = Mfp_MSUBS;
+ break;
+ case Iop_MSubF64:
+ op = Mfp_MSUBD;
+ break;
+ default:
+ vassert(0);
+ }
+ HReg dst = newVRegD(env);
+ HReg src1 = iselDblExpr(env, e->Iex.Qop.details->arg2);
+ HReg src2 = iselDblExpr(env, e->Iex.Qop.details->arg3);
+ HReg src3 = iselDblExpr(env, e->Iex.Qop.details->arg4);
+ set_MIPS_rounding_mode(env, e->Iex.Qop.details->arg1);
+ addInstr(env, MIPSInstr_FpTernary(op, dst,
+ src1, src2, src3));
+ set_MIPS_rounding_default(env);
+ return dst;
+ }
+
+ default:
+ break;
+ }
+ }
+
+ /* --------- ITE --------- */
if (e->tag == Iex_ITE) {
if (ty == Ity_F64
&& typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I1) {
HReg r0 = iselDblExpr(env, e->Iex.ITE.iffalse);
HReg r1 = iselDblExpr(env, e->Iex.ITE.iftrue);
- HReg r_cond_1 = iselWordExpr_R(env, e->Iex.ITE.cond);
- HReg r_cond = newVRegI(env);
- HReg r_cond_neg = newVRegI(env);
- HReg mask = newVRegI(env);
+ HReg r_cond = iselWordExpr_R(env, e->Iex.ITE.cond);
HReg r_dst = newVRegD(env);
- HReg r_tmp_lo = newVRegI(env);
- HReg r_tmp_hi = newVRegI(env);
- HReg r_tmp1_lo = newVRegI(env);
- HReg r_tmp1_hi = newVRegI(env);
- HReg r_r0_lo = newVRegI(env);
- HReg r_r0_hi = newVRegI(env);
- HReg r_r1_lo = newVRegI(env);
- HReg r_r1_hi = newVRegI(env);
- HReg r_dst_lo = newVRegI(env);
- HReg r_dst_hi = newVRegI(env);
- /* r_cond = 0 - r_cond_1 */
- addInstr(env, MIPSInstr_LI(mask, 0x0));
- addInstr(env, MIPSInstr_Alu(Malu_SUB, r_cond,
- mask, MIPSRH_Reg(r_cond_1)));
-
- sub_from_sp(env, 16); // Move SP down 16 bytes
- MIPSAMode *am_addr = MIPSAMode_IR(0, StackPointer(mode64));
-
- // store as Ity_F64
- addInstr(env, MIPSInstr_FpLdSt(False /*store */ , 8, r0, am_addr));
-
- // load as 2xI32
- addInstr(env, MIPSInstr_Load(4, r_r0_lo, am_addr, mode64));
- addInstr(env, MIPSInstr_Load(4, r_r0_hi, nextMIPSAModeFloat(am_addr),
- mode64));
-
- add_to_sp(env, 16); // Reset SP
-
- addInstr(env, MIPSInstr_Alu(Malu_AND, r_tmp_lo, r_cond,
- MIPSRH_Reg(r_r0_lo)));
- addInstr(env, MIPSInstr_Alu(Malu_AND, r_tmp_hi, r_cond,
- MIPSRH_Reg(r_r0_hi)));
-
- addInstr(env, MIPSInstr_Alu(Malu_NOR, r_cond_neg, r_cond,
- MIPSRH_Reg(r_cond)));
-
- sub_from_sp(env, 16); // Move SP down 16 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
-
- // store as Ity_F64
- addInstr(env, MIPSInstr_FpLdSt(False /*store */ , 8, r1, am_addr));
-
- // load as 2xI32
- addInstr(env, MIPSInstr_Load(4, r_r1_lo, am_addr, mode64));
- addInstr(env, MIPSInstr_Load(4, r_r1_hi, nextMIPSAModeFloat(am_addr),
- mode64));
-
- add_to_sp(env, 16); // Reset SP
-
- addInstr(env, MIPSInstr_Alu(Malu_AND, r_tmp1_lo, r_cond_neg,
- MIPSRH_Reg(r_r1_lo)));
- addInstr(env, MIPSInstr_Alu(Malu_AND, r_tmp1_hi, r_cond_neg,
- MIPSRH_Reg(r_r1_hi)));
-
- addInstr(env, MIPSInstr_Alu(Malu_ADD, r_dst_lo, r_tmp_lo,
- MIPSRH_Reg(r_tmp1_lo)));
- addInstr(env, MIPSInstr_Alu(Malu_ADD, r_dst_hi, r_tmp_hi,
- MIPSRH_Reg(r_tmp1_hi)));
-
- sub_from_sp(env, 16); // Move SP down 16 bytes
- am_addr = MIPSAMode_IR(0, StackPointer(mode64));
-
- // store as I32
- addInstr(env, MIPSInstr_Store(4, am_addr, r_dst_lo, mode64));
- addInstr(env, MIPSInstr_Store(4, nextMIPSAModeFloat(am_addr),
- r_dst_hi, mode64));
-
- // load as Ity_F32
- addInstr(env, MIPSInstr_FpLdSt(True /*load */ , 8, r_dst, am_addr));
-
- add_to_sp(...
[truncated message content] |
|
From: Jian O. <jo...@vm...> - 2013-02-27 06:58:30
|
Hi valgrind developers, Do you know when will next version valgrind release? We made some change on valgrind 3.7.0 to make it work in VMware ESXi. We are considering upgrading to latest version and maybe merge ESXi platform changes back to valgrind community. Any suggestions? Thanks! Jian Ouyang jo...@vm... |
|
From: Rich C. <rc...@wi...> - 2013-02-27 06:18:57
|
valgrind revision: 13291
VEX revision: 2686
C compiler: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
GDB: GNU gdb 6.3.50-20050815 (Apple version gdb-1515) (Sat Jan 15 08:30:16 UTC 2011)
Assembler:
C library: unknown
uname -mrs: Darwin 10.8.0 i386
Vendor version: unknown
Nightly build on macx86 ( Darwin 10.8.0 i386 )
Started at 2013-02-26 23:35:00 CST
Ended at 2013-02-27 00:17:39 CST
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
== 509 tests, 149 stderr failures, 4 stdout failures, 3 stderrB failures, 3 stdoutB failures, 1 post failure ==
gdbserver_tests/mchelp (stdoutB)
gdbserver_tests/mchelp (stderrB)
gdbserver_tests/mcinvokeRU (stdoutB)
gdbserver_tests/mcinvokeRU (stderrB)
gdbserver_tests/mcinvokeWS (stdoutB)
gdbserver_tests/mcinvokeWS (stderrB)
memcheck/tests/accounting (stderr)
memcheck/tests/badpoll (stderr)
memcheck/tests/big_blocks_freed_list (stderr)
memcheck/tests/bug287260 (stderr)
memcheck/tests/darwin/aio (stderr)
memcheck/tests/darwin/pth-supp (stderr)
memcheck/tests/darwin/scalar (stderr)
memcheck/tests/deep-backtrace (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/leak-delta (stderr)
memcheck/tests/leak-segv-jmp (stderr)
memcheck/tests/lks (stderr)
memcheck/tests/memcmptest (stderr)
memcheck/tests/mismatches (stderr)
memcheck/tests/null_socket (stdout)
memcheck/tests/origin5-bz2 (stderr)
memcheck/tests/overlap (stdout)
memcheck/tests/overlap (stderr)
memcheck/tests/sem (stderr)
memcheck/tests/strchr (stderr)
memcheck/tests/test-plo-no (stderr)
memcheck/tests/varinfo3 (stderr)
memcheck/tests/varinfo5 (stderr)
memcheck/tests/vbit-test/vbit-test (stderr)
memcheck/tests/vcpu_fnfns (stdout)
memcheck/tests/writev1 (stderr)
massif/tests/big-alloc (post)
massif/tests/pages_as_heap (stderr)
none/tests/allexec32 (stderr)
none/tests/allexec64 (stderr)
none/tests/async-sigs (stderr)
none/tests/cmdline5 (stderr)
none/tests/execve (stderr)
none/tests/faultstatus (stderr)
none/tests/mmap_fcntl_bug (stderr)
none/tests/nodir (stderr)
none/tests/pth_blockedsig (stderr)
none/tests/require-text-symbol-2 (stderr)
none/tests/rlimit64_nofile (stderr)
none/tests/shell_nosuchfile (stderr)
none/tests/x86/cse_fail (stdout)
helgrind/tests/annotate_hbefore (stderr)
helgrind/tests/annotate_rwlock (stderr)
helgrind/tests/annotate_smart_pointer (stderr)
helgrind/tests/cond_timedwait_invalid (stderr)
helgrind/tests/free_is_write (stderr)
helgrind/tests/hg01_all_ok (stderr)
helgrind/tests/hg02_deadlock (stderr)
helgrind/tests/hg03_inherit (stderr)
helgrind/tests/hg04_race (stderr)
helgrind/tests/hg05_race2 (stderr)
helgrind/tests/hg06_readshared (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_destroy_cond (stderr)
helgrind/tests/rwlock_race (stderr)
helgrind/tests/rwlock_test (stderr)
helgrind/tests/t2t_laog (stderr)
helgrind/tests/tc01_simple_race (stderr)
helgrind/tests/tc02_simple_tls (stderr)
helgrind/tests/tc03_re_excl (stderr)
helgrind/tests/tc04_free_lock (stderr)
helgrind/tests/tc05_simple_race (stderr)
helgrind/tests/tc06_two_races (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
helgrind/tests/tc07_hbl1 (stderr)
helgrind/tests/tc08_hbl2 (stderr)
helgrind/tests/tc09_bad_unlock (stderr)
helgrind/tests/tc10_rec_lock (stderr)
helgrind/tests/tc11_XCHG (stderr)
helgrind/tests/tc12_rwl_trivial (stderr)
helgrind/tests/tc13_laog1 (stderr)
helgrind/tests/tc14_laog_dinphils (stderr)
helgrind/tests/tc15_laog_lockdel (stderr)
helgrind/tests/tc16_byterace (stderr)
helgrind/tests/tc17_sembar (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc19_shadowmem (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc23_bogus_condwait (stderr)
helgrind/tests/tc24_nonzero_sem (stderr)
drd/tests/annotate_barrier (stderr)
drd/tests/annotate_barrier_xml (stderr)
drd/tests/annotate_hb_race (stderr)
drd/tests/annotate_hbefore (stderr)
drd/tests/annotate_ignore_read (stderr)
drd/tests/annotate_ignore_rw (stderr)
drd/tests/annotate_ignore_rw2 (stderr)
drd/tests/annotate_ignore_write (stderr)
drd/tests/annotate_ignore_write2 (stderr)
drd/tests/annotate_order_1 (stderr)
drd/tests/annotate_order_2 (stderr)
drd/tests/annotate_order_3 (stderr)
drd/tests/annotate_rwlock (stderr)
drd/tests/annotate_smart_pointer (stderr)
drd/tests/annotate_smart_pointer2 (stderr)
drd/tests/annotate_spinlock (stderr)
drd/tests/annotate_static (stderr)
drd/tests/atomic_var (stderr)
drd/tests/bug-235681 (stderr)
drd/tests/circular_buffer (stderr)
drd/tests/fp_race (stderr)
drd/tests/fp_race2 (stderr)
drd/tests/fp_race_xml (stderr)
drd/tests/free_is_write (stderr)
drd/tests/free_is_write2 (stderr)
drd/tests/hg01_all_ok (stderr)
drd/tests/hg02_deadlock (stderr)
drd/tests/hg03_inherit (stderr)
drd/tests/hg04_race (stderr)
drd/tests/hg05_race2 (stderr)
drd/tests/hg06_readshared (stderr)
drd/tests/linuxthreads_det (stderr)
drd/tests/monitor_example (stderr)
drd/tests/pth_broadcast (stderr)
drd/tests/pth_cleanup_handler (stderr)
drd/tests/pth_cond_destroy_busy (stderr)
drd/tests/pth_cond_race (stderr)
drd/tests/pth_cond_race2 (stderr)
drd/tests/pth_cond_race3 (stderr)
drd/tests/pth_create_chain (stderr)
drd/tests/pth_detached3 (stderr)
drd/tests/pth_inconsistent_cond_wait (stderr)
drd/tests/pth_once (stderr)
drd/tests/read_and_free_race (stderr)
drd/tests/rwlock_race (stderr)
drd/tests/rwlock_test (stderr)
drd/tests/sem_open (stderr)
drd/tests/sem_open2 (stderr)
drd/tests/sem_open3 (stderr)
drd/tests/sem_open_traced (stderr)
drd/tests/sem_wait (stderr)
drd/tests/sigalrm (stderr)
drd/tests/tc01_simple_race (stderr)
drd/tests/tc02_simple_tls (stderr)
drd/tests/tc03_re_excl (stderr)
drd/tests/tc05_simple_race (stderr)
drd/tests/tc06_two_races (stderr)
drd/tests/tc07_hbl1 (stderr)
drd/tests/tc08_hbl2 (stderr)
drd/tests/tc09_bad_unlock (stderr)
drd/tests/tc11_XCHG (stderr)
drd/tests/tc16_byterace (stderr)
drd/tests/tc17_sembar (stderr)
drd/tests/tc19_shadowmem (stderr)
drd/tests/tc21_pthonce (stderr)
drd/tests/tc23_bogus_condwait (stderr)
drd/tests/thread_name (stderr)
drd/tests/thread_name_xml (stderr)
drd/tests/threaded-fork (stderr)
drd/tests/unit_bitmap (stderr)
drd/tests/unit_vc (stderr)
=================================================
./valgrind-new/drd/tests/annotate_barrier.stderr.diff
=================================================
--- annotate_barrier.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_barrier.stderr.out 2013-02-27 00:14:30.000000000 -0600
@@ -37,6 +37,117 @@
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 1:
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Address 0x........ is at offset 8 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Address 0x........ is at offset 8 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_barrier_xml.stderr.diff
=================================================
--- annotate_barrier_xml.stderr.exp 2013-02-26 23:56:49.000000000 -0600
+++ annotate_barrier_xml.stderr.out 2013-02-27 00:14:31.000000000 -0600
@@ -188,7 +188,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
</stack>
<auxwhat>Address 0x........ is at offset 0 from 0x.........</auxwhat>
@@ -258,6 +258,549 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$UNIX2003</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$*</fn>
+ <dir>...</dir>
+ <file>drd_pthread_intercepts.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Allocation context: Data section of /usr/lib/libSystem.B.dylib</auxwhat>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>new_sem_from_pool</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$UNIX2003</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$*</fn>
+ <dir>...</dir>
+ <file>drd_pthread_intercepts.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Allocation context: Data section of /usr/lib/libSystem.B.dylib</auxwhat>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>new_sem_from_pool</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$UNIX2003</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$*</fn>
+ <dir>...</dir>
+ <file>drd_pthread_intercepts.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Allocation context: Data section of /usr/lib/libSystem.B.dylib</auxwhat>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_hb_race.stderr.diff
=================================================
--- annotate_hb_race.stderr.exp 2013-02-26 23:56:49.000000000 -0600
+++ annotate_hb_race.stderr.out 2013-02-27 00:14:33.000000000 -0600
@@ -3,6 +3,60 @@
at 0x........: main (annotate_hb_race.c:?)
Allocation context: BSS section of annotate_hb_race
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Done.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_hbefore.stderr.diff
=================================================
--- annotate_hbefore.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_hbefore.stderr.out 2013-02-27 00:14:35.000000000 -0600
@@ -1,3 +1,44 @@
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_read.stderr.diff
=================================================
--- annotate_ignore_read.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_ignore_read.stderr.out 2013-02-27 00:14:37.000000000 -0600
@@ -1,6 +1,159 @@
FLAGS [phb=1, fm=0]
test69: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Address 0x........ is at offset 12 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_ignore_rw.stderr.diff
=================================================
--- annotate_ignore_rw.stderr.exp 2013-02-26 23:56:49.000000000 -0600
+++ annotate_ignore_rw.stderr.out 2013-02-27 00:14:39.000000000 -0600
@@ -4,6 +4,60 @@
Location 0x........ is 0 bytes inside global var "s_c"
declared at annotate_ignore_rw.c:12
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_rw2.stderr.diff
=================================================
--- annotate_ignore_rw2.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_ignore_rw2.stderr.out 2013-02-27 00:14:40.000000000 -0600
@@ -14,6 +14,60 @@
Location 0x........ is 0 bytes inside global var "s_c"
declared at annotate_ignore_rw.c:12
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_write.stderr.diff
=================================================
--- annotate_ignore_write.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_ignore_write.stderr.out 2013-02-27 00:14:41.000000000 -0600
@@ -14,6 +14,60 @@
Location 0x........ is 0 bytes inside global var "s_a"
declared at annotate_ignore_write.c:10
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_write2.stderr.diff
=================================================
--- annotate_ignore_write2.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_ignore_write2.stderr.out 2013-02-27 00:14:42.000000000 -0600
@@ -19,6 +19,60 @@
Location 0x........ is 0 bytes inside global var "s_a"
declared at annotate_ignore_write.c:10
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_order_1.stderr.diff
=================================================
--- annotate_order_1.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_order_1.stderr.out 2013-02-27 00:14:44.000000000 -0600
@@ -1,6 +1,18 @@
FLAGS [phb=1, fm=0]
test03: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: ThreadPool::~ThreadPool() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: test03::Waiter() (tsan_unittest.cpp:?)
+ by 0x........: test03::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
GLOB=2
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_order_2.stderr.diff
=================================================
--- annotate_order_2.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_order_2.stderr.out 2013-02-27 00:14:46.000000000 -0600
@@ -1,6 +1,71 @@
FLAGS [phb=1, fm=0]
test30: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Address 0x........ is at offset 12 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
GLOB=47
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_order_3.stderr.diff
=================================================
--- annotate_order_3.stderr.exp 2013-02-26 23:56:49.000000000 -0600
+++ annotate_order_3.stderr.out 2013-02-27 00:14:48.000000000 -0600
@@ -1,6 +1,71 @@
FLAGS [phb=1, fm=0]
test31: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
GLOB=48
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_rwlock.stderr.diff
=================================================
--- annotate_rwlock.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_rwlock.stderr.out 2013-02-27 00:14:53.000000000 -0600
@@ -1,4 +1,58 @@
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Address 0x........ is at offset 36 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_smart_pointer.stderr.diff
=================================================
--- annotate_smart_pointer.stderr.exp 2013-02-26 23:56:48.000000000 -0600
+++ annotate_smart_pointer.stderr.out 2013-02-27 00:15:03.000000000 -0600
@@ -1,4 +1,64 @@
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Address 0x........ is at offset 196 from 0x......... Allocation context:
+ at 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Done.
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_smart_pointer2.stderr.diff
=================================================
--- annotate_smart_pointer2.stderr.exp 2013-02-26 23:56:49.000000000 -0600
+++ annotate_smart_pointer2.stderr.out 2013-02-27 00:15:04.000000000 -0600
@@ -5,9 +5,71 @@
by 0x........: smart_ptr<counter>::operator=(counter*) (annotate_smart_pointer.cpp:?)
by 0x........: main (annotate_smart_pointer.cpp:?)
Address 0x........ is at offset ... from 0x......... Allocation context:
- at 0x........: ...operator new... (vg_replace_malloc.c:...)
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: operator new(unsigned long) (in /usr/lib/libstdc++.6.0.9.dylib)
by 0x........: main (annotate_smart_pointer.cpp:?)
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Address 0x........ is at offset ... from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Done.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_spinlock.stderr.diff
=================================================
--- annotate_spinlock.stderr.exp 2013-02-26 23:56:49.000000000 -0600
+++ annotate_spinlock.stderr.out 2013-02-27 00:15:06.000000000 -0600
@@ -1,6 +1,88 @@
FLAGS [phb=1, fm=0]
test27: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test27::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test27::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........:...
[truncated message content] |
|
From: Philippe W. <phi...@sk...> - 2013-02-27 04:57:35
|
valgrind revision: 13291 VEX revision: 2686 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora (7.5.1-32.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.7.2-204.fc18.ppc64 ppc64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on gcc110 ( Fedora release 18 (Spherical Cow), ppc64 ) Started at 2013-02-26 20:00:06 PST Ended at 2013-02-26 20:06:49 PST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo mcleak: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta) mcmain_pic: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic (progB: ./gdb --quiet -l 60 --nx ./main_pic) sh: line 1: 33600 Segmentation fault VALGRIND_LIB=/home/philippe/valgrind/cron_nightly/nightly/valgrind-new/.in_place VALGRIND_LIB_INNER=/home/philippe/valgrind/cron_nightly/nightly/valgrind-new/.in_place /home/philippe/valgrind/cron_nightly/nightly/valgrind-new/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=mcmain_pic --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic > mcmain_pic.stdout.out 2> mcmain_pic.stderr.out *** mcmain_pic failed (stdout) *** *** mcmain_pic failed (stderr) *** *** mcmain_pic failed (stdoutB) *** mcsignopass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcsigpass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcvabits: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t (progB: ./gdb --quiet -l 60 --nx ./t) mcwatchpoints: valgrind --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints (progB: ./gdb --quiet -l 60 --nx ./watchpoints) mssnapshot: valgrind --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t (progB: ./gdb --quiet -l 60 --nx ./t) nlcontrolc: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers) nlfork_chain: valgrind --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) sh: line 1: 38785 Aborted VALGRIND_LIB=/home/philippe/valgrind/cron_nightly/nightly/valgrind-new/.in_place VALGRIND_LIB_INNER=/home/philippe/valgrind/cron_nightly/nightly/valgrind-new/.in_place /home/philippe/valgrind/cron_nightly/nightly/valgrind-new/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) nlgone_return: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-return ./gone return (progB: ./gdb --quiet -l 60 --nx ./gone) nlpasssigalrm: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm (progB: ./gdb --quiet -l 60 --nx ./passsigalrm) prereq returned 2: test -e gdb && ( ../tests/arch_test amd64 || ../tests/arch_test mips32 || ../tests/arch_test mips64 ) make: *** [regtest] Error 1 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo mcleak: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta) mcmain_pic: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic (progB: ./gdb --quiet -l 60 --nx ./main_pic) sh: line 1: 3604 Segmentation fault VALGRIND_LIB=/home/philippe/valgrind/cron_nightly/nightly/valgrind-old/.in_place VALGRIND_LIB_INNER=/home/philippe/valgrind/cron_nightly/nightly/valgrind-old/.in_place /home/philippe/valgrind/cron_nightly/nightly/valgrind-old/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=mcmain_pic --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic > mcmain_pic.stdout.out 2> mcmain_pic.stderr.out *** mcmain_pic failed (stdout) *** *** mcmain_pic failed (stderr) *** *** mcmain_pic failed (stdoutB) *** mcsignopass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcsigpass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcvabits: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t (progB: ./gdb --quiet -l 60 --nx ./t) mcwatchpoints: valgrind --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints (progB: ./gdb --quiet -l 60 --nx ./watchpoints) mssnapshot: valgrind --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t (progB: ./gdb --quiet -l 60 --nx ./t) nlcontrolc: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers) nlfork_chain: valgrind --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) sh: line 1: 9757 Aborted VALGRIND_LIB=/home/philippe/valgrind/cron_nightly/nightly/valgrind-old/.in_place VALGRIND_LIB_INNER=/home/philippe/valgrind/cron_nightly/nightly/valgrind-old/.in_place /home/philippe/valgrind/cron_nightly/nightly/valgrind-old/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) nlgone_return: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-return ./gone return (progB: ./gdb --quiet -l 60 --nx ./gone) nlpasssigalrm: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm (progB: ./gdb --quiet -l 60 --nx ./passsigalrm) prereq returned 2: test -e gdb && ( ../tests/arch_test amd64 || ../tests/arch_test mips32 || ../tests/arch_test mips64 ) make: *** [regtest] Error 1 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Feb 26 20:03:32 2013 --- new.short Tue Feb 26 20:06:49 2013 *************** *** 9,11 **** mcmain_pic: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic (progB: ./gdb --quiet -l 60 --nx ./main_pic) ! sh: line 1: 3604 Segmentation fault VALGRIND_LIB=/home/philippe/valgrind/cron_nightly/nightly/valgrind-old/.in_place VALGRIND_LIB_INNER=/home/philippe/valgrind/cron_nightly/nightly/valgrind-old/.in_place /home/philippe/valgrind/cron_nightly/nightly/valgrind-old/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=mcmain_pic --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic > mcmain_pic.stdout.out 2> mcmain_pic.stderr.out *** mcmain_pic failed (stdout) *** --- 9,11 ---- mcmain_pic: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic (progB: ./gdb --quiet -l 60 --nx ./main_pic) ! sh: line 1: 33600 Segmentation fault VALGRIND_LIB=/home/philippe/valgrind/cron_nightly/nightly/valgrind-new/.in_place VALGRIND_LIB_INNER=/home/philippe/valgrind/cron_nightly/nightly/valgrind-new/.in_place /home/philippe/valgrind/cron_nightly/nightly/valgrind-new/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=mcmain_pic --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic > mcmain_pic.stdout.out 2> mcmain_pic.stderr.out *** mcmain_pic failed (stdout) *** *************** *** 21,23 **** nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) ! sh: line 1: 9757 Aborted VALGRIND_LIB=/home/philippe/valgrind/cron_nightly/nightly/valgrind-old/.in_place VALGRIND_LIB_INNER=/home/philippe/valgrind/cron_nightly/nightly/valgrind-old/.in_place /home/philippe/valgrind/cron_nightly/nightly/valgrind-old/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) --- 21,23 ---- nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) ! sh: line 1: 38785 Aborted VALGRIND_LIB=/home/philippe/valgrind/cron_nightly/nightly/valgrind-new/.in_place VALGRIND_LIB_INNER=/home/philippe/valgrind/cron_nightly/nightly/valgrind-new/.in_place /home/philippe/valgrind/cron_nightly/nightly/valgrind-new/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) |
|
From: Tom H. <to...@co...> - 2013-02-27 04:35:37
|
valgrind revision: 13291 VEX revision: 2686 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2013-02-27 03:43:08 GMT Ended at 2013-02-27 04:10:28 GMT 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 == 623 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: Tom H. <to...@co...> - 2013-02-27 04:01:25
|
valgrind revision: 13291 VEX revision: 2686 C compiler: gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2) GDB: Assembler: GNU assembler version 2.19.51.0.14-3.fc11 20090722 C library: GNU C Library stable release version 2.10.2 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 11 (Leonidas) Nightly build on bristol ( x86_64, Fedora 11 ) Started at 2013-02-27 03:34:13 GMT Ended at 2013-02-27 04:00:42 GMT 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 == 627 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/long_namespace_xml (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Rich C. <rc...@wi...> - 2013-02-27 03:56:57
|
valgrind revision: 13291
VEX revision: 2686
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.6-1.2-desktop x86_64
Vendor version: Welcome to openSUSE 12.3 "Dartmouth" Beta 1 - Kernel %r (%t).
Nightly build on ultra ( gcc 4.5.1 Linux 3.7.6-1.2-desktop x86_64 )
Started at 2013-02-26 21:30:01 CST
Ended at 2013-02-26 21:56:10 CST
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
== 641 tests, 1 stderr failure, 0 stdout failures, 1 stderrB failure, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mssnapshot (stderrB)
memcheck/tests/origin5-bz2 (stderr)
=================================================
./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2013-02-26 21:43:16.768116230 -0600
+++ mssnapshot.stderrB.out 2013-02-26 21:47:32.455980191 -0600
@@ -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-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-02-26 21:43:20.223019745 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:49:06.303363262 -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-02-26 21:43:19.609036890 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:49:06.303363262 -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-02-26 21:43:17.218103675 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:49:06.303363262 -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-02-26 21:43:18.609065131 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:49:06.303363262 -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-02-26 21:43:18.942055509 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:49:06.303363262 -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/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2013-02-26 21:30:18.067910433 -0600
+++ mssnapshot.stderrB.out 2013-02-26 21:34:31.035819604 -0600
@@ -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/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-02-26 21:30:19.338874779 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:36:04.217210385 -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-02-26 21:30:19.127880698 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:36:04.217210385 -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-02-26 21:30:18.225906000 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:36:04.217210385 -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-02-26 21:30:18.774890600 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:36:04.217210385 -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-02-26 21:30:18.921886476 -0600
+++ origin5-bz2.stderr.out 2013-02-26 21:36:04.217210385 -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: Tom H. <to...@co...> - 2013-02-27 03:54:32
|
valgrind revision: 13291 VEX revision: 2686 C compiler: gcc (GCC) 4.4.5 20101112 (Red Hat 4.4.5-2) GDB: Assembler: GNU assembler version 2.20.51.0.2-20.fc13 20091009 C library: GNU C Library stable release version 2.12.2 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 13 (Goddard) Nightly build on bristol ( x86_64, Fedora 13 ) Started at 2013-02-27 03:24:06 GMT Ended at 2013-02-27 03:53:49 GMT 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 == 627 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_barrier3 (stderr) |
|
From: Tom H. <to...@co...> - 2013-02-27 03:44:27
|
valgrind revision: 13291 VEX revision: 2686 C compiler: gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4) GDB: GNU gdb (GDB) Fedora (7.2-52.fc14) Assembler: GNU assembler version 2.20.51.0.7-8.fc14 20100318 C library: GNU C Library stable release version 2.13 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 14 (Laughlin) Nightly build on bristol ( x86_64, Fedora 14 ) Started at 2013-02-27 03:14:13 GMT Ended at 2013-02-27 03:43:39 GMT 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 == 646 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-02-27 03:37:04
|
valgrind revision: 13291 VEX revision: 2686 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2013-02-27 03:05:15 GMT Ended at 2013-02-27 03:36:32 GMT 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 == 648 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-02-27 03:23:37
|
valgrind revision: 13291 VEX revision: 2686 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2013-02-27 02:52:08 GMT Ended at 2013-02-27 03:22:30 GMT 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 == 648 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: Christian B. <bor...@de...> - 2013-02-27 03:20:15
|
valgrind revision: 13291 VEX revision: 2686 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.3-0.6.1) 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-02-27 03:45:01 CET Ended at 2013-02-27 03:49:24 CET Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo mcinfcallRU: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallRU ./sleepers 1 0 2000000000 ------B- (progB: ./gdb --quiet -l 60 --nx ./sleepers) mcinfcallWSRU: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallWSRU ./sleepers 100 100000000 1000000000 -S-S-SB- (progB: ./gdb --quiet -l 60 --nx 1>&2 ./sleepers) mcinvokeRU: valgrind --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeRU ./sleepers 1 0 1000000000 B-B-B-B- (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0) mcinvokeWS: valgrind --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS ./sleepers 1 10000000 0 -S-S-S-S (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0) mcleak: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta) mcmain_pic: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic (progB: ./gdb --quiet -l 60 --nx ./main_pic) mcsignopass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcsigpass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcvabits: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t (progB: ./gdb --quiet -l 60 --nx ./t) mcwatchpoints: valgrind --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints (progB: ./gdb --quiet -l 60 --nx ./watchpoints) mssnapshot: valgrind --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t (progB: ./gdb --quiet -l 60 --nx ./t) nlcontrolc: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers) nlfork_chain: valgrind --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) sh: line 1: 28605 Aborted VALGRIND_LIB=/home0/cborntra/valgrind-nightly/valgrind-new/.in_place VALGRIND_LIB_INNER=/home0/cborntra/valgrind-nightly/valgrind-new/.in_place /home0/cborntra/valgrind-nightly/valgrind-new/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) nlgone_return: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-return ./gone return (progB: ./gdb --quiet -l 60 --nx ./gone) nlpasssigalrm: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm (progB: ./gdb --quiet -l 60 --nx ./passsigalrm) prereq returned 2: test -e gdb && ( ../tests/arch_test amd64 || ../tests/arch_test mips32 || ../tests/arch_test mips64 ) make: *** [regtest] Error 1 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo mcinfcallRU: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallRU ./sleepers 1 0 2000000000 ------B- (progB: ./gdb --quiet -l 60 --nx ./sleepers) mcinfcallWSRU: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallWSRU ./sleepers 100 100000000 1000000000 -S-S-SB- (progB: ./gdb --quiet -l 60 --nx 1>&2 ./sleepers) mcinvokeRU: valgrind --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeRU ./sleepers 1 0 1000000000 B-B-B-B- (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0) mcinvokeWS: valgrind --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS ./sleepers 1 10000000 0 -S-S-S-S (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0) mcleak: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta) mcmain_pic: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic (progB: ./gdb --quiet -l 60 --nx ./main_pic) mcsignopass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcsigpass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcvabits: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t (progB: ./gdb --quiet -l 60 --nx ./t) mcwatchpoints: valgrind --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints (progB: ./gdb --quiet -l 60 --nx ./watchpoints) mssnapshot: valgrind --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t (progB: ./gdb --quiet -l 60 --nx ./t) nlcontrolc: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers) nlfork_chain: valgrind --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) sh: line 1: 60494 Aborted VALGRIND_LIB=/home0/cborntra/valgrind-nightly/valgrind-old/.in_place VALGRIND_LIB_INNER=/home0/cborntra/valgrind-nightly/valgrind-old/.in_place /home0/cborntra/valgrind-nightly/valgrind-old/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) nlgone_return: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-return ./gone return (progB: ./gdb --quiet -l 60 --nx ./gone) nlpasssigalrm: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm (progB: ./gdb --quiet -l 60 --nx ./passsigalrm) prereq returned 2: test -e gdb && ( ../tests/arch_test amd64 || ../tests/arch_test mips32 || ../tests/arch_test mips64 ) make: *** [regtest] Error 1 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Feb 27 03:47:17 2013 --- new.short Wed Feb 27 03:49:24 2013 *************** *** 21,23 **** nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) ! sh: line 1: 60494 Aborted VALGRIND_LIB=/home0/cborntra/valgrind-nightly/valgrind-old/.in_place VALGRIND_LIB_INNER=/home0/cborntra/valgrind-nightly/valgrind-old/.in_place /home0/cborntra/valgrind-nightly/valgrind-old/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) --- 21,23 ---- nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) ! sh: line 1: 28605 Aborted VALGRIND_LIB=/home0/cborntra/valgrind-nightly/valgrind-new/.in_place VALGRIND_LIB_INNER=/home0/cborntra/valgrind-nightly/valgrind-new/.in_place /home0/cborntra/valgrind-nightly/valgrind-new/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) |
|
From: Tom H. <to...@co...> - 2013-02-27 03:12:53
|
valgrind revision: 13291 VEX revision: 2686 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2013-02-27 02:41:41 GMT Ended at 2013-02-27 03:11:42 GMT 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 == 648 tests, 5 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) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Tom H. <to...@co...> - 2013-02-27 03:02:22
|
valgrind revision: 13291 VEX revision: 2686 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora (7.5.1-36.fc18) Assembler: GNU assembler version 2.23.51.0.1-3.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2013-02-27 02:31:22 GMT Ended at 2013-02-27 03:01:43 GMT 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 == 648 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Tom H. <to...@co...> - 2013-02-27 02:49:56
|
valgrind revision: 13291 VEX revision: 2686 C compiler: gcc (GCC) 4.8.0 20130220 (Red Hat 4.8.0-0.14) GDB: GNU gdb (GDB) Fedora (7.5.50.20130215-8.fc19) Assembler: GNU assembler version 2.23.51.0.9-2.fc19 20130118 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 19 (Rawhide) Nightly build on bristol ( x86_64, Fedora 19 ) Started at 2013-02-27 02:23:21 GMT Ended at 2013-02-27 02:48:59 GMT 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 == 648 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/dw4 (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/hackedbz2 (stderr) |
|
From: Christian B. <bor...@de...> - 2013-02-27 02:49:56
|
valgrind revision: 13291 VEX revision: 2686 C compiler: gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9bb4) GDB: GNU gdb (GDB) Fedora (7.5-1bb1.fc15) 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.7.2-57.x.20130114-s390xperformance s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 15 with devel libc/toolchain on z196 (s390x) ) Started at 2013-02-27 03:45:01 CET Ended at 2013-02-27 03:49:17 CET Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo mcinfcallRU: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallRU ./sleepers 1 0 2000000000 ------B- (progB: ./gdb --quiet -l 60 --nx ./sleepers) mcinfcallWSRU: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallWSRU ./sleepers 100 100000000 1000000000 -S-S-SB- (progB: ./gdb --quiet -l 60 --nx 1>&2 ./sleepers) mcinvokeRU: valgrind --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeRU ./sleepers 1 0 1000000000 B-B-B-B- (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0) mcinvokeWS: valgrind --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS ./sleepers 1 10000000 0 -S-S-S-S (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0) mcleak: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta) mcmain_pic: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic (progB: ./gdb --quiet -l 60 --nx ./main_pic) mcsignopass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcsigpass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcvabits: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t (progB: ./gdb --quiet -l 60 --nx ./t) mcwatchpoints: valgrind --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints (progB: ./gdb --quiet -l 60 --nx ./watchpoints) mssnapshot: valgrind --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t (progB: ./gdb --quiet -l 60 --nx ./t) nlcontrolc: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers) nlfork_chain: valgrind --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) sh: line 1: 54411 Aborted VALGRIND_LIB=/home/cborntra/valgrind-nightly/valgrind-new/.in_place VALGRIND_LIB_INNER=/home/cborntra/valgrind-nightly/valgrind-new/.in_place /home/cborntra/valgrind-nightly/valgrind-new/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) nlgone_return: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-return ./gone return (progB: ./gdb --quiet -l 60 --nx ./gone) nlpasssigalrm: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm (progB: ./gdb --quiet -l 60 --nx ./passsigalrm) prereq returned 2: test -e gdb && ( ../tests/arch_test amd64 || ../tests/arch_test mips32 || ../tests/arch_test mips64 ) make: *** [regtest] Error 1 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo mcinfcallRU: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallRU ./sleepers 1 0 2000000000 ------B- (progB: ./gdb --quiet -l 60 --nx ./sleepers) mcinfcallWSRU: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallWSRU ./sleepers 100 100000000 1000000000 -S-S-SB- (progB: ./gdb --quiet -l 60 --nx 1>&2 ./sleepers) mcinvokeRU: valgrind --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeRU ./sleepers 1 0 1000000000 B-B-B-B- (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0) mcinvokeWS: valgrind --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS ./sleepers 1 10000000 0 -S-S-S-S (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0) mcleak: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta) mcmain_pic: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic (progB: ./gdb --quiet -l 60 --nx ./main_pic) mcsignopass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcsigpass: valgrind --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus) mcvabits: valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t (progB: ./gdb --quiet -l 60 --nx ./t) mcwatchpoints: valgrind --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints (progB: ./gdb --quiet -l 60 --nx ./watchpoints) mssnapshot: valgrind --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t (progB: ./gdb --quiet -l 60 --nx ./t) nlcontrolc: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers) nlfork_chain: valgrind --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) sh: line 1: 26574 Aborted VALGRIND_LIB=/home/cborntra/valgrind-nightly/valgrind-old/.in_place VALGRIND_LIB_INNER=/home/cborntra/valgrind-nightly/valgrind-old/.in_place /home/cborntra/valgrind-nightly/valgrind-old/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) nlgone_return: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-return ./gone return (progB: ./gdb --quiet -l 60 --nx ./gone) nlpasssigalrm: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm (progB: ./gdb --quiet -l 60 --nx ./passsigalrm) prereq returned 2: test -e gdb && ( ../tests/arch_test amd64 || ../tests/arch_test mips32 || ../tests/arch_test mips64 ) make: *** [regtest] Error 1 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Feb 27 03:47:10 2013 --- new.short Wed Feb 27 03:49:17 2013 *************** *** 21,23 **** nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) ! sh: line 1: 26574 Aborted VALGRIND_LIB=/home/cborntra/valgrind-nightly/valgrind-old/.in_place VALGRIND_LIB_INNER=/home/cborntra/valgrind-nightly/valgrind-old/.in_place /home/cborntra/valgrind-nightly/valgrind-old/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) --- 21,23 ---- nlgone_abrt: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort (progB: ./gdb --quiet -l 60 --nx ./gone) ! sh: line 1: 54411 Aborted VALGRIND_LIB=/home/cborntra/valgrind-nightly/valgrind-new/.in_place VALGRIND_LIB_INNER=/home/cborntra/valgrind-nightly/valgrind-new/.in_place /home/cborntra/valgrind-nightly/valgrind-new/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=nlgone_abrt --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-abrt ./gone abort > nlgone_abrt.stdout.out 2> nlgone_abrt.stderr.out nlgone_exit: valgrind --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlgone-exit ./gone exit (progB: ./gdb --quiet -l 60 --nx ./gone) |