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
(22) |
2
(32) |
3
(34) |
4
(27) |
|
5
(36) |
6
(30) |
7
(19) |
8
(30) |
9
(28) |
10
(13) |
11
(1) |
|
12
|
13
(1) |
14
(2) |
15
(14) |
16
(21) |
17
(16) |
18
(19) |
|
19
(2) |
20
(9) |
21
(19) |
22
(15) |
23
(30) |
24
(28) |
25
(22) |
|
26
(23) |
27
(18) |
28
(35) |
29
(24) |
30
(24) |
31
(16) |
|
|
From: <sv...@va...> - 2012-08-28 23:38:59
|
florian 2012-08-29 00:38:49 +0100 (Wed, 29 Aug 2012)
New Revision: 12910
Log:
vbit tester: Disable Iop_CmpLT64S and Iop_CmpLE64S for ppc because
they cause assertion failures.
Do not test Iop_CmpORDxyz on ppc because the vbit tester does not
support them. This is just so we don't have to add another .exp file for ppc.
Modified files:
trunk/memcheck/tests/vbit-test/irops.c
Modified: trunk/memcheck/tests/vbit-test/irops.c (+10 -10)
===================================================================
--- trunk/memcheck/tests/vbit-test/irops.c 2012-08-28 19:37:40 +01:00 (rev 12909)
+++ trunk/memcheck/tests/vbit-test/irops.c 2012-08-29 00:38:49 -23:00 (rev 12910)
@@ -81,9 +81,9 @@
{ DEFOP(Iop_Ctz64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
{ DEFOP(Iop_Ctz32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
{ DEFOP(Iop_CmpLT32S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
- { DEFOP(Iop_CmpLT64S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_CmpLT64S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // ppc, mips assert
{ DEFOP(Iop_CmpLE32S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
- { DEFOP(Iop_CmpLE64S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_CmpLE64S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // ppc, mips assert
{ DEFOP(Iop_CmpLT32U, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
{ DEFOP(Iop_CmpLT64U, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
{ DEFOP(Iop_CmpLE32U, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
@@ -99,10 +99,10 @@
{ DEFOP(Iop_Left32, UNDEF_UNKNOWN), }, // not supported by mc_translate
{ DEFOP(Iop_Left64, UNDEF_UNKNOWN), }, // not supported by mc_translate
{ DEFOP(Iop_Max32U, UNDEF_UNKNOWN), }, // not supported by mc_translate
- { DEFOP(Iop_CmpORD32U, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
- { DEFOP(Iop_CmpORD64U, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
- { DEFOP(Iop_CmpORD32S, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
- { DEFOP(Iop_CmpORD64S, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_CmpORD32U, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 }, // FIXME: add support in vbit-test
+ { DEFOP(Iop_CmpORD64U, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 }, // FIXME: add support in vbit-test
+ { DEFOP(Iop_CmpORD32S, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 }, // FIXME: add support in vbit-test
+ { DEFOP(Iop_CmpORD64S, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 }, // FIXME: add support in vbit-test
{ DEFOP(Iop_DivU32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
{ DEFOP(Iop_DivS32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
{ DEFOP(Iop_DivU64, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
@@ -472,10 +472,10 @@
{ DEFOP(Iop_SubD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
{ DEFOP(Iop_MulD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
{ DEFOP(Iop_DivD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
- { DEFOP(Iop_ShlD64, UNDEF_SHL), .s390x = 0, .ppc64 = 0 }, // ppc asserts
- { DEFOP(Iop_ShrD64, UNDEF_SHR), .s390x = 0, .ppc64 = 0 }, // ditto
- { DEFOP(Iop_ShlD128, UNDEF_SHL), .s390x = 0, .ppc64 = 0 }, // ditto
- { DEFOP(Iop_ShrD128, UNDEF_SHR), .s390x = 0, .ppc64 = 0 }, // ditto
+ { DEFOP(Iop_ShlD64, UNDEF_SHL), .s390x = 0, .ppc64 = 0 }, // BZ #305948
+ { DEFOP(Iop_ShrD64, UNDEF_SHR), .s390x = 0, .ppc64 = 0 }, // BZ #305948
+ { DEFOP(Iop_ShlD128, UNDEF_SHL), .s390x = 0, .ppc64 = 0 }, // BZ #305948
+ { DEFOP(Iop_ShrD128, UNDEF_SHR), .s390x = 0, .ppc64 = 0 }, // BZ #305948
{ DEFOP(Iop_D32toD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
{ DEFOP(Iop_D64toD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
{ DEFOP(Iop_I64StoD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
|
|
From: <sv...@va...> - 2012-08-28 20:58:32
|
florian 2012-08-28 21:58:23 +0100 (Tue, 28 Aug 2012)
New Revision: 2491
Log:
Make debug printout look nicer.
Modified files:
trunk/priv/ir_inject.c
Modified: trunk/priv/ir_inject.c (+1 -2)
===================================================================
--- trunk/priv/ir_inject.c 2012-08-28 17:49:30 +01:00 (rev 2490)
+++ trunk/priv/ir_inject.c 2012-08-28 21:58:23 +01:00 (rev 2491)
@@ -242,9 +242,8 @@
ppIRStmt(irsb->stmts[irsb->stmts_used - 2]);
vex_printf("\n");
ppIRStmt(irsb->stmts[irsb->stmts_used - 1]);
- vex_printf("\n");
}
- vex_printf("END inject\n");
+ vex_printf("\nEND inject\n");
}
}
|
|
From: Andrew C. M. <and...@gm...> - 2012-08-28 19:42:50
|
On Tue, Aug 28, 2012 at 2:58 PM, Julian Seward <js...@ac...> wrote: > On Tuesday, August 28, 2012, Florian Krohm wrote: >> On 08/28/2012 11:27 AM, Andrew C. Morrow wrote: >> > Hi Julian - >> > >> > Thanks for the pointer to the relevant code. >> > >> > I can make the check work again by marking aLocal as volatile: >> > HChar* volatile aLocal = (HChar*)&limLo; /* any auto local will do >> > */ >> > >> > Complete speculation, but maybe what is happening is that clang is >> > optimizing away the entire conditional as always taken, reasoning >> > (correctly or incorrectly) that an auto variable will never fall >> > within an address range that is reserved for an extern char array? >> >> The reason is that the comparisons aLocal < limLo and aLocal >= limHi >> cause undefined behaviour (according to c99 6.5.8) because they compare >> pointers that do not point into the same aggregate. >> Compilers are free to do whatever they like in that case. > > Wow .. I think I would not have guessed that in a long time. > So, it seems we've been holed beneath the waterline by LLVM's alias > analyser, yes? Interesting. > > J I was curious about this, so I asked on stackoverflow: http://stackoverflow.com/questions/12165288/c99-is-it-possible-to-portably-determine-if-two-pointers-point-within-the-same The consensus seems to be that it can be done portably, but not in constant time, by relying on the fact that is is legal to compare any two pointers for equality, even if they are in different aggregates. Which in hindsight is sort of obvious. So the stack switch check could iterate across the VgStack and verify that it eventually reaches the address of aLocal. The check overhead would be linear in the size of a VgStack, but it is only once per valgrind invocation. The VgStack looks to be ~1MB. Would the overhead of iterating across interim_stack once at valgrind startup even be noticeable on modern hardware? |
|
From: Julian S. <js...@ac...> - 2012-08-28 18:59:35
|
On Tuesday, August 28, 2012, Florian Krohm wrote: > On 08/28/2012 11:27 AM, Andrew C. Morrow wrote: > > Hi Julian - > > > > Thanks for the pointer to the relevant code. > > > > I can make the check work again by marking aLocal as volatile: > > HChar* volatile aLocal = (HChar*)&limLo; /* any auto local will do > > */ > > > > Complete speculation, but maybe what is happening is that clang is > > optimizing away the entire conditional as always taken, reasoning > > (correctly or incorrectly) that an auto variable will never fall > > within an address range that is reserved for an extern char array? > > The reason is that the comparisons aLocal < limLo and aLocal >= limHi > cause undefined behaviour (according to c99 6.5.8) because they compare > pointers that do not point into the same aggregate. > Compilers are free to do whatever they like in that case. Wow .. I think I would not have guessed that in a long time. So, it seems we've been holed beneath the waterline by LLVM's alias analyser, yes? Interesting. J |
|
From: Julian S. <js...@ac...> - 2012-08-28 18:57:15
|
On Tuesday, August 28, 2012, Patrick J. LoPresti wrote: > On Tue, Aug 28, 2012 at 9:34 AM, Florian Krohm <br...@ac...> wrote: > > The reason is that the comparisons aLocal < limLo and aLocal >= limHi > > cause undefined behaviour (according to c99 6.5.8) because they compare > > pointers that do not point into the same aggregate. > > Compilers are free to do whatever they like in that case. > > Another fix would be to transform the pointers to like-sized integers > > and compare those. > > This sounds like a better fix to me, if you do not mind using C99. > Just cast to uintptr_t (from <stdint.h>). (If not C99, "unsigned > long" should work.) > > Comparing such integers is technically implementation-defined, but (a) > that is much better than "undefined" and (b) let's face it, on any > conceivable system it will work fine. > > Assuming this actually fixes the problem, of course. I don't remember exactly, but I think I tried casting the 3 values to "HWord" (unsigned int the size of a host word) and it still didn't work. But, Andrew, if you are inclined to check that, pls do :) Since the volatile fix is verified by Andrew as working, I'm inclined to go with it, unless the cast-to-int thing works, in which case let's do that instead. J |
|
From: <sv...@va...> - 2012-08-28 18:37:48
|
florian 2012-08-28 19:37:40 +0100 (Tue, 28 Aug 2012)
New Revision: 12909
Log:
Remove .deps directory.
Removed directories:
trunk/none/tests/mips32/.deps/
Deleted: trunk/none/tests/mips32/.deps/
% svn ls trunk/none/tests/mips32/.deps/@12908
|
|
From: Julian S. <js...@ac...> - 2012-08-28 18:24:30
|
On Monday, August 27, 2012, Florian Krohm wrote:
> I'd like to auto-detect the cache configuration of the host machine for
> s390. So I was looking around how this is done on other architectures.
> Turns out, nobody does it except x86 and x86-64. These architectures get
> special treatment in form of VG_(cpuid). But that function is not
> portable to other architectures. On s390 I would need to know whether
> the host supports a certain insn. That info is present in the "hwcaps"
> field of VexArchInfo. But VexArchInfo is not passed to the tools.
The design philosophy (which may be flawed, but anyway) is that tools
really only need to be able to analyse and generate IR. They don't need
to be aware of the details of the architecture/cpu under simulation.
We abuse that wildly in Callgrind and Cachegrind, by allowing tools
to make their own attempts to establish the cache parameters. But I
would prefer not to perpetuate this abstraction-breakage by passing
VexArchInfo to tools.
And it doesn't make much sense for Callgrind/Cachegrind to have their
own CPU-querying code in
cachegrind/cg-{arm,mips32,ppc32,ppc64,s390x,x86-amd64}.c
when we already have a centralised facility to generally poke around
the host cpu and figure out what it can do, in coregrind/m_machine.c.
Overall, a cleanish refactoring seems to me to be to merge
cachegrind/cg-{arm,mips32,ppc32,ppc64,s390x,x86-amd64}.c
and have a new function, VG_(machine_get_cacheinfo) (as a peer
of VG_(machine_get_hwcaps)), that tools can call if they want
to get cache info. Then we could nuke VG_(has_cpuid) and also
write VG_(cpuid) using inline assembly, hence getting rid of
m_cpuid.S entirely.
None of which helps you in the short term, since it's quite a lot
of work to do that refactoring. The difficulty (and hence the
delay in reply to this msg) is that I'm not enthusiastic about
either (1) or (2) below.
How much refactoring effort are you prepared to go to at this point?
I wonder if there's a way to get you what you want without too much
effort, whilst at the same time moving incrementally in the
direction of centralising cache detection stuff in coregrind.
J
> Now what?
> (1) Pass VexArchInfo to the "instrument" function of the tool. That
> structure would convey whether or not the cache configuration of
> the host can be queried. A tool would then query that information
> in an architecture-specific way. For instance, we could amend
> VexArchInfo by adding a "Bool x86_amd64_has_cpuid" field. Cachegrind
> would then call VG_(cpuid) if that field is True. VG_(has_cpuid)
> would be obsolete.
>
> (2) Replace VG_(cpuid) with, say, VG_(cache_info) which would return
> information about the host's caches in a general way:
> - number of cache levels
> - for each cache level
> - split data/insn cache or not
> - line size
> - cache size
> - set associativity
> Also replace VG_(has_cpuid) with VG_(has_cache_info).
|
|
From: <sv...@va...> - 2012-08-28 18:17:35
|
bart 2012-08-28 19:17:27 +0100 (Tue, 28 Aug 2012)
New Revision: 12908
Log:
drd/tests: Add a test that verifies whether the pthread_cancel() intercept works
Modified files:
trunk/drd/tests/pth_cancel_locked.c
trunk/drd/tests/pth_cancel_locked.stderr.exp
Modified: trunk/drd/tests/pth_cancel_locked.stderr.exp (+5 -1)
===================================================================
--- trunk/drd/tests/pth_cancel_locked.stderr.exp 2012-08-28 18:57:09 +01:00 (rev 12907)
+++ trunk/drd/tests/pth_cancel_locked.stderr.exp 2012-08-28 19:17:27 +01:00 (rev 12908)
@@ -6,6 +6,10 @@
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_cancel_locked.c:?)
+pthread_cancel(): invalid thread ID 0x........
+ at 0x........: pthread_cancel (drd_pthread_intercepts.c:?)
+ by 0x........: main (pth_cancel_locked.c:?)
+
Test finished.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/pth_cancel_locked.c (+3 -0)
===================================================================
--- trunk/drd/tests/pth_cancel_locked.c 2012-08-28 18:57:09 +01:00 (rev 12907)
+++ trunk/drd/tests/pth_cancel_locked.c 2012-08-28 19:17:27 +01:00 (rev 12908)
@@ -45,6 +45,9 @@
/* Join the created thread. */
pthread_join(tid, 0);
+ /* Invoke pthread_cancel() with an invalid thread ID. */
+ pthread_cancel(tid);
+
fprintf(stderr, "Test finished.\n");
return 0;
|
|
From: <sv...@va...> - 2012-08-28 17:57:18
|
bart 2012-08-28 18:57:09 +0100 (Tue, 28 Aug 2012)
New Revision: 12907
Log:
drd: Re-enable the pthread_cancel() intercept now that the CALL_FN_*() ABI
violation has been fixed (r12811).
Modified files:
trunk/drd/drd_pthread_intercepts.c
Modified: trunk/drd/drd_pthread_intercepts.c (+0 -23)
===================================================================
--- trunk/drd/drd_pthread_intercepts.c 2012-08-28 17:50:39 +01:00 (rev 12906)
+++ trunk/drd/drd_pthread_intercepts.c 2012-08-28 18:57:09 +01:00 (rev 12907)
@@ -533,28 +533,6 @@
PTH_FUNCS(int, pthreadZudetach, pthread_detach_intercept,
(pthread_t thread), (thread));
-// Don't intercept pthread_cancel() because pthread_cancel_init() loads
-// libgcc.so. That library is loaded by calling _dl_open(). The function
-// dl_open_worker() looks up from which object the caller is calling in
-// GL(dn_ns)[]. Since the DRD intercepts are linked into vgpreload_drd-*.so
-// and since that object file is not loaded through glibc, glibc does not
-// have any information about that object. That results in the following
-// segmentation fault on at least Fedora 17 x86_64:
-// Process terminating with default action of signal 11 (SIGSEGV)
-// General Protection Fault
-// at 0x4006B75: _dl_map_object_from_fd (dl-load.c:1580)
-// by 0x4008312: _dl_map_object (dl-load.c:2355)
-// by 0x4012FFB: dl_open_worker (dl-open.c:226)
-// by 0x400ECB5: _dl_catch_error (dl-error.c:178)
-// by 0x4012B2B: _dl_open (dl-open.c:652)
-// by 0x5184511: do_dlopen (dl-libc.c:89)
-// by 0x400ECB5: _dl_catch_error (dl-error.c:178)
-// by 0x51845D1: __libc_dlopen_mode (dl-libc.c:48)
-// by 0x4E4A703: pthread_cancel_init (unwind-forcedunwind.c:53)
-// by 0x4E476F2: pthread_cancel (pthread_cancel.c:40)
-// by 0x4C2C050: pthread_cancel (drd_pthread_intercepts.c:547)
-// by 0x400B3A: main (bar_bad.c:83)
-#if 0
// NOTE: be careful to intercept only pthread_cancel() and not
// pthread_cancel_init() on Linux.
@@ -574,7 +552,6 @@
PTH_FUNCS(int, pthreadZucancel, pthread_cancel_intercept,
(pthread_t thread), (thread))
-#endif
static __always_inline
int pthread_once_intercept(pthread_once_t *once_control,
|
|
From: Florian K. <br...@ac...> - 2012-08-28 17:33:13
|
On 08/28/2012 12:56 PM, Patrick J. LoPresti wrote: > On Tue, Aug 28, 2012 at 9:34 AM, Florian Krohm <br...@ac...> wrote: >> > Comparing such integers is technically implementation-defined, but (a) > that is much better than "undefined" Yes, very true. > and (b) let's face it, on any > conceivable system it will work fine. But so will be the volatile hack by making one of the pointers in the comparison volatile. The compiler would have to prove that there is undefined behavior in order to exploit it. But as a volatile variable can change its value in ways invisible to the compiler, the compiler must make the conservative assumption that it points into the same aggregate as the other pointer its compared against. I.e. the behaviour is possibly defined. Florian |
|
From: Andrew C. M. <and...@gm...> - 2012-08-28 17:03:05
|
> > Hmm, that's a good point. I couldn't figure out why it was failing. > > If you can verify that the change works with both clang and gcc then > I'll be happy to commit it. > I just tried it with both llvm-gcc-4.2 and clang, and the resulting valgrind binary does start up correctly in both cases. However, as subsequent emails from Florian and Patrick point out, this is still undefined behavior. |
|
From: Patrick J. L. <lop...@gm...> - 2012-08-28 16:56:44
|
On Tue, Aug 28, 2012 at 9:34 AM, Florian Krohm <br...@ac...> wrote: > > The reason is that the comparisons aLocal < limLo and aLocal >= limHi > cause undefined behaviour (according to c99 6.5.8) because they compare > pointers that do not point into the same aggregate. > Compilers are free to do whatever they like in that case. > Another fix would be to transform the pointers to like-sized integers > and compare those. This sounds like a better fix to me, if you do not mind using C99. Just cast to uintptr_t (from <stdint.h>). (If not C99, "unsigned long" should work.) Comparing such integers is technically implementation-defined, but (a) that is much better than "undefined" and (b) let's face it, on any conceivable system it will work fine. Assuming this actually fixes the problem, of course. - Pat |
|
From: <sv...@va...> - 2012-08-28 16:50:50
|
florian 2012-08-28 17:50:39 +0100 (Tue, 28 Aug 2012)
New Revision: 12906
Log:
Add a tester for V-bit propagation through IROps.
The tester is located in memcheck/tests/vbit-test.
It needs the following support on the valgrind / VEX side:
(1) a new client request VG_USERREQ__VEX_INIT_FOR_IRI
(2) a new "special instruction" on all architectures inserted via
VALGRIND_VEX_INJECT_IR
(3) VEX changes to detect the special insn and insert IR (ir_inject.c)
The README file in vbit-test has some more information.
See also VEX r2490. Fixes bugzilla #300102.
Added directories:
trunk/memcheck/tests/vbit-test/
Added files:
trunk/memcheck/tests/vbit-test/Makefile.am
trunk/memcheck/tests/vbit-test/README
trunk/memcheck/tests/vbit-test/TODO
trunk/memcheck/tests/vbit-test/binary.c
trunk/memcheck/tests/vbit-test/filter_stderr
trunk/memcheck/tests/vbit-test/irops.c
trunk/memcheck/tests/vbit-test/main.c
trunk/memcheck/tests/vbit-test/qernary.c
trunk/memcheck/tests/vbit-test/ternary.c
trunk/memcheck/tests/vbit-test/unary.c
trunk/memcheck/tests/vbit-test/util.c
trunk/memcheck/tests/vbit-test/valgrind.c
trunk/memcheck/tests/vbit-test/vbit-test.stderr.exp
trunk/memcheck/tests/vbit-test/vbit-test.vgtest
trunk/memcheck/tests/vbit-test/vbits.c
trunk/memcheck/tests/vbit-test/vbits.h
trunk/memcheck/tests/vbit-test/vtest.h
Modified files:
trunk/Makefile.am
trunk/Makefile.vex.am
trunk/configure.in
trunk/coregrind/m_scheduler/scheduler.c
trunk/include/valgrind.h
Added: trunk/memcheck/tests/vbit-test/
Added: trunk/memcheck/tests/vbit-test/main.c (+133 -0)
===================================================================
--- trunk/memcheck/tests/vbit-test/main.c 2012-08-28 14:33:10 +01:00 (rev 12905)
+++ trunk/memcheck/tests/vbit-test/main.c 2012-08-28 17:50:39 +01:00 (rev 12906)
@@ -0,0 +1,133 @@
+/* -*- mode: C; c-basic-offset: 3; -*- */
+
+#include <assert.h> // assert
+#include <stdio.h> // printf
+#include <stdlib.h> // malloc
+#include <string.h> // memset
+#include "valgrind.h" // RUNNING_ON_VALGRIND
+#include "vtest.h"
+
+
+static test_data_t *
+new_test_data(const irop_t *op)
+{
+ test_data_t *data = malloc(sizeof *data);
+
+ memset(data, 0x0, sizeof *data); // initialise
+
+ /* Obtain the operand types and set them */
+ IRType t_dst, t1, t2, t3, t4;
+
+ typeof_primop(op->op, &t_dst, &t1, &t2, &t3, &t4);
+ assert(t_dst != Ity_INVALID);
+ assert(t1 != Ity_INVALID);
+
+ data->result.type = t_dst;
+ if (is_floating_point_op_with_rounding_mode(op->op)) {
+ data->opnds[0].type = t2;
+ data->opnds[1].type = t3;
+ data->opnds[2].type = t4;
+ data->opnds[3].type = Ity_INVALID;
+ } else {
+ data->opnds[0].type = t1;
+ data->opnds[1].type = t2;
+ data->opnds[2].type = t3;
+ data->opnds[3].type = t4;
+ }
+
+ /* Set the rounding mode if the operation requires one.
+ FIXME: We should iterate over all rounding modes. For that need
+ FIXME: to distinguish between binary and decimal floating point */
+ if (is_floating_point_op_with_rounding_mode(op->op)) {
+ // for now just pick one
+ data->rounding_mode = Irrm_NEAREST; // same as Irrm_DFP_NEAREST
+ } else {
+ data->rounding_mode = NO_ROUNDING_MODE;
+ }
+
+ return data;
+}
+
+int verbose = 0;
+
+int
+main(int argc, char *argv[])
+{
+ assert(sizeof(long long) == 8);
+
+ for (int i = 1; i < argc; ++i) {
+ if (strcmp(argv[i], "-v") == 0) ++verbose;
+ else if (strcmp(argv[i], "--help") == 0) {
+ printf("\nvbit-test [ -v | --help ]\n");
+ printf("\n\t-v verbose mode; shows IROps being tested\n");
+ printf("\n\t-v -v verbose mode, extreme edition\n\n");
+ return 0;
+ } else {
+ printf("%s ? Nothing happens.\n", argv[i]);
+ return 1;
+ }
+ }
+
+ if (! RUNNING_ON_VALGRIND) {
+ fprintf(stderr, "*** This program needs to run under memcheck.\n");
+ return 1;
+ }
+
+ setbuf(stdout, NULL); // make stdout unbuffered
+
+ // Iterate over all primops
+ IROp first = Iop_INVALID + 1;
+ IROp last = Iop_LAST;
+ IROp opkind;
+
+ if (0) { // overwrite for debugging
+ first = Iop_CasCmpEQ8; last = first + 1;
+ }
+
+ // Iterate over all IROps in the enum type. That is the only way to
+ // make sure the operator is tested on at least one platform.
+
+ // Loop assumes no holes in the enumerator values
+ for (opkind = first; opkind < last; ++opkind) {
+
+ const irop_t *op = get_irop(opkind);
+ if (op == NULL) continue;
+
+ test_data_t *data = new_test_data(op);
+
+ if (op->undef_kind == UNDEF_UNKNOWN) {
+ fprintf(stderr, "...skipping %s; unknown undef propagation\n",
+ op->name);
+ continue;
+ }
+
+ if (verbose) printf("Testing operator %s\n", op->name);
+
+ IRICB iricb = new_iricb(op, data);
+
+ valgrind_vex_init_for_iri(&iricb);
+
+ switch (iricb.num_operands) {
+ case 1:
+ test_unary_op(op, data);
+ break;
+
+ case 2:
+ test_binary_op(op, data);
+ break;
+
+ case 3:
+ test_ternary_op(op, data);
+ break;
+
+ case 4:
+ test_qernary_op(op, data);
+ break;
+
+ default:
+ panic("operator not handled");
+ }
+ }
+
+ return 0;
+}
Added: trunk/memcheck/tests/vbit-test/irops.c (+891 -0)
===================================================================
--- trunk/memcheck/tests/vbit-test/irops.c 2012-08-28 14:33:10 +01:00 (rev 12905)
+++ trunk/memcheck/tests/vbit-test/irops.c 2012-08-28 17:50:39 +01:00 (rev 12906)
@@ -0,0 +1,891 @@
+/* -*- mode: C; c-basic-offset: 3; -*- */
+
+#include <stdio.h> // fprintf
+#include <stdlib.h> // exit
+#include "vtest.h"
+
+#define DEFOP(op,ukind) op, #op, ukind
+
+/* The opcodes appear in the same order here as in libvex_ir.h
+ That is not necessary but helpful when supporting a new architecture.
+*/
+static const irop_t irops[] = {
+ { DEFOP(Iop_Add8, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Add16, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Add32, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Add64, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Sub8, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Sub16, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Sub32, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Sub64, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Mul8, UNDEF_LEFT), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_Mul16, UNDEF_LEFT), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_Mul32, UNDEF_LEFT), .s390x = 0, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Mul64, UNDEF_LEFT), .s390x = 0, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Or8, UNDEF_OR), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Or16, UNDEF_OR), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Or32, UNDEF_OR), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Or64, UNDEF_OR), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_And8, UNDEF_AND), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_And16, UNDEF_AND), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_And32, UNDEF_AND), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_And64, UNDEF_AND), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Xor8, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Xor16, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Xor32, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Xor64, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Shl8, UNDEF_SHL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Shl16, UNDEF_SHL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Shl32, UNDEF_SHL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Shl64, UNDEF_SHL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Shr8, UNDEF_SHR), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // ppc asserts in isel
+ { DEFOP(Iop_Shr16, UNDEF_SHR), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // ppc asserts in isel
+ { DEFOP(Iop_Shr32, UNDEF_SHR), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Shr64, UNDEF_SHR), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Sar8, UNDEF_SAR), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // ppc asserts in isel
+ { DEFOP(Iop_Sar16, UNDEF_SAR), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // ppc asserts in isel
+ { DEFOP(Iop_Sar32, UNDEF_SAR), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Sar64, UNDEF_SAR), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_CmpEQ8, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CmpEQ16, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CmpEQ32, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_CmpEQ64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_CmpNE8, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CmpNE16, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CmpNE32, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_CmpNE64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Not8, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Not16, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Not32, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Not64, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_CasCmpEQ8, UNDEF_NONE), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CasCmpEQ16, UNDEF_NONE), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CasCmpEQ32, UNDEF_NONE), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CasCmpEQ64, UNDEF_NONE), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CasCmpNE8, UNDEF_NONE), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CasCmpNE16, UNDEF_NONE), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CasCmpNE32, UNDEF_NONE), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CasCmpNE64, UNDEF_NONE), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_MullS8, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_MullS16, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_MullS32, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ // s390 has signed multiplication of 64-bit values but the result
+ // is 64-bit (not 128-bit). So we cannot test this op standalone.
+ { DEFOP(Iop_MullS64, UNDEF_LEFT), .s390x = 0, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_MullU8, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_MullU16, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_MullU32, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_MullU64, UNDEF_LEFT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Clz64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Clz32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_Ctz64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_Ctz32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CmpLT32S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_CmpLT64S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_CmpLE32S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_CmpLE64S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_CmpLT32U, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_CmpLT64U, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_CmpLE32U, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_CmpLE64U, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_CmpNEZ8, UNDEF_ALL), }, // not supported by mc_translate
+ { DEFOP(Iop_CmpNEZ16, UNDEF_ALL), }, // not supported by mc_translate
+ { DEFOP(Iop_CmpNEZ32, UNDEF_ALL), }, // not supported by mc_translate
+ { DEFOP(Iop_CmpNEZ64, UNDEF_ALL), }, // not supported by mc_translate
+ { DEFOP(Iop_CmpwNEZ32, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_CmpwNEZ64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Left8, UNDEF_UNKNOWN), }, // not supported by mc_translate
+ { DEFOP(Iop_Left16, UNDEF_UNKNOWN), }, // not supported by mc_translate
+ { DEFOP(Iop_Left32, UNDEF_UNKNOWN), }, // not supported by mc_translate
+ { DEFOP(Iop_Left64, UNDEF_UNKNOWN), }, // not supported by mc_translate
+ { DEFOP(Iop_Max32U, UNDEF_UNKNOWN), }, // not supported by mc_translate
+ { DEFOP(Iop_CmpORD32U, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_CmpORD64U, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_CmpORD32S, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_CmpORD64S, UNDEF_UNKNOWN), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_DivU32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_DivS32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_DivU64, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_DivS64, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_DivU64E, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_DivS64E, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_DivU32E, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_DivS32E, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ // On s390 the DivMod operations always appear in a certain context
+ // So they cannot be tested in isolation on that platform.
+ { DEFOP(Iop_DivModU64to32, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_DivModS64to32, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_DivModU128to64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_DivModS128to64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_DivModS64to64, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_8Uto16, UNDEF_ZEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_8Uto32, UNDEF_ZEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_8Uto64, UNDEF_ZEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_16Uto32, UNDEF_ZEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_16Uto64, UNDEF_ZEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_32Uto64, UNDEF_ZEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_8Sto16, UNDEF_SEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_8Sto32, UNDEF_SEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_8Sto64, UNDEF_SEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_16Sto32, UNDEF_SEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_16Sto64, UNDEF_SEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_32Sto64, UNDEF_SEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_64to8, UNDEF_TRUNC), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_32to8, UNDEF_TRUNC), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_64to16, UNDEF_TRUNC), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_16to8, UNDEF_TRUNC), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_16HIto8, UNDEF_UPPER), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_8HLto16, UNDEF_CONCAT), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // ppc isel
+ { DEFOP(Iop_32to16, UNDEF_TRUNC), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ { DEFOP(Iop_32HIto16, UNDEF_UPPER), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_16HLto32, UNDEF_CONCAT), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // ppc isel
+ { DEFOP(Iop_64to32, UNDEF_TRUNC), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_64HIto32, UNDEF_UPPER), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_32HLto64, UNDEF_CONCAT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_128to64, UNDEF_TRUNC), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_128HIto64, UNDEF_UPPER), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_64HLto128, UNDEF_CONCAT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_Not1, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_32to1, UNDEF_TRUNC), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_64to1, UNDEF_TRUNC), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_1Uto8, UNDEF_ZEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_1Uto32, UNDEF_ZEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_1Uto64, UNDEF_ZEXT), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_1Sto8, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_1Sto16, UNDEF_ALL), }, // not handled by mc_translate
+ { DEFOP(Iop_1Sto32, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_1Sto64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_AddF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_SubF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_MulF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_DivF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_AddF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_SubF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_MulF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_DivF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_AddF64r32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_SubF64r32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_MulF64r32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_DivF64r32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_NegF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_AbsF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_NegF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_AbsF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_SqrtF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_SqrtF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_CmpF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_CmpF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_CmpF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F64toI16S, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F64toI32S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_F64toI64S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_F64toI64U, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_F64toI32U, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_I32StoF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_I64StoF64, UNDEF_ALL), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_I64UtoF64, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_I64UtoF32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_I32UtoF64, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F32toI32S, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F32toI64S, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_I32StoF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_I64StoF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F32toF64, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_F64toF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_ReinterpF64asI64, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_ReinterpI64asF64, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_ReinterpF32asI32, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 1, .mips32 = 1 },
+ // ppc requires this op to show up in a specific context. So it cannot be
+ // tested standalone on that platform.
+ { DEFOP(Iop_ReinterpI32asF32, UNDEF_SAME), .s390x = 1, .amd64 = 1, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_F64HLtoF128, UNDEF_CONCAT), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F128HItoF64, UNDEF_UPPER), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F128LOtoF64, UNDEF_TRUNC), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_AddF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_SubF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_MulF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_DivF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_NegF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_AbsF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_SqrtF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_I32StoF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_I64StoF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F32toF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F64toF128, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F128toI32S, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F128toI64S, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F128toF64, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_F128toF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_AtanF64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_Yl2xF64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_Yl2xp1F64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_PRemF64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_PRemC3210F64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_PRem1F64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_PRem1C3210F64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_ScaleF64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_SinF64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_CosF64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_TanF64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_2xm1F64, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_RoundF64toInt, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_RoundF32toInt, UNDEF_ALL), .s390x = 0, .amd64 = 1, .ppc64 = 0, .mips32 = 1 },
+ { DEFOP(Iop_MAddF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_MSubF32, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 0, .mips32 = 0 },
+ { DEFOP(Iop_MAddF64, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_MSubF64, UNDEF_ALL), .s390x = 1, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_MAddF64r32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_MSubF64r32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_Est5FRSqrt, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_RoundF64toF64_NEAREST, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_RoundF64toF64_NegINF, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_RoundF64toF64_PosINF, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_RoundF64toF64_ZERO, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+ { DEFOP(Iop_TruncF64asF32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 }, // mips asserts
+ { DEFOP(Iop_RoundF64toF32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .ppc64 = 1, .mips32 = 0 },
+
+ /* ------------------ 32-bit SIMD Integer ------------------ */
+ { DEFOP(Iop_QAdd32S, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub32S, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add16x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub16x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd16Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd16Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub16Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub16Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_HAdd16Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_HAdd16Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_HSub16Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_HSub16Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add8x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub8x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd8Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd8Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub8Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub8Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_HAdd8Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_HAdd8Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_HSub8Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_HSub8Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sad8Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ16x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ8x4, UNDEF_UNKNOWN), },
+ /* ------------------ 64-bit SIMD FP ------------------------ */
+ { DEFOP(Iop_I32UtoFx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_I32StoFx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_FtoI32Ux2_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_FtoI32Sx2_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F32ToFixed32Ux2_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F32ToFixed32Sx2_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Fixed32UToF32x2_RN, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Fixed32SToF32x2_RN, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMax32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMin32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGE32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recip32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recps32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Rsqrte32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Rsqrts32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Neg32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Abs32Fx2, UNDEF_UNKNOWN), },
+ /* ------------------ 64-bit SIMD Integer. ------------------ */
+ { DEFOP(Iop_CmpNEZ8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd64Ux1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd64Sx1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAdd8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAdd16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAdd32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMax8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMax16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMax32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMax8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMax16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMax32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMin8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMin16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMin32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMin8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMin16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMin32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub64Ux1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub64Sx1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Abs8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Abs16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Abs32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MulHi16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MulHi16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PolynomialMul8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QDMulHi16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QDMulHi32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QRDMulHi16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QRDMulHi32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Avg8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Avg16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cnt8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shl8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shl16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shl32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shr8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shr16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shr32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sar8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sar16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sar32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sal8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sal16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sal32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sal64x1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShlN8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShlN16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShlN32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShrN8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShrN16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShrN32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SarN8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SarN16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SarN32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShl8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShl16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShl32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShl64x1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSal8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSal16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSal32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSal64x1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN64Sx1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN64x1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSalN8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSalN16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSalN32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSalN64x1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowBin16Sto8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowBin16Sto8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowBin32Sto16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_NarrowBin16to8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_NarrowBin32to16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveHI8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveHI16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveHI32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveLO8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveLO16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveLO32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveOddLanes8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveEvenLanes8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveOddLanes16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveEvenLanes16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatOddLanes8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatOddLanes16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatEvenLanes8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatEvenLanes16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_GetElem8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_GetElem16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_GetElem32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SetElem8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SetElem16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SetElem32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Dup8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Dup16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Dup32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Extract64, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse16_8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse32_8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse32_16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse64_8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse64_16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse64_32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Perm8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recip32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Rsqrte32x2, UNDEF_UNKNOWN), },
+ /* ------------------ Decimal Floating Point ------------------ */
+ { DEFOP(Iop_AddD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_SubD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_MulD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_DivD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_AddD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_SubD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_MulD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_DivD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_ShlD64, UNDEF_SHL), .s390x = 0, .ppc64 = 0 }, // ppc asserts
+ { DEFOP(Iop_ShrD64, UNDEF_SHR), .s390x = 0, .ppc64 = 0 }, // ditto
+ { DEFOP(Iop_ShlD128, UNDEF_SHL), .s390x = 0, .ppc64 = 0 }, // ditto
+ { DEFOP(Iop_ShrD128, UNDEF_SHR), .s390x = 0, .ppc64 = 0 }, // ditto
+ { DEFOP(Iop_D32toD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_D64toD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_I64StoD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_D64toD32, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_D128toD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_I64StoD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_D64toI64S, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_D128toI64S, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_RoundD64toInt, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_RoundD128toInt, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_CmpD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_CmpD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_QuantizeD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_QuantizeD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_SignificanceRoundD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_SignificanceRoundD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_ExtractExpD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_ExtractExpD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_InsertExpD64, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_InsertExpD128, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_D64HLtoD128, UNDEF_CONCAT), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_D128HItoD64, UNDEF_UPPER), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_D128LOtoD64, UNDEF_TRUNC), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_DPBtoBCD, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_BCDtoDPB, UNDEF_ALL), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_ReinterpI64asD64, UNDEF_SAME), .s390x = 0, .ppc64 = 1 },
+ { DEFOP(Iop_ReinterpD64asI64, UNDEF_SAME), .s390x = 0, .ppc64 = 1 },
+ /* ------------------ 128-bit SIMD FP. ------------------ */
+ { DEFOP(Iop_Add32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Div32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpLT32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpLE32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpUN32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGE32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Abs32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMax32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwMin32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sqrt32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_RSqrt32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Neg32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recip32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recps32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Rsqrte32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Rsqrts32Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_I32UtoFx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_I32StoFx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_FtoI32Ux4_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_FtoI32Sx4_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QFtoI32Ux4_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QFtoI32Sx4_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_RoundF32x4_RM, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_RoundF32x4_RP, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_RoundF32x4_RN, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_RoundF32x4_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F32ToFixed32Ux4_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F32ToFixed32Sx4_RZ, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Fixed32UToF32x4_RN, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Fixed32SToF32x4_RN, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F32toF16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F16toF32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Div32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpLT32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpLE32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpUN32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recip32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sqrt32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_RSqrt32F0x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Div64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpLT64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpLE64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpUN64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recip64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sqrt64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_RSqrt64Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Div64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpLT64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpLE64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpUN64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recip64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sqrt64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_RSqrt64F0x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_V128to64, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_V128HIto64, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_64HLtoV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_64UtoV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SetV128lo64, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_32UtoV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_V128to32, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SetV128lo32, UNDEF_UNKNOWN), },
+ /* ------------------ 128-bit SIMD Integer. ------------------ */
+ { DEFOP(Iop_NotV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_AndV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_OrV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_XorV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShlV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShrV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd32Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd64Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QAdd64Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub32Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub64Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSub64Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MulHi16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MulHi32Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MulHi16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MulHi32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MullEven8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MullEven16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MullEven8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_MullEven16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mull8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mull8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mull16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mull16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mull32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mull32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QDMulHi16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QDMulHi32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QRDMulHi16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QRDMulHi32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QDMulLong16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QDMulLong32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PolynomialMul8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PolynomialMull8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAdd8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAdd16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAdd32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAdd32Fx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL32Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_PwAddL32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Abs8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Abs16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Abs32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Avg8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Avg16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Avg32Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Avg8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Avg16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Avg32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max32Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min32Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpEQ64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT64Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpGT32Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cnt8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Clz32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Cls32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShlN8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShlN16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShlN32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShlN64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShrN8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShrN16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShrN32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ShrN64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SarN8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SarN16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SarN32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_SarN64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shl8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shl16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shl32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shl64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shr8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shr16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shr32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Shr64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sar8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sar16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sar32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sar64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sal8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sal16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sal32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sal64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Rol8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Rol16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Rol32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShl8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShl16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShl32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShl64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSal8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSal16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSal32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSal64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN32Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN64Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QShlN64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSalN8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSalN16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSalN32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QSalN64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowBin16Sto8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowBin32Sto16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowBin16Sto8Sx16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowBin32Sto16Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowBin16Uto8Ux16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowBin32Uto16Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_NarrowBin16to8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_NarrowBin32to16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_NarrowUn16to8x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_NarrowUn32to16x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_NarrowUn64to32x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowUn16Sto8Sx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowUn32Sto16Sx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowUn64Sto32Sx2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowUn16Sto8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowUn32Sto16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowUn64Sto32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowUn16Uto8Ux8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowUn32Uto16Ux4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_QNarrowUn64Uto32Ux2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Widen8Uto16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Widen16Uto32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Widen32Uto64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Widen8Sto16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Widen16Sto32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Widen32Sto64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveHI8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveHI16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveHI32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveHI64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveLO8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveLO16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveLO32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveLO64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveOddLanes8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveEvenLanes8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveOddLanes16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveEvenLanes16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveOddLanes32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_InterleaveEvenLanes32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatOddLanes8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatOddLanes16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatOddLanes32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatEvenLanes8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatEvenLanes16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CatEvenLanes32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_GetElem8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_GetElem16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_GetElem32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_GetElem64x2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Dup8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Dup16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Dup32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_ExtractV128, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse16_8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse32_8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse32_16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse64_8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse64_16x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Reverse64_32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Perm8x16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Perm32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recip32x4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Rsqrte32x4, UNDEF_UNKNOWN), },
+ /* ------------------ 256-bit SIMD Integer. ------------------ */
+ { DEFOP(Iop_V256to64_0, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_V256to64_1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_V256to64_2, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_V256to64_3, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_64x4toV256, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_V256toV128_0, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_V256toV128_1, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_V128HLtoV256, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_AndV256, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_OrV256, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_XorV256, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_NotV256, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ32x8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_CmpNEZ64x4, UNDEF_UNKNOWN), },
+ /* ------------------ 256-bit SIMD FP. ------------------ */
+ { DEFOP(Iop_Add64Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub64Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul64Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Div64Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Add32Fx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sub32Fx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Mul32Fx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Div32Fx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sqrt32Fx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Sqrt64Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_RSqrt32Fx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Recip32Fx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max32Fx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min32Fx8, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Max64Fx4, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_Min64Fx4, UNDEF_UNKNOWN), },
+};
+
+
+/* Return a descriptor for OP, iff it exists and it is implemented
+ for the current architecture. */
+const irop_t *
+get_irop(IROp op)
+{
+ unsigned i;
+
+ for (i = 0; i < sizeof irops / sizeof *irops; ++i) {
+ const irop_t *p = irops + i;
+ if (p->op == op) {
+#ifdef __s390x__
+ return p->s390x ? p : NULL;
+#endif
+#ifdef __x86_64__
+ return p->amd64 ? p : NULL;
+#endif
+#ifdef __powerpc__
+#ifdef __powerpc64__
+ return p->ppc64 ? p : NULL;
+#else
+ return p->ppc32 ? p : NULL;
+#endif
+#endif
+#ifdef __mips__
+ return p->mips32 ? p : NULL;
+#endif
+#ifdef __arm__
+ return p->arm ? p : NULL;
+#endif
+#ifdef __i386__
+ return p->x86 ? p : NULL;
+#endif
+ return NULL;
+ }
+ }
+
+ fprintf(stderr, "unknown opcode %d\n", op);
+ exit(1);
+}
Modified: trunk/Makefile.vex.am (+1 -0)
===================================================================
--- trunk/Makefile.vex.am 2012-08-28 14:33:10 +01:00 (rev 12905)
+++ trunk/Makefile.vex.am 2012-08-28 17:50:39 +01:00 (rev 12906)
@@ -96,6 +96,7 @@
priv/main_main.c \
priv/main_util.c \
priv/ir_defs.c \
+ priv/ir_inject.c \
priv/ir_match.c \
priv/ir_opt.c \
priv/guest_generic_bb_to_IR.c \
Added: trunk/memcheck/tests/vbit-test/README (+102 -0)
===================================================================
--- trunk/memcheck/tests/vbit-test/README 2012-08-28 14:33:10 +01:00 (rev 12905)
+++ trunk/memcheck/tests/vbit-test/README 2012-08-28 17:50:39 +01:00 (rev 12906)
@@ -0,0 +1,102 @@
+vbit-test
+
+The program tests the effect of an undefined input bit to an IROp on the
+definedness of the result of that operation. It also checks that only those
+bits in the result are undefined that we expect to be undefined. That way
+we can detect false positives (there are bits in the result that are
+undefined but shouldn't) and false negatives (there are defined bits in
+the result that should be undefined).
+
+By design, the tester will always be in-synch with the list of IROps
+in libvex_ir.h. Addition / removel of IROps will cause a compile or
+runtime error of the tester and thusly will not go unnoticed.
+
+
+How it works
+------------
+The underlying idea is to
+(1) use VALGRIND_SET_VBITS to set the V-bits of the operands of an IROp
+(2) execute that IROp
+(3) use VALGRIND_GET_VBITS to obtain the V-bits of the result
+(4) compare the result against our expectation
+Do that for all IROps and for all input bits of their operands.
+For all this to work, the tester must run under the auspices of memcheck.
+
+The key step here is #2. To "execute an IROp" we need to inject some
+IR into the the superblock. This is accomplished by adding a new "special
+instruction" that is supported by all frontends. During the decoding step
+that instruction will be recognised and a suitable piece of IR will be
+inserted (function vex_inject_ir does just that). What is "suitable" depends
+on the IROp at hand and its operands. We need to know the addresses of
+those operands, their types and, trivially, which IROp we want to execute.
+This information is collected in the IR Injection Control Block (IRICB).
+To get the IRICB to VEX we use the...
[truncated message content] |
|
From: <sv...@va...> - 2012-08-28 16:49:41
|
florian 2012-08-28 17:49:30 +0100 (Tue, 28 Aug 2012)
New Revision: 2490
Log:
VEX-side support for the V-bit tester.
- recognise the new "special instruction" for all architectures
(ARM needs implementation work; x86 and ARM are untested)
- inject IR into the superblock
- type definition for the IR injection control block
Added files:
trunk/priv/ir_inject.c
Modified files:
trunk/priv/guest_amd64_toIR.c
trunk/priv/guest_arm_toIR.c
trunk/priv/guest_mips_toIR.c
trunk/priv/guest_ppc_toIR.c
trunk/priv/guest_s390_toIR.c
trunk/priv/guest_x86_toIR.c
trunk/pub/libvex.h
trunk/pub/libvex_ir.h
Modified: trunk/priv/guest_s390_toIR.c (+17 -0)
===================================================================
--- trunk/priv/guest_s390_toIR.c 2012-08-28 14:31:31 +01:00 (rev 2489)
+++ trunk/priv/guest_s390_toIR.c 2012-08-28 17:49:30 +01:00 (rev 2490)
@@ -14129,6 +14129,23 @@
s390_irgen_guest_NRADDR();
} else if (bytes[0] == 0x18 && bytes[1] == 0x44 /* lr %r4, %r4 */) {
s390_irgen_call_noredir();
+ } else if (bytes[0] == 0x18 && bytes[1] == 0x55 /* lr %r5, %r5 */) {
+ vex_inject_ir(irsb, Iend_BE);
+
+ /* Invalidate the current insn. The reason is that the IRop we're
+ injecting here can change. In which case the translation has to
+ be redone. For ease of handling, we simply invalidate all the
+ time. */
+ stmt(IRStmt_Put(S390X_GUEST_OFFSET(guest_TISTART),
+ mkU64(guest_IA_curr_instr)));
+ stmt(IRStmt_Put(S390X_GUEST_OFFSET(guest_TILEN),
+ mkU64(guest_IA_next_instr - guest_IA_curr_instr)));
+ vassert(guest_IA_next_instr - guest_IA_curr_instr ==
+ S390_SPECIAL_OP_PREAMBLE_SIZE + S390_SPECIAL_OP_SIZE);
+
+ put_IA(mkaddr_expr(guest_IA_next_instr));
+ dis_res->whatNext = Dis_StopHere;
+ dis_res->jk_StopHere = Ijk_TInval;
} else {
/* We don't know what it is. */
return S390_DECODE_UNKNOWN_SPECIAL_INSN;
Modified: trunk/pub/libvex.h (+27 -0)
===================================================================
--- trunk/pub/libvex.h 2012-08-28 14:31:31 +01:00 (rev 2489)
+++ trunk/pub/libvex.h 2012-08-28 17:49:30 +01:00 (rev 2490)
@@ -750,7 +750,34 @@
extern void LibVEX_ShowStats ( void );
+/*-------------------------------------------------------*/
+/*-- IR injection --*/
+/*-------------------------------------------------------*/
+/* IR Injection Control Block */
+
+#define NO_ROUNDING_MODE (~0u)
+
+typedef
+ struct {
+ IROp op; // the operation to perform
+ HWord result; // address of the result
+ HWord opnd1; // address of 1st operand
+ HWord opnd2; // address of 2nd operand
+ HWord opnd3; // address of 3rd operand
+ HWord opnd4; // address of 4th operand
+ IRType t_result; // type of result
+ IRType t_opnd1; // type of 1st operand
+ IRType t_opnd2; // type of 2nd operand
+ IRType t_opnd3; // type of 3rd operand
+ IRType t_opnd4; // type of 4th operand
+ UInt rounding_mode;
+ UInt num_operands; // excluding rounding mode, if any
+ }
+ IRICB;
+
+extern void LibVEX_InitIRI ( const IRICB * );
+
/*-------------------------------------------------------*/
/*--- Notes ---*/
/*-------------------------------------------------------*/
Modified: trunk/priv/guest_amd64_toIR.c (+22 -0)
===================================================================
--- trunk/priv/guest_amd64_toIR.c 2012-08-28 14:31:31 +01:00 (rev 2489)
+++ trunk/priv/guest_amd64_toIR.c 2012-08-28 17:49:30 +01:00 (rev 2490)
@@ -117,6 +117,7 @@
4887DB (xchgq %rbx,%rbx) %RDX = client_request ( %RAX )
4887C9 (xchgq %rcx,%rcx) %RAX = guest_NRADDR
4887D2 (xchgq %rdx,%rdx) call-noredir *%RAX
+ 4887F6 (xchgq %rdi,%rdi) IR injection
Any other bytes following the 16-byte preamble are illegal and
constitute a failure in instruction decoding. This all assumes
@@ -26548,6 +26549,27 @@
vassert(dres.whatNext == Dis_StopHere);
goto decode_success;
}
+ else
+ if (code[16] == 0x48 && code[17] == 0x87
+ && code[18] == 0xff /* xchgq %rdi,%rdi */) {
+ /* IR injection */
+ DIP("IR injection\n");
+ vex_inject_ir(irsb, Iend_LE);
+
+ // Invalidate the current insn. The reason is that the IRop we're
+ // injecting here can change. In which case the translation has to
+ // be redone. For ease of handling, we simply invalidate all the
+ // time.
+ stmt(IRStmt_Put(OFFB_TISTART, mkU64(guest_RIP_curr_instr)));
+ stmt(IRStmt_Put(OFFB_TILEN, mkU64(19)));
+
+ delta += 19;
+
+ stmt( IRStmt_Put( OFFB_RIP, mkU64(guest_RIP_bbstart + delta) ) );
+ dres.whatNext = Dis_StopHere;
+ dres.jk_StopHere = Ijk_TInval;
+ goto decode_success;
+ }
/* We don't know what it is. */
goto decode_failure;
/*NOTREACHED*/
Added: trunk/priv/ir_inject.c (+253 -0)
===================================================================
--- trunk/priv/ir_inject.c 2012-08-28 14:31:31 +01:00 (rev 2489)
+++ trunk/priv/ir_inject.c 2012-08-28 17:49:30 +01:00 (rev 2490)
@@ -0,0 +1,253 @@
+/* -*- mode: C; c-basic-offset: 3; -*- */
+
+/*---------------------------------------------------------------*/
+/*--- begin ir_inject.c ---*/
+/*---------------------------------------------------------------*/
+
+
+/*
+ This file is part of Valgrind, a dynamic binary instrumentation
+ framework.
+
+ Copyright (C) 2012-2012 Florian Krohm (br...@ac...)
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
+#include "libvex_basictypes.h"
+#include "libvex_ir.h"
+#include "libvex.h"
+#include "main_util.h"
+
+/* Convenience macros for readibility */
+#define mkU32(v) IRExpr_Const(IRConst_U32(v))
+#define mkU64(v) IRExpr_Const(IRConst_U64(v))
+#define unop(kind, a) IRExpr_Unop(kind, a)
+#define binop(kind, a1, a2) IRExpr_Binop(kind, a1, a2)
+#define triop(kind, a1, a2, a3) IRExpr_Triop(kind, a1, a2, a3)
+#define qop(kind, a1, a2, a3, a4) IRExpr_Qop(kind, a1, a2, a3, a4)
+#define stmt(irsb, st) addStmtToIRSB(irsb, st)
+
+
+/* The IR Injection Control Block. vex_inject_ir will query its contents
+ to construct IR statements for testing purposes. */
+static IRICB iricb;
+
+
+void
+LibVEX_InitIRI(const IRICB *iricb_in)
+{
+ iricb = *iricb_in; // copy in
+}
+
+
+static IRExpr *
+load_aux(IREndness endian, IRType type, IRExpr *addr)
+{
+ if (type == Ity_D64) {
+ /* The insn selectors do not support loading a DFP value from memory.
+ So we need to fix it here by loading an integer value and
+ reinterpreting it as DFP. */
+ return unop(Iop_ReinterpI64asD64,
+ IRExpr_Load(endian, Ity_I64, addr));
+ }
+ if (type == Ity_I1) {
+ /* A Boolean value is stored as a 32-bit entity (see store_aux). */
+ return unop(Iop_32to1, IRExpr_Load(endian, Ity_I32, addr));
+ }
+
+ return IRExpr_Load(endian, type, addr);
+}
+
+
+/* Load a value from memory. Loads of more than 8 byte are split into
+ a series of 8-byte loads and combined using appropriate IROps. */
+static IRExpr *
+load(IREndness endian, IRType type, HWord haddr)
+{
+ IROp concat;
+ IRExpr *addr, *next_addr;
+
+ if (VEX_HOST_WORDSIZE == 8) {
+ addr = mkU64(haddr);
+ next_addr = binop(Iop_Add64, addr, mkU64(8));
+ } else if (VEX_HOST_WORDSIZE == 4) {
+ addr = mkU32(haddr);
+ next_addr = binop(Iop_Add32, addr, mkU32(4));
+ } else {
+ vpanic("invalid #bytes for address");
+ }
+
+ switch (type) {
+ case Ity_I128: concat = Iop_64HLto128; type = Ity_I64; goto load128;
+ case Ity_F128: concat = Iop_F64HLtoF128; type = Ity_F64; goto load128;
+ case Ity_D128: concat = Iop_D64HLtoD128; type = Ity_D64; goto load128;
+
+ load128:
+ /* Two loads of 64 bit each. */
+ if (endian == Iend_BE) {
+ /* The more significant bits are at the lower address. */
+ return binop(concat,
+ load_aux(endian, type, addr),
+ load_aux(endian, type, next_addr));
+ } else {
+ /* The more significant bits are at the higher address. */
+ return binop(concat,
+ load_aux(endian, type, next_addr),
+ load_aux(endian, type, addr));
+ }
+
+ default:
+ return load_aux(endian, type, addr);
+ }
+}
+
+
+static void
+store_aux(IRSB *irsb, IREndness endian, IRExpr *addr, IRExpr *data)
+{
+ if (typeOfIRExpr(irsb->tyenv, data) == Ity_D64) {
+ /* The insn selectors do not support writing a DFP value to memory.
+ So we need to fix it here by reinterpreting the DFP value as an
+ integer and storing that. */
+ data = unop(Iop_ReinterpD64asI64, data);
+ }
+ if (typeOfIRExpr(irsb->tyenv, data) == Ity_I1) {
+ /* We cannot store a single bit. So we store it in a 32-bit container.
+ See also load_aux. */
+ data = unop(Iop_1Uto32, data);
+ }
+ stmt(irsb, IRStmt_Store(endian, addr, data));
+}
+
+
+/* Store a value to memory. If a value requires more than 8 bytes a series
+ of 8-byte loads will be generated. */
+static void __inline__
+store(IRSB *irsb, IREndness endian, HWord haddr, IRExpr *data)
+{
+ IROp high, low;
+ IRExpr *addr, *next_addr;
+
+ if (VEX_HOST_WORDSIZE == 8) {
+ addr = mkU64(haddr);
+ next_addr = binop(Iop_Add64, addr, mkU64(8));
+ } else if (VEX_HOST_WORDSIZE == 4) {
+ addr = mkU32(haddr);
+ next_addr = binop(Iop_Add32, addr, mkU32(4));
+ } else {
+ vpanic("invalid #bytes for address");
+ }
+
+ switch (typeOfIRExpr(irsb->tyenv, data)) {
+ case Ity_I128: high = Iop_128HIto64; low = Iop_128to64; goto store128;
+ case Ity_F128: high = Iop_F128HItoF64; low = Iop_F128LOtoF64; goto store128;
+ case Ity_D128: high = Iop_D128HItoD64; low = Iop_D128LOtoD64; goto store128;
+
+ store128:
+ /* Two stores of 64 bit each. */
+ if (endian == Iend_BE) {
+ /* The more significant bits are at the lower address. */
+ store_aux(irsb, endian, addr, unop(high, data));
+ store_aux(irsb, endian, next_addr, unop(low, data));
+ } else {
+ /* The more significant bits are at the higher address. */
+ store_aux(irsb, endian, addr, unop(low, data));
+ store_aux(irsb, endian, next_addr, unop(high, data));
+ }
+ return;
+
+ default:
+ store_aux(irsb, endian, addr, data);
+ return;
+ }
+}
+
+
+/* Inject IR stmts depending on the data provided in the control
+ block iricb. */
+void
+vex_inject_ir(IRSB *irsb, IREndness endian)
+{
+ IRExpr *data, *rounding_mode, *opnd1, *opnd2, *opnd3, *opnd4;
+
+ rounding_mode = NULL;
+ if (iricb.rounding_mode != NO_ROUNDING_MODE) {
+ rounding_mode = mkU32(iricb.rounding_mode);
+ }
+
+ switch (iricb.num_operands) {
+ case 1:
+ opnd1 = load(endian, iricb.t_opnd1, iricb.opnd1);
+ if (rounding_mode)
+ data = binop(iricb.op, rounding_mode, opnd1);
+ else
+ data = unop(iricb.op, opnd1);
+ break;
+
+ case 2:
+ opnd1 = load(endian, iricb.t_opnd1, iricb.opnd1);
+ opnd2 = load(endian, iricb.t_opnd2, iricb.opnd2);
+ if (rounding_mode)
+ data = triop(iricb.op, rounding_mode, opnd1, opnd2);
+ else
+ data = binop(iricb.op, opnd1, opnd2);
+ break;
+
+ case 3:
+ opnd1 = load(endian, iricb.t_opnd1, iricb.opnd1);
+ opnd2 = load(endian, iricb.t_opnd2, iricb.opnd2);
+ opnd3 = load(endian, iricb.t_opnd3, iricb.opnd3);
+ if (rounding_mode)
+ data = qop(iricb.op, rounding_mode, opnd1, opnd2, opnd3);
+ else
+ data = triop(iricb.op, opnd1, opnd2, opnd3);
+ break;
+
+ case 4:
+ vassert(rounding_mode == NULL);
+ opnd1 = load(endian, iricb.t_opnd1, iricb.opnd1);
+ opnd2 = load(endian, iricb.t_opnd2, iricb.opnd2);
+ opnd3 = load(endian, iricb.t_opnd3, iricb.opnd3);
+ opnd4 = load(endian, iricb.t_opnd4, iricb.opnd4);
+ data = qop(iricb.op, opnd1, opnd2, opnd3, opnd4);
+ break;
+
+ default:
+ vpanic("unsupported operator");
+ }
+
+ store(irsb, endian, iricb.result, data);
+
+ if (0) {
+ vex_printf("BEGIN inject\n");
+ if (sizeofIRType(iricb.t_result) <= 8) {
+ ppIRStmt(irsb->stmts[irsb->stmts_used - 1]);
+ } else if (sizeofIRType(iricb.t_result) == 16) {
+ ppIRStmt(irsb->stmts[irsb->stmts_used - 2]);
+ vex_printf("\n");
+ ppIRStmt(irsb->stmts[irsb->stmts_used - 1]);
+ vex_printf("\n");
+ }
+ vex_printf("END inject\n");
+ }
+}
+
+/*---------------------------------------------------------------*/
+/*--- end ir_inject.c ---*/
+/*---------------------------------------------------------------*/
Modified: trunk/priv/guest_arm_toIR.c (+25 -0)
===================================================================
--- trunk/priv/guest_arm_toIR.c 2012-08-28 14:31:31 +01:00 (rev 2489)
+++ trunk/priv/guest_arm_toIR.c 2012-08-28 17:49:30 +01:00 (rev 2490)
@@ -91,6 +91,7 @@
E18AA00A (orr r10,r10,r10) R3 = client_request ( R4 )
E18BB00B (orr r11,r11,r11) R3 = guest_NRADDR
E18CC00C (orr r12,r12,r12) branch-and-link-to-noredir R4
+ E18DD00D (orr r13,r13,r13) IR injection
Any other bytes following the 16-byte preamble are illegal and
constitute a failure in instruction decoding. This all assumes
@@ -12476,6 +12477,30 @@
dres.whatNext = Dis_StopHere;
goto decode_success;
}
+ else
+ if (getUIntLittleEndianly(code+16) == 0xE18DD00D
+ /* orr r13,r13,r13 */) {
+ /* IR injection */
+ DIP("IR injection\n");
+
+ vex_inject_ir(irsb, Iend_LE);
+
+ // Invalidate the current insn. The reason is that the IRop we're
+ // injecting here can change. In which case the translation has to
+ // be redone. For ease of handling, we simply invalidate all the
+ // time.
+#if 0
+ // FIXME: needs to be fixed
+ stmt(IRStmt_Put(OFFB_TISTART, mkU32(guest_R15_curr_instr_notENC)));
+ stmt(IRStmt_Put(OFFB_TILEN, mkU32(20)));
+
+ llPutIReg(15, mkU32( guest_R15_curr_instr_notENC + 20 ));
+
+ dres.whatNext = Dis_StopHere;
+ dres.jk_StopHere = Ijk_TInval;
+ goto decode_success;
+#endif
+ }
/* We don't know what it is. Set opc1/opc2 so decode_failure
can print the insn following the Special-insn preamble. */
insn = getUIntLittleEndianly(code+16);
Modified: trunk/pub/libvex_ir.h (+9 -1)
===================================================================
--- trunk/pub/libvex_ir.h 2012-08-28 14:31:31 +01:00 (rev 2489)
+++ trunk/pub/libvex_ir.h 2012-08-28 17:49:30 +01:00 (rev 2490)
@@ -1461,7 +1461,8 @@
Iop_Recip32Fx8,
Iop_Max32Fx8, Iop_Min32Fx8,
- Iop_Max64Fx4, Iop_Min64Fx4
+ Iop_Max64Fx4, Iop_Min64Fx4,
+ Iop_LAST /* must be the last enumerator */
}
IROp;
@@ -2496,6 +2497,13 @@
/* Is this any value actually in the enumeration 'IRType' ? */
extern Bool isPlausibleIRType ( IRType ty );
+
+/*---------------------------------------------------------------*/
+/*--- IR injection ---*/
+/*---------------------------------------------------------------*/
+void vex_inject_ir(IRSB *, IREndness);
+
+
#endif /* ndef __LIBVEX_IR_H */
Modified: trunk/priv/guest_x86_toIR.c (+21 -0)
===================================================================
--- trunk/priv/guest_x86_toIR.c 2012-08-28 14:31:31 +01:00 (rev 2489)
+++ trunk/priv/guest_x86_toIR.c 2012-08-28 17:49:30 +01:00 (rev 2490)
@@ -148,6 +148,7 @@
87DB (xchgl %ebx,%ebx) %EDX = client_request ( %EAX )
87C9 (xchgl %ecx,%ecx) %EAX = guest_NRADDR
87D2 (xchgl %edx,%edx) call-noredir *%EAX
+ 87FF (xchgl %edi,%edi) IR injection
Any other bytes following the 12-byte preamble are illegal and
constitute a failure in instruction decoding. This all assumes
@@ -8017,6 +8018,26 @@
vassert(dres.whatNext == Dis_StopHere);
goto decode_success;
}
+ else
+ if (code[12] == 0x87 && code[13] == 0xFF /* xchgl %edi,%edi */) {
+ /* IR injection */
+ DIP("IR injection\n");
+ vex_inject_ir(irsb, Iend_LE);
+
+ // Invalidate the current insn. The reason is that the IRop we're
+ // injecting here can change. In which case the translation has to
+ // be redone. For ease of handling, we simply invalidate all the
+ // time.
+ stmt(IRStmt_Put(OFFB_TISTART, mkU32(guest_EIP_curr_instr)));
+ stmt(IRStmt_Put(OFFB_TILEN, mkU32(14)));
+
+ delta += 14;
+
+ stmt( IRStmt_Put( OFFB_EIP, mkU32(guest_EIP_bbstart + delta) ) );
+ dres.whatNext = Dis_StopHere;
+ dres.jk_StopHere = Ijk_TInval;
+ goto decode_success;
+ }
/* We don't know what it is. */
goto decode_failure;
/*NOTREACHED*/
Modified: trunk/priv/guest_ppc_toIR.c (+22 -0)
===================================================================
--- trunk/priv/guest_ppc_toIR.c 2012-08-28 14:31:31 +01:00 (rev 2489)
+++ trunk/priv/guest_ppc_toIR.c 2012-08-28 17:49:30 +01:00 (rev 2490)
@@ -93,6 +93,7 @@
7C421378 (or 2,2,2) %R3 = guest_NRADDR
7C631B78 (or 3,3,3) branch-and-link-to-noredir %R11
7C842378 (or 4,4,4) %R3 = guest_NRADDR_GPR2
+ 7CA52B78 (or 5,5,5) IR injection
Any other bytes following the 16-byte preamble are illegal and
constitute a failure in instruction decoding. This all assumes
@@ -16589,6 +16590,27 @@
putIReg(3, IRExpr_Get( OFFB_NRADDR_GPR2, ty ));
goto decode_success;
}
+ else
+ if (getUIntBigendianly(code+16) == 0x7CA52B78 /* or 5,5,5 */) {
+ DIP("IR injection\n");
+
+ vex_inject_ir(irsb, Iend_BE);
+
+ delta += 20;
+ dres.len = 20;
+
+ // Invalidate the current insn. The reason is that the IRop we're
+ // injecting here can change. In which case the translation has to
+ // be redone. For ease of handling, we simply invalidate all the
+ // time.
+ stmt(IRStmt_Put(OFFB_TISTART, mkU64(guest_CIA_curr_instr)));
+ stmt(IRStmt_Put(OFFB_TILEN, mkU64(20)));
+
+ putGST( PPC_GST_CIA, mkSzImm( ty, guest_CIA_bbstart + delta ));
+ dres.whatNext = Dis_StopHere;
+ dres.jk_StopHere = Ijk_TInval;
+ goto decode_success;
+ }
/* We don't know what it is. Set opc1/opc2 so decode_failure
can print the insn following the Special-insn preamble. */
theInstr = getUIntBigendianly(code+16);
Modified: trunk/priv/guest_mips_toIR.c (+19 -0)
===================================================================
--- trunk/priv/guest_mips_toIR.c 2012-08-28 14:31:31 +01:00 (rev 2489)
+++ trunk/priv/guest_mips_toIR.c 2012-08-28 17:49:30 +01:00 (rev 2490)
@@ -1292,6 +1292,25 @@
dres.jk_StopHere = Ijk_NoRedir;
dres.whatNext = Dis_StopHere;
goto decode_success;
+ } else if (getUInt(code + 16) == 0x016b5825/* or t3,t3,t3 */ ) {
+ /* IR injection */
+ DIP("IR injection\n");
+#if defined (_MIPSEL)
+ vex_inject_ir(irsb, Iend_LE);
+#elif defined (_MIPSEB)
+ vex_inject_ir(irsb, Iend_BE);
+#endif
+ stmt(IRStmt_Put(offsetof(VexGuestMIPS32State, guest_TISTART),
+ mkU32(guest_PC_curr_instr)));
+ stmt(IRStmt_Put(offsetof(VexGuestMIPS32State, guest_TILEN),
+ mkU32(20)));
+
+ putPC(mkU32(guest_PC_curr_instr + 20));
+ dres.whatNext = Dis_StopHere;
+ dres.jk_StopHere = Ijk_TInval;
+ dres.len = 20;
+ delta += 20;
+ goto decode_success;
}
/* We don't know what it is. Set opc1/opc2 so decode_failure
|
|
From: Florian K. <br...@ac...> - 2012-08-28 16:34:33
|
On 08/28/2012 11:27 AM, Andrew C. Morrow wrote:
> Hi Julian -
>
> Thanks for the pointer to the relevant code.
>
> I can make the check work again by marking aLocal as volatile:
>
> HChar* volatile aLocal = (HChar*)&limLo; /* any auto local will do */
>
> Complete speculation, but maybe what is happening is that clang is
> optimizing away the entire conditional as always taken, reasoning
> (correctly or incorrectly) that an auto variable will never fall
> within an address range that is reserved for an extern char array?
The reason is that the comparisons aLocal < limLo and aLocal >= limHi
cause undefined behaviour (according to c99 6.5.8) because they compare
pointers that do not point into the same aggregate.
Compilers are free to do whatever they like in that case.
Another fix would be to transform the pointers to like-sized integers
and compare those. That kind of conversion causes implementation defined
behaviour which compilers are supposed to document. So you could look up
whether it works.. I suppose, using volatile is the easier "fix".
Florian
>> VG_(debugLog)(1, "main", "Checking current stack is plausible\n");
>> { HChar* limLo = (HChar*)(&VG_(interim_stack).bytes[0]);
>> HChar* limHi = limLo + sizeof(VG_(interim_stack));
>> HChar* aLocal = (HChar*)&limLo; /* any auto local will do */
>> /* "Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on
>> LLVM 3.1svn)" appears to miscompile the following check,
>> causing run to abort at this point (in 64-bit mode) even
>> though aLocal is within limLo .. limHi. Try building with
>> gcc instead. */
>> if (aLocal < limLo || aLocal >= limHi) {
|
|
From: Julian S. <js...@ac...> - 2012-08-28 15:44:10
|
On Tuesday, August 28, 2012, Andrew C. Morrow wrote: > I can make the check work again by marking aLocal as volatile: > > HChar* volatile aLocal = (HChar*)&limLo; /* any auto local will do */ > > Complete speculation, but maybe what is happening is that clang is > optimizing away the entire conditional as always taken, reasoning > (correctly or incorrectly) that an auto variable will never fall > within an address range that is reserved for an extern char array? Hmm, that's a good point. I couldn't figure out why it was failing. If you can verify that the change works with both clang and gcc then I'll be happy to commit it. J |
|
From: Andrew C. M. <and...@gm...> - 2012-08-28 15:27:41
|
Hi Julian -
Thanks for the pointer to the relevant code.
I can make the check work again by marking aLocal as volatile:
HChar* volatile aLocal = (HChar*)&limLo; /* any auto local will do */
Complete speculation, but maybe what is happening is that clang is
optimizing away the entire conditional as always taken, reasoning
(correctly or incorrectly) that an auto variable will never fall
within an address range that is reserved for an extern char array?
On Tue, Aug 28, 2012 at 5:05 AM, Julian Seward <js...@ac...> wrote:
>
> On Monday, August 27, 2012, Andrew C. Morrow wrote:
>> --2030:0:main Root stack 0x238E20000 to 0x238F24000, a local
>> 0x238F21FB0 --2030:0:main Valgrind: FATAL: Initial stack switched
>> failed.
>> --2030:0:main Cannot continue. Sorry.
>>
>> If I rebuild valgrind with llvm-gcc-4.2 as the compiler, all is well.
>
> Ah yes. I fell over this too, and documented it in the sources, but
> failed to document it anywhere else.
>
> It is to do with this bit of m_main.c, around line 1614 -- see the
> comment. I didn't chase it further, because it compiled with gcc and
> it had (and still does have) more serious problems on OSX 10.8, so
> I spent time investigating those instead.
>
> If you want to try and make sense of what's going on here with
> clang, that would be good, since I find it hard to believe that
> clang would really have miscompiled an expression as simple
> as "aLocal < limLo || aLocal >= limHi".
>
> J
>
>
> //--------------------------------------------------------------
> // Ensure we're on a plausible stack.
> // p: logging
> //--------------------------------------------------------------
> VG_(debugLog)(1, "main", "Checking current stack is plausible\n");
> { HChar* limLo = (HChar*)(&VG_(interim_stack).bytes[0]);
> HChar* limHi = limLo + sizeof(VG_(interim_stack));
> HChar* aLocal = (HChar*)&limLo; /* any auto local will do */
> /* "Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on
> LLVM 3.1svn)" appears to miscompile the following check,
> causing run to abort at this point (in 64-bit mode) even
> though aLocal is within limLo .. limHi. Try building with
> gcc instead. */
> if (aLocal < limLo || aLocal >= limHi) {
> /* something's wrong. Stop. */
> VG_(debugLog)(0, "main", "Root stack %p to %p, a local %p\n",
> limLo, limHi, aLocal );
> VG_(debugLog)(0, "main", "Valgrind: FATAL: "
> "Initial stack switched failed.\n");
> VG_(debugLog)(0, "main", " Cannot continue. Sorry.\n");
> VG_(exit)(1);
> }
> }
>
|
|
From: <sv...@va...> - 2012-08-28 13:33:28
|
florian 2012-08-28 14:33:10 +0100 (Tue, 28 Aug 2012)
New Revision: 12905
Log:
s390: Add zEC12 machine model. Fix spelling for some older models.
Modified files:
trunk/coregrind/m_machine.c
trunk/tests/s390x_features.c
Modified: trunk/tests/s390x_features.c (+5 -4)
===================================================================
--- trunk/tests/s390x_features.c 2012-08-28 01:38:47 +01:00 (rev 12904)
+++ trunk/tests/s390x_features.c 2012-08-28 14:33:10 +01:00 (rev 12905)
@@ -79,12 +79,13 @@
{ "2066", "z800" },
{ "2084", "z990" },
{ "2086", "z890" },
- { "2094", "z9-ec" },
- { "2096", "z9-bc" },
- { "2097", "z10-ec" },
- { "2098", "z10-bc" },
+ { "2094", "z9-EC" },
+ { "2096", "z9-BC" },
+ { "2097", "z10-EC" },
+ { "2098", "z10-BC" },
{ "2817", "z196" },
{ "2818", "z114" },
+ { "2827", "zEC12" },
};
Modified: trunk/coregrind/m_machine.c (+1 -0)
===================================================================
--- trunk/coregrind/m_machine.c 2012-08-28 01:38:47 +01:00 (rev 12904)
+++ trunk/coregrind/m_machine.c 2012-08-28 14:33:10 +01:00 (rev 12905)
@@ -531,6 +531,7 @@
{ "2098", VEX_S390X_MODEL_Z10_BC },
{ "2817", VEX_S390X_MODEL_Z196 },
{ "2818", VEX_S390X_MODEL_Z114 },
+ { "2827", VEX_S390X_MODEL_ZEC12 },
};
Int model, n, fh;
|
|
From: <sv...@va...> - 2012-08-28 13:31:46
|
florian 2012-08-28 14:31:31 +0100 (Tue, 28 Aug 2012)
New Revision: 2489
Log:
s390: Add the zEC12 machine model.
Modified files:
trunk/pub/libvex.h
Modified: trunk/pub/libvex.h (+2 -1)
===================================================================
--- trunk/pub/libvex.h 2012-08-26 19:58:13 +01:00 (rev 2488)
+++ trunk/pub/libvex.h 2012-08-28 14:31:31 +01:00 (rev 2489)
@@ -119,7 +119,8 @@
#define VEX_S390X_MODEL_Z10_BC 7
#define VEX_S390X_MODEL_Z196 8
#define VEX_S390X_MODEL_Z114 9
-#define VEX_S390X_MODEL_UNKNOWN 10 /* always last in list */
+#define VEX_S390X_MODEL_ZEC12 10
+#define VEX_S390X_MODEL_UNKNOWN 11 /* always last in list */
#define VEX_S390X_MODEL_MASK 0x3F
#define VEX_HWCAPS_S390X_LDISP (1<<6) /* Long-displacement facility */
|
|
From: Julian S. <js...@ac...> - 2012-08-28 09:06:28
|
On Monday, August 27, 2012, Andrew C. Morrow wrote:
> --2030:0:main Root stack 0x238E20000 to 0x238F24000, a local
> 0x238F21FB0 --2030:0:main Valgrind: FATAL: Initial stack switched
> failed.
> --2030:0:main Cannot continue. Sorry.
>
> If I rebuild valgrind with llvm-gcc-4.2 as the compiler, all is well.
Ah yes. I fell over this too, and documented it in the sources, but
failed to document it anywhere else.
It is to do with this bit of m_main.c, around line 1614 -- see the
comment. I didn't chase it further, because it compiled with gcc and
it had (and still does have) more serious problems on OSX 10.8, so
I spent time investigating those instead.
If you want to try and make sense of what's going on here with
clang, that would be good, since I find it hard to believe that
clang would really have miscompiled an expression as simple
as "aLocal < limLo || aLocal >= limHi".
J
//--------------------------------------------------------------
// Ensure we're on a plausible stack.
// p: logging
//--------------------------------------------------------------
VG_(debugLog)(1, "main", "Checking current stack is plausible\n");
{ HChar* limLo = (HChar*)(&VG_(interim_stack).bytes[0]);
HChar* limHi = limLo + sizeof(VG_(interim_stack));
HChar* aLocal = (HChar*)&limLo; /* any auto local will do */
/* "Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on
LLVM 3.1svn)" appears to miscompile the following check,
causing run to abort at this point (in 64-bit mode) even
though aLocal is within limLo .. limHi. Try building with
gcc instead. */
if (aLocal < limLo || aLocal >= limHi) {
/* something's wrong. Stop. */
VG_(debugLog)(0, "main", "Root stack %p to %p, a local %p\n",
limLo, limHi, aLocal );
VG_(debugLog)(0, "main", "Valgrind: FATAL: "
"Initial stack switched failed.\n");
VG_(debugLog)(0, "main", " Cannot continue. Sorry.\n");
VG_(exit)(1);
}
}
|
|
From: Rich C. <rc...@wi...> - 2012-08-28 05:17:39
|
valgrind revision: 12904
VEX revision: 2488
C compiler: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
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 2012-08-27 23:35:00 CDT
Ended at 2012-08-28 00:17:24 CDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 498 tests, 144 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/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/strchr (stderr)
memcheck/tests/test-plo-no (stderr)
memcheck/tests/varinfo3 (stderr)
memcheck/tests/varinfo5 (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_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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_barrier.stderr.out 2012-08-28 00:14:13.000000000 -0500
@@ -37,6 +37,123 @@
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........: ???
+ 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:?)
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_barrier_xml.stderr.diff
=================================================
--- annotate_barrier_xml.stderr.exp 2012-08-27 23:56:33.000000000 -0500
+++ annotate_barrier_xml.stderr.out 2012-08-28 00:14:14.000000000 -0500
@@ -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,575 @@
<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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_hb_race.stderr.out 2012-08-28 00:14:16.000000000 -0500
@@ -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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_hbefore.stderr.out 2012-08-28 00:14:18.000000000 -0500
@@ -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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_ignore_read.stderr.out 2012-08-28 00:14:19.000000000 -0500
@@ -1,6 +1,88 @@
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........: 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........: 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 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........: 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........: 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........: 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 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........: 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 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
+
GLOB=30
-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_ignore_rw.stderr.diff
=================================================
--- annotate_ignore_rw.stderr.exp 2012-08-27 23:56:33.000000000 -0500
+++ annotate_ignore_rw.stderr.out 2012-08-28 00:14:21.000000000 -0500
@@ -4,6 +4,60 @@
Location 0x........ is 0 bytes inside local var "s_c"
declared at annotate_ignore_rw.c:12, in frame #? of 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:?)
+ 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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_ignore_rw2.stderr.out 2012-08-28 00:14:23.000000000 -0500
@@ -14,6 +14,60 @@
Location 0x........ is 0 bytes inside local var "s_c"
declared at annotate_ignore_rw.c:12, in frame #? of 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:?)
+ 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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_ignore_write.stderr.out 2012-08-28 00:14:24.000000000 -0500
@@ -14,6 +14,60 @@
Location 0x........ is 0 bytes inside local var "s_a"
declared at annotate_ignore_write.c:10, in frame #? of 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:?)
+ 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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_ignore_write2.stderr.out 2012-08-28 00:14:25.000000000 -0500
@@ -19,6 +19,60 @@
Location 0x........ is 0 bytes inside local var "s_a"
declared at annotate_ignore_write.c:10, in frame #? of 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:?)
+ 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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_order_1.stderr.out 2012-08-28 00:14:27.000000000 -0500
@@ -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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_order_2.stderr.out 2012-08-28 00:14:29.000000000 -0500
@@ -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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_order_3.stderr.out 2012-08-28 00:14:31.000000000 -0500
@@ -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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_rwlock.stderr.out 2012-08-28 00:14:36.000000000 -0500
@@ -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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_smart_pointer.stderr.out 2012-08-28 00:14:46.000000000 -0500
@@ -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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_smart_pointer2.stderr.out 2012-08-28 00:14:47.000000000 -0500
@@ -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 2012-08-27 23:56:33.000000000 -0500
+++ annotate_spinlock.stderr.out 2012-08-28 00:14:49.000000000 -0500
@@ -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........: 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........: 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 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_...
[truncated message content] |
|
From: Philippe W. <phi...@sk...> - 2012-08-28 03:47:53
|
valgrind revision: 12904 VEX revision: 2488 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.3.1-3.fc16.ppc64 ppc64 Vendor version: Fedora release 16 (Verne) Nightly build on gcc110 ( Fedora release 16 (Verne), ppc64 ) Started at 2012-08-27 20:00:08 PDT Ended at 2012-08-27 20:46:31 PDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 531 tests, 6 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |
|
From: Tom H. <to...@co...> - 2012-08-28 03:10:33
|
valgrind revision: 12904 VEX revision: 2488 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) 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.4.0-1.fc17.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2012-08-28 03:41:23 BST Ended at 2012-08-28 04:10:14 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 605 tests, 0 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == none/tests/amd64/sse4-64 (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 605 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) none/tests/amd64/sse4-64 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2012-08-28 03:55:55.737964728 +0100 --- new.short 2012-08-28 04:10:14.700467201 +0100 *************** *** 8,11 **** ! == 605 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! memcheck/tests/err_disable4 (stderr) none/tests/amd64/sse4-64 (stdout) --- 8,10 ---- ! == 605 tests, 0 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == none/tests/amd64/sse4-64 (stdout) |
|
From: <br...@ac...> - 2012-08-28 03:00:24
|
valgrind revision: 12904
VEX revision: 2488
C compiler: gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3)
Assembler: GNU assembler 2.15.92.0.2 20040927
C library: GNU C Library stable release version 2.3.4
uname -mrs: Linux 2.6.9-42.EL s390x
Vendor version: Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
Nightly build on z10-ec ( s390x build on z10-EC )
Started at 2012-08-27 22:20:25 EDT
Ended at 2012-08-27 23:00:11 EDT
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
== 527 tests, 6 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/manuel3 (stderr)
memcheck/tests/partial_load_ok (stderr)
memcheck/tests/varinfo6 (stderr)
none/tests/s390x/fpconv (stdout)
helgrind/tests/tc09_bad_unlock (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc20_verifywrap (stderr)
=================================================
./valgrind-new/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2012-08-27 22:41:55.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-08-27 22:55:37.000000000 -0400
@@ -42,14 +42,6 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:49)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:49)
-
---------------------
----------------------------------------------------------------
@@ -110,16 +102,8 @@
----------------------------------------------------------------
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-----------------------------------------------------------------
-
Thread #x: Exiting thread still holds 1 lock
...
-ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc18_semabuse.stderr.diff
=================================================
--- tc18_semabuse.stderr.exp 2012-08-27 22:41:55.000000000 -0400
+++ tc18_semabuse.stderr.out 2012-08-27 22:55:45.000000000 -0400
@@ -18,13 +18,5 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:34)
-----------------------------------------------------------------
-Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
- by 0x........: main (tc18_semabuse.c:37)
-
-
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc20_verifywrap.stderr.diff
=================================================
--- tc20_verifywrap.stderr.exp 2012-08-27 22:41:55.000000000 -0400
+++ tc20_verifywrap.stderr.out 2012-08-27 22:55:55.000000000 -0400
@@ -1,7 +1,7 @@
------- This is output for >= glibc 2.4 ------
+------ This is output for < glibc 2.4 ------
---------------- pthread_create/join ----------------
@@ -45,13 +45,6 @@
----------------------------------------------------------------
-Thread #x's call to pthread_mutex_init failed
- with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
- at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:92)
-
-----------------------------------------------------------------
-
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
@@ -63,26 +56,8 @@
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_lock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:108)
-
-----------------------------------------------------------------
-Thread #x's call to pthread_mutex_trylock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:116)
-
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_timedlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:121)
+make pthread_mutex_lock fail: skipped on glibc < 2.4
----------------------------------------------------------------
@@ -90,13 +65,6 @@
at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:125)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:125)
-
---------------- pthread_cond_wait et al ----------------
@@ -215,14 +183,6 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:242)
-----------------------------------------------------------------
-
-Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:245)
-
FIXME: can't figure out how to verify wrap of sem_post
@@ -235,4 +195,4 @@
...
-ERROR SUMMARY: 23 errors from 23 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 17 errors from 17 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/memcheck/tests/manuel3.stderr.diff
=================================================
--- manuel3.stderr.exp 2012-08-27 22:42:40.000000000 -0400
+++ manuel3.stderr.out 2012-08-27 22:50:24.000000000 -0400
@@ -1,4 +1,3 @@
Conditional jump or move depends on uninitialised value(s)
- at 0x........: gcc_cant_inline_me (manuel3.c:22)
- by 0x........: main (manuel3.c:14)
+ at 0x........: main (manuel3.c:12)
=================================================
./valgrind-new/memcheck/tests/partial_load_ok.stderr.diff
=================================================
--- partial_load_ok.stderr.exp 2012-08-27 22:42:40.000000000 -0400
+++ partial_load_ok.stderr.out 2012-08-27 22:50:56.000000000 -0400
@@ -1,7 +1,13 @@
-Invalid read of size 4
+Invalid read of size 1
+ at 0x........: main (partial_load.c:16)
+ Address 0x........ is 0 bytes after a block of size 7 alloc'd
+ at 0x........: calloc (vg_replace_malloc.c:...)
+ by 0x........: main (partial_load.c:14)
+
+Invalid read of size 8
at 0x........: main (partial_load.c:23)
- Address 0x........ is 1 bytes inside a block of size 4 alloc'd
+ Address 0x........ is 1 bytes inside a block of size 8 alloc'd
at 0x........: calloc (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:20)
@@ -11,9 +17,9 @@
at 0x........: calloc (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:28)
-Invalid read of size 4
+Invalid read of size 8
at 0x........: main (partial_load.c:37)
- Address 0x........ is 0 bytes inside a block of size 4 free'd
+ Address 0x........ is 0 bytes inside a block of size 8 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:36)
@@ -25,4 +31,4 @@
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/memcheck/tests/partial_load_ok.stderr.diff64
=================================================
--- partial_load_ok.stderr.exp64 2012-08-27 22:42:40.000000000 -0400
+++ partial_load_ok.stderr.out 2012-08-27 22:50:56.000000000 -0400
@@ -1,4 +1,10 @@
+Invalid read of size 1
+ at 0x........: main (partial_load.c:16)
+ Address 0x........ is 0 bytes after a block of size 7 alloc'd
+ at 0x........: calloc (vg_replace_malloc.c:...)
+ by 0x........: main (partial_load.c:14)
+
Invalid read of size 8
at 0x........: main (partial_load.c:23)
Address 0x........ is 1 bytes inside a block of size 8 alloc'd
@@ -25,4 +31,4 @@
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/memcheck/tests/varinfo6.stderr.diff
=================================================
--- varinfo6.stderr.exp 2012-08-27 22:42:40.000000000 -0400
+++ varinfo6.stderr.out 2012-08-27 22:51:56.000000000 -0400
@@ -7,8 +7,7 @@
by 0x........: BZ2_bzCompress (varinfo6.c:4860)
by 0x........: BZ2_bzBuffToBuffCompress (varinfo6.c:5667)
by 0x........: main (varinfo6.c:6517)
- Location 0x........ is 2 bytes inside local var "budget"
- declared at varinfo6.c:3115, in frame #2 of thread 1
+ Address 0x........ is on thread 1's stack
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo6.c:34)
=================================================
./valgrind-new/memcheck/tests/varinfo6.stderr.diff-ppc64
=================================================
--- varinfo6.stderr.exp-ppc64 2012-08-27 22:42:40.000000000 -0400
+++ varinfo6.stderr.out 2012-08-27 22:51:56.000000000 -0400
@@ -1,5 +1,5 @@
Uninitialised byte(s) found during client check request
- at 0x........: croak (varinfo6.c:35)
+ at 0x........: croak (varinfo6.c:34)
by 0x........: mainSort (varinfo6.c:2999)
by 0x........: BZ2_blockSort (varinfo6.c:3143)
by 0x........: BZ2_compressBlock (varinfo6.c:4072)
@@ -10,7 +10,7 @@
Address 0x........ is on thread 1's stack
Uninitialised byte(s) found during client check request
- at 0x........: croak (varinfo6.c:35)
+ at 0x........: croak (varinfo6.c:34)
by 0x........: BZ2_decompress (varinfo6.c:1699)
by 0x........: BZ2_bzDecompress (varinfo6.c:5230)
by 0x........: BZ2_bzBuffToBuffDecompress (varinfo6.c:5715)
=================================================
./valgrind-new/none/tests/s390x/fpconv.stdout.diff
=================================================
--- fpconv.stdout.exp 2012-08-27 22:42:56.000000000 -0400
+++ fpconv.stdout.out 2012-08-27 22:53:54.000000000 -0400
@@ -35,137 +35,137 @@
"cdgbr" -9223372036854775808.000000
"cdgbr" 9223372036854775808.000000
"cxfbr" 0.000000
-"cxfbr" 1.000000
-"cxfbr" -1.000000
-"cxfbr" -2147483648.000000
-"cxfbr" 2147483647.000000
+"cxfbr" 1.937500
+"cxfbr" -1.937500
+"cxfbr" -7.500000
+"cxfbr" 7.500000
"cxfbr" 0.000000
-"cxfbr" -1.000000
+"cxfbr" -1.937500
"cxfbr" 0.000000
-"cxfbr" -1.000000
+"cxfbr" -1.937500
"cxgbr" 0.000000
-"cxgbr" 1.000000
-"cxgbr" 4294967295.000000
-"cxgbr" 2147483648.000000
-"cxgbr" 2147483647.000000
-"cxgbr" 4294967296.000000
-"cxgbr" -1.000000
-"cxgbr" -9223372036854775808.000000
-"cxgbr" 9223372036854775807.000000
-"cfebr" 4294967295 cc=1
-"cfebr" 0 cc=0
-"cfebr" 1 cc=2
-"cfebr" 1 cc=2
-"cfebr" 2 cc=2
-"cfebr" 2 cc=2
-"cfebr" 16000 cc=2
-"cfebr" 160000000 cc=2
-"cfebr" 2147483647 cc=3
-"cfebr" 2147483647 cc=3
-"cfebr" 2147483647 cc=3
-"cfebr" 2147483647 cc=3
-"cfebr" 0 cc=2
-"cfebr" 0 cc=2
-"cfebr" 2147483647 cc=3
-"cfebr" 0 cc=0
-"cfebr" 2147483647 cc=3
-"cfebr" 0 cc=0
-"cfebr" 2147483647 cc=3
-"cgebr" -1 cc=1
-"cgebr" 0 cc=0
-"cgebr" 1 cc=2
-"cgebr" 1 cc=2
-"cgebr" 2 cc=2
-"cgebr" 2 cc=2
-"cgebr" 16000 cc=2
-"cgebr" 160000000 cc=2
-"cgebr" 1599999967232 cc=2
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 0 cc=2
-"cgebr" 0 cc=2
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 0 cc=0
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 0 cc=0
-"cgebr" 9223372036854775807 cc=3
-"cfdbr" 4294967295 cc=1
-"cfdbr" 0 cc=0
-"cfdbr" 1 cc=2
-"cfdbr" 1 cc=2
-"cfdbr" 2 cc=2
-"cfdbr" 2 cc=2
-"cfdbr" 16000 cc=2
-"cfdbr" 160000000 cc=2
-"cfdbr" 2147483647 cc=3
-"cfdbr" 2147483647 cc=3
-"cfdbr" 2147483647 cc=3
-"cfdbr" 2147483647 cc=3
-"cfdbr" 0 cc=2
-"cfdbr" 0 cc=2
-"cfdbr" 2147483647 cc=3
-"cfdbr" 0 cc=2
-"cfdbr" 2147483647 cc=3
-"cfdbr" 0 cc=0
-"cfdbr" 2147483647 cc=3
-"cgdbr" -1 cc=1
-"cgdbr" 0 cc=0
-"cgdbr" 1 cc=2
-"cgdbr" 1 cc=2
-"cgdbr" 2 cc=2
-"cgdbr" 2 cc=2
-"cgdbr" 16000 cc=2
-"cgdbr" 160000000 cc=2
-"cgdbr" 1600000000000 cc=2
-"cgdbr" 9223372036854775807 cc=3
-"cgdbr" 9223372036854775807 cc=3
-"cgdbr" 9223372036854775807 cc=3
-"cgdbr" 0 cc=2
-"cgdbr" 0 cc=2
<truncated beyond 100 lines>
=================================================
./valgrind-old/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2012-08-27 22:22:02.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-08-27 22:37:10.000000000 -0400
@@ -42,14 +42,6 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:49)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:49)
-
---------------------
----------------------------------------------------------------
@@ -110,16 +102,8 @@
----------------------------------------------------------------
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-----------------------------------------------------------------
-
Thread #x: Exiting thread still holds 1 lock
...
-ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc18_semabuse.stderr.diff
=================================================
--- tc18_semabuse.stderr.exp 2012-08-27 22:22:02.000000000 -0400
+++ tc18_semabuse.stderr.out 2012-08-27 22:37:18.000000000 -0400
@@ -18,13 +18,5 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:34)
-----------------------------------------------------------------
-Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
- by 0x........: main (tc18_semabuse.c:37)
-
-
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc20_verifywrap.stderr.diff
=================================================
--- tc20_verifywrap.stderr.exp 2012-08-27 22:22:02.000000000 -0400
+++ tc20_verifywrap.stderr.out 2012-08-27 22:37:28.000000000 -0400
@@ -1,7 +1,7 @@
------- This is output for >= glibc 2.4 ------
+------ This is output for < glibc 2.4 ------
---------------- pthread_create/join ----------------
@@ -45,13 +45,6 @@
----------------------------------------------------------------
-Thread #x's call to pthread_mutex_init failed
- with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
- at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:92)
-
-----------------------------------------------------------------
-
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
@@ -63,26 +56,8 @@
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_lock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:108)
-
-----------------------------------------------------------------
-Thread #x's call to pthread_mutex_trylock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:116)
-
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_timedlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:121)
+make pthread_mutex_lock fail: skipped on glibc < 2.4
----------------------------------------------------------------
@@ -90,13 +65,6 @@
at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:125)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:125)
-
---------------- pthread_cond_wait et al ----------------
@@ -215,14 +183,6 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:242)
-----------------------------------------------------------------
-
-Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:245)
-
FIXME: can't figure out how to verify wrap of sem_post
@@ -235,4 +195,4 @@
...
-ERROR SUMMARY: 23 errors from 23 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 17 errors from 17 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/memcheck/tests/manuel3.stderr.diff
=================================================
--- manuel3.stderr.exp 2012-08-27 22:22:37.000000000 -0400
+++ manuel3.stderr.out 2012-08-27 22:31:57.000000000 -0400
@@ -1,4 +1,3 @@
Conditional jump or move depends on uninitialised value(s)
- at 0x........: gcc_cant_inline_me (manuel3.c:22)
- by 0x........: main (manuel3.c:14)
+ at 0x........: main (manuel3.c:12)
=================================================
./valgrind-old/memcheck/tests/partial_load_ok.stderr.diff
=================================================
--- partial_load_ok.stderr.exp 2012-08-27 22:22:37.000000000 -0400
+++ partial_load_ok.stderr.out 2012-08-27 22:32:29.000000000 -0400
@@ -1,7 +1,13 @@
-Invalid read of size 4
+Invalid read of size 1
+ at 0x........: main (partial_load.c:16)
+ Address 0x........ is 0 bytes after a block of size 7 alloc'd
+ at 0x........: calloc (vg_replace_malloc.c:...)
+ by 0x........: main (partial_load.c:14)
+
+Invalid read of size 8
at 0x........: main (partial_load.c:23)
- Address 0x........ is 1 bytes inside a block of size 4 alloc'd
+ Address 0x........ is 1 bytes inside a block of size 8 alloc'd
at 0x........: calloc (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:20)
@@ -11,9 +17,9 @@
at 0x........: calloc (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:28)
-Invalid read of size 4
+Invalid read of size 8
at 0x........: main (partial_load.c:37)
- Address 0x........ is 0 bytes inside a block of size 4 free'd
+ Address 0x........ is 0 bytes inside a block of size 8 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:36)
@@ -25,4 +31,4 @@
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/memcheck/tests/partial_load_ok.stderr.diff64
=================================================
--- partial_load_ok.stderr.exp64 2012-08-27 22:22:37.000000000 -0400
+++ partial_load_ok.stderr.out 2012-08-27 22:32:29.000000000 -0400
@@ -1,4 +1,10 @@
+Invalid read of size 1
+ at 0x........: main (partial_load.c:16)
+ Address 0x........ is 0 bytes after a block of size 7 alloc'd
+ at 0x........: calloc (vg_replace_malloc.c:...)
+ by 0x........: main (partial_load.c:14)
+
Invalid read of size 8
at 0x........: main (partial_load.c:23)
Address 0x........ is 1 bytes inside a block of size 8 alloc'd
@@ -25,4 +31,4 @@
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/memcheck/tests/varinfo6.stderr.diff
=================================================
--- varinfo6.stderr.exp 2012-08-27 22:22:37.000000000 -0400
+++ varinfo6.stderr.out 2012-08-27 22:33:29.000000000 -0400
@@ -7,8 +7,7 @@
by 0x........: BZ2_bzCompress (varinfo6.c:4860)
by 0x........: BZ2_bzBuffToBuffCompress (varinfo6.c:5667)
by 0x........: main (varinfo6.c:6517)
- Location 0x........ is 2 bytes inside local var "budget"
- declared at varinfo6.c:3115, in frame #2 of thread 1
+ Address 0x........ is on thread 1's stack
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo6.c:34)
=================================================
./valgrind-old/memcheck/tests/varinfo6.stderr.diff-ppc64
=================================================
--- varinfo6.stderr.exp-ppc64 2012-08-27 22:22:37.000000000 -0400
+++ varinfo6.stderr.out 2012-08-27 22:33:29.000000000 -0400
@@ -1,5 +1,5 @@
Uninitialised byte(s) found during client check request
- at 0x........: croak (varinfo6.c:35)
+ at 0x........: croak (varinfo6.c:34)
by 0x........: mainSort (varinfo6.c:2999)
by 0x........: BZ2_blockSort (varinfo6.c:3143)
by 0x........: BZ2_compressBlock (varinfo6.c:4072)
@@ -10,7 +10,7 @@
Address 0x........ is on thread 1's stack
Uninitialised byte(s) found during client check request
- at 0x........: croak (varinfo6.c:35)
+ at 0x........: croak (varinfo6.c:34)
by 0x........: BZ2_decompress (varinfo6.c:1699)
by 0x........: BZ2_bzDecompress (varinfo6.c:5230)
by 0x........: BZ2_bzBuffToBuffDecompress (varinfo6.c:5715)
=================================================
./valgrind-old/none/tests/s390x/fpconv.stdout.diff
=================================================
--- fpconv.stdout.exp 2012-08-27 22:22:54.000000000 -0400
+++ fpconv.stdout.out 2012-08-27 22:35:27.000000000 -0400
@@ -35,137 +35,137 @@
"cdgbr" -9223372036854775808.000000
"cdgbr" 9223372036854775808.000000
"cxfbr" 0.000000
-"cxfbr" 1.000000
-"cxfbr" -1.000000
-"cxfbr" -2147483648.000000
-"cxfbr" 2147483647.000000
+"cxfbr" 1.937500
+"cxfbr" -1.937500
+"cxfbr" -7.500000
+"cxfbr" 7.500000
"cxfbr" 0.000000
-"cxfbr" -1.000000
+"cxfbr" -1.937500
"cxfbr" 0.000000
-"cxfbr" -1.000000
+"cxfbr" -1.937500
"cxgbr" 0.000000
-"cxgbr" 1.000000
-"cxgbr" 4294967295.000000
-"cxgbr" 2147483648.000000
-"cxgbr" 2147483647.000000
-"cxgbr" 4294967296.000000
-"cxgbr" -1.000000
-"cxgbr" -9223372036854775808.000000
-"cxgbr" 9223372036854775807.000000
-"cfebr" 4294967295 cc=1
-"cfebr" 0 cc=0
-"cfebr" 1 cc=2
-"cfebr" 1 cc=2
-"cfebr" 2 cc=2
-"cfebr" 2 cc=2
-"cfebr" 16000 cc=2
-"cfebr" 160000000 cc=2
-"cfebr" 2147483647 cc=3
-"cfebr" 2147483647 cc=3
-"cfebr" 2147483647 cc=3
-"cfebr" 2147483647 cc=3
-"cfebr" 0 cc=2
-"cfebr" 0 cc=2
-"cfebr" 2147483647 cc=3
-"cfebr" 0 cc=0
-"cfebr" 2147483647 cc=3
-"cfebr" 0 cc=0
-"cfebr" 2147483647 cc=3
-"cgebr" -1 cc=1
-"cgebr" 0 cc=0
-"cgebr" 1 cc=2
-"cgebr" 1 cc=2
-"cgebr" 2 cc=2
-"cgebr" 2 cc=2
-"cgebr" 16000 cc=2
-"cgebr" 160000000 cc=2
-"cgebr" 1599999967232 cc=2
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 0 cc=2
-"cgebr" 0 cc=2
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 0 cc=0
-"cgebr" 9223372036854775807 cc=3
-"cgebr" 0 cc=0
-"cgebr" 9223372036854775807 cc=3
-"cfdbr" 4294967295 cc=1
-"cfdbr" 0 cc=0
-"cfdbr" 1 cc=2
-"cfdbr" 1 cc=2
-"cfdbr" 2 cc=2
-"cfdbr" 2 cc=2
-"cfdbr" 16000 cc=2
-"cfdbr" 160000000 cc=2
-"cfdbr" 2147483647 cc=3
-"cfdbr" 2147483647 cc=3
-"cfdbr" 2147483647 cc=3
-"cfdbr" 2147483647 cc=3
-"cfdbr" 0 cc=2
-"cfdbr" 0 cc=2
-"cfdbr" 2147483647 cc=3
-"cfdbr" 0 cc=2
-"cfdbr" 2147483647 cc=3
-"cfdbr" 0 cc=0
-"cfdbr" 2147483647 cc=3
-"cgdbr" -1 cc=1
-"cgdbr" 0 cc=0
-"cgdbr" 1 cc=2
-"cgdbr" 1 cc=2
-"cgdbr" 2 cc=2
-"cgdbr" 2 cc=2
-"cgdbr" 16000 cc=2
-"cgdbr" 160000000 cc=2
-"cgdbr" 1600000000000 cc=2
-"cgdbr" 9223372036854775807 cc=3
-"cgdbr" 9223372036854775807 cc=3
-"cgdbr" 9223372036854775807 cc=3
-"cgdbr" 0 cc=2
-"cgdbr" 0 cc=2
<truncated beyond 100 lines>
|
|
From: Tom H. <to...@co...> - 2012-08-28 02:57:56
|
valgrind revision: 12904 VEX revision: 2488 C compiler: gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2) 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.4.0-1.fc17.x86_64 x86_64 Vendor version: Fedora release 11 (Leonidas) Nightly build on bristol ( x86_64, Fedora 11 ) Started at 2012-08-28 03:31:07 BST Ended at 2012-08-28 03:57:40 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 609 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/long_namespace_xml (stderr) none/tests/amd64/sse4-64 (stdout) |