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
(15) |
2
(13) |
3
(16) |
4
(12) |
5
(17) |
|
6
(16) |
7
(13) |
8
(15) |
9
(15) |
10
(18) |
11
(5) |
12
(17) |
|
13
(13) |
14
(13) |
15
(5) |
16
(13) |
17
(2) |
18
(19) |
19
(12) |
|
20
|
21
(22) |
22
(23) |
23
(23) |
24
(23) |
25
(20) |
26
(19) |
|
27
(33) |
28
(20) |
29
(15) |
30
(21) |
31
(20) |
|
|
|
From: Christian B. <bor...@de...> - 2012-05-28 02:03:48
|
valgrind revision: 12589 VEX revision: 2358 C compiler: gcc (GCC) 4.5.3 20110121 (Red Hat 4.5.3-5) Assembler: GNU assembler version 2.20.51.0.7-4bb6.fc13 20100318 C library: GNU C Library stable release version 2.12.1 uname -mrs: Linux 3.3.4-53.x.20120504-s390xperformance s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 13/14/15 mix with gcc 3.5.3 on z196 (s390x) ) Started at 2012-05-28 03:45:01 CEST Ended at 2012-05-28 04:03:58 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 535 tests, 8 stderr failures, 0 stdout failures, 1 stderrB failure, 1 stdoutB failure, 0 post failures == gdbserver_tests/mcinvokeWS (stdoutB) gdbserver_tests/mcinvokeWS (stderrB) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) drd/tests/circular_buffer (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (stderr) drd/tests/tc21_pthonce (stderr) |
|
From: Florian K. <br...@ac...> - 2012-05-27 20:55:21
|
On 05/27/2012 01:47 PM, Julian Seward wrote:
> So it _sounds_ plausible .. but I wonder how this interacts with the ABI's
> definitions of what is supposed to happen. I say this because the C compiler
> compilers the helpers and therefore whatever it saves/restores is what
> the ABI says.
Good point.
When I wrote this I was thinking about bits in the control reg that
specify the rounding mode.
> Eg, imagine there is some floating point control register FPCR, and the
> ABI says that FPCR is caller saved.
Yes, e.g. ppc. The thing is that the fpcr not only contains bits to
specify the rounding mode, it also contains bits that refer to the
outcome of the last floating point operation (overflow, underflow and
such). That is what I overlooked. So from that perspective it's
extremely likely that such a control register is caller-saved. (ppc abi
says so; s390x abi is silent about that, but its fpc is caller-saved).
However, a quick experiment shows that the caller-saved property only
refers to the flag bits in the fpcr not to the bits specifying the
rounding mode. GCC on ppc (and s390x) clearly assumes, that those are
callee-saved.
Consider
extern double v1, v2;
double func()
{
foobar();
// no code is generated here to restore the rounding mode in the fpcr
return v1+v2;
}
So if foobar is allowed to trash the fpcr then code would have to be
inserted to restore the rounding mode prior to the addition. That's not
happening.
> .. my belief is that either (1) the s390 ELF ABI says that this register
> is callee save, in which case you can get rid of the instructions, or
> (2) it says they are caller save, in which case the instructions would
> have to stay.
Right, I cannot eliminate those insns, as I need to preserve the
floating point flags.
Florian
|
|
From: <sv...@va...> - 2012-05-27 20:21:14
|
philippe 2012-05-27 21:21:02 +0100 (Sun, 27 May 2012)
New Revision: 12589
Log:
fix the warning introduced by fixing SETTLS clone flag PRE_READ logic
on amd64, vki_modify_ldt_t was defined as void (not very clear why).
sizeof (void) cannot be taken (or more precisely can be taken,
but nobody knows what that means and what gcc does).
So, uncommended the (supposedly) correct definition of the type.
Note that I checked the definition on debian 6.0, kernel 2.6.32
and the structure is still ok.
Still needed to look at the other platforms not properly
handling the *SETTID and the SETTLS flags in clone PRE_READ
logic and/or not defining the type vki_modify_ldt_t
Modified files:
trunk/include/vki/vki-amd64-linux.h
Modified: trunk/include/vki/vki-amd64-linux.h (+3 -4)
===================================================================
--- trunk/include/vki/vki-amd64-linux.h 2012-05-27 14:52:54 +01:00 (rev 12588)
+++ trunk/include/vki/vki-amd64-linux.h 2012-05-27 21:21:02 +01:00 (rev 12589)
@@ -558,11 +558,13 @@
// type for x86 (the final 'lm' field is added); I'm not sure about the
// significance of that... --njn
-#if 0
/* [[Nb: This is the structure passed to the modify_ldt syscall. Just so as
to confuse and annoy everyone, this is _not_ the same as an
VgLdtEntry and has to be translated into such. The logic for doing
so, in vg_ldt.c, is copied from the kernel sources.]] */
+/* Note also that a comment in ldt.h indicates that the below
+ contains several fields ignored on 64bit, and that modify_ldt
+ is rather for 32bit. */
struct vki_user_desc {
unsigned int entry_number;
unsigned long base_addr;
@@ -578,10 +580,7 @@
// [[Nb: for our convenience within Valgrind, use a more specific name]]
typedef struct vki_user_desc vki_modify_ldt_t;
-#endif
-typedef void vki_modify_ldt_t;
-
//----------------------------------------------------------------------
// From linux-2.6.11.2/include/asm-x86_64/ipcbuf.h
//----------------------------------------------------------------------
|
|
From: Julian S. <js...@ac...> - 2012-05-27 17:49:54
|
Hi Florian, So it _sounds_ plausible .. but I wonder how this interacts with the ABI's definitions of what is supposed to happen. I say this because the C compiler compilers the helpers and therefore whatever it saves/restores is what the ABI says. Eg, imagine there is some floating point control register FPCR, and the ABI says that FPCR is caller saved. That means we don't have a way to implement the requirement > + * it must not leave hardware control registers in a modified > + state (e.g. if the call modifies the floating point control > + register it must restore it to the state it had when entering > + the callee) outside of inserting inline assembly at the start/end of the helper to save/restore FPCR. Or do I misunderstand something? As a consequence of the above .. > should restore them before returning. The s390 helper call machinery > currently stores the floating point control register on the stack before > calling a helper and restores it afterwards. If we put this burden on > the helper function, I could save these two instructions. .. my belief is that either (1) the s390 ELF ABI says that this register is callee save, in which case you can get rid of the instructions, or (2) it says they are caller save, in which case the instructions would have to stay. As per the comments above I don't think you have the option of removing the instructions from the generated code and putting them in the helper, at least not if the helper is written in vanilla C. Yell if I got the wrong end of the stick on this .. J |
|
From: <sv...@va...> - 2012-05-27 17:20:57
|
florian 2012-05-27 18:20:47 +0100 (Sun, 27 May 2012)
New Revision: 2358
Log:
Update a comment.
Modified files:
trunk/priv/host_s390_defs.c
Modified: trunk/priv/host_s390_defs.c (+2 -1)
===================================================================
--- trunk/priv/host_s390_defs.c 2012-05-27 17:59:56 +01:00 (rev 2357)
+++ trunk/priv/host_s390_defs.c 2012-05-27 18:20:47 +01:00 (rev 2358)
@@ -6734,7 +6734,8 @@
/* Load the target address into a register, that
(a) is not used for passing parameters to the helper and
(b) can be clobbered by the callee
- r1 looks like a good choice.
+ (c) is not special to the BASR insn
+ r1 is the only choice.
Also, need to arrange for the return address be put into the
link-register */
buf = s390_emit_load_64imm(buf, 1, target);
|
|
From: <sv...@va...> - 2012-05-27 17:00:06
|
florian 2012-05-27 17:59:56 +0100 (Sun, 27 May 2012)
New Revision: 2357
Log:
Fix an out-of-date comment.
Modified files:
trunk/pub/libvex.h
Modified: trunk/pub/libvex.h (+3 -8)
===================================================================
--- trunk/pub/libvex.h 2012-05-27 17:52:43 +01:00 (rev 2356)
+++ trunk/pub/libvex.h 2012-05-27 17:59:56 +01:00 (rev 2357)
@@ -102,14 +102,9 @@
/* s390x: Hardware capability encoding
- Bits Information
- [26:31] Machine model
- [25] Long displacement facility
- [24] Extended-immediate facility
- [23] General-instruction-extension facility
- [22] Decimal floating point facility
- [21] FPR-GR transfer facility
- [0:20] Currently unused; reserved for future use
+ Bits [26:31] encode the machine model (see VEX_S390X_MODEL... below)
+ Bits [0:20] encode specific hardware capabilities
+ (see VEX_HWAPS_S390X_... below)
*/
/* Model numbers must be assigned in chronological order.
|
|
From: <sv...@va...> - 2012-05-27 16:52:51
|
florian 2012-05-27 17:52:43 +0100 (Sun, 27 May 2012)
New Revision: 2356
Log:
Change S390_INSN_HELPER_CALL such that returning a value is part
of the call. Previously, this was a separate insn.
Modified files:
trunk/priv/host_s390_defs.c
trunk/priv/host_s390_defs.h
trunk/priv/host_s390_isel.c
Modified: trunk/priv/host_s390_isel.c (+11 -15)
===================================================================
--- trunk/priv/host_s390_isel.c 2012-05-27 17:18:13 +01:00 (rev 2355)
+++ trunk/priv/host_s390_isel.c 2012-05-27 17:52:43 +01:00 (rev 2356)
@@ -450,7 +450,7 @@
*/
static void
doHelperCall(ISelEnv *env, Bool passBBP, IRExpr *guard,
- IRCallee *callee, IRExpr **args)
+ IRCallee *callee, IRExpr **args, HReg dst)
{
UInt n_args, i, argreg, size;
ULong target;
@@ -507,7 +507,7 @@
/* Finally, the call itself. */
addInstr(env, s390_insn_helper_call(cc, (Addr64)target, n_args,
- callee->name));
+ callee->name, dst));
}
@@ -1325,11 +1325,7 @@
HReg dst = newVRegI(env);
doHelperCall(env, False, NULL, expr->Iex.CCall.cee,
- expr->Iex.CCall.args);
-
- /* Move the returned value into the return register */
- addInstr(env, s390_insn_move(sizeofIRType(expr->Iex.CCall.retty), dst,
- make_gpr(S390_REGNO_RETURN_VALUE)));
+ expr->Iex.CCall.args, dst);
return dst;
}
@@ -2417,6 +2413,7 @@
IRType retty;
IRDirty* d = stmt->Ist.Dirty.details;
Bool passBBP;
+ HReg dst;
Int i;
/* Invalidate tracked values of those guest state registers that are
@@ -2434,20 +2431,19 @@
passBBP = toBool(d->nFxState > 0 && d->needsBBP);
- doHelperCall(env, passBBP, d->guard, d->cee, d->args);
-
- /* Now figure out what to do with the returned value, if any. */
- if (d->tmp == IRTemp_INVALID)
- /* No return value. Nothing to do. */
+ if (d->tmp == IRTemp_INVALID) {
+ /* No return value. */
+ dst = INVALID_HREG;
+ doHelperCall(env, passBBP, d->guard, d->cee, d->args, dst);
return;
+ }
retty = typeOfIRTemp(env->type_env, d->tmp);
if (retty == Ity_I64 || retty == Ity_I32
|| retty == Ity_I16 || retty == Ity_I8) {
/* Move the returned value to the destination register */
- HReg dst = lookupIRTemp(env, d->tmp);
- addInstr(env, s390_insn_move(sizeofIRType(retty), dst,
- make_gpr(S390_REGNO_RETURN_VALUE)));
+ dst = lookupIRTemp(env, d->tmp);
+ doHelperCall(env, passBBP, d->guard, d->cee, d->args, dst);
return;
}
break;
Modified: trunk/priv/host_s390_defs.h (+2 -1)
===================================================================
--- trunk/priv/host_s390_defs.h 2012-05-27 17:18:13 +01:00 (rev 2355)
+++ trunk/priv/host_s390_defs.h 2012-05-27 17:52:43 +01:00 (rev 2356)
@@ -353,6 +353,7 @@
s390_cc_t cond;
Addr64 target;
UInt num_args;
+ HReg dst; /* if not INVALID_HREG, put return value here */
HChar *name; /* callee's name (for debugging) */
} helper_call;
struct {
@@ -472,7 +473,7 @@
s390_insn *s390_insn_compare(UChar size, HReg dst, s390_opnd_RMI opnd,
Bool signed_comparison);
s390_insn *s390_insn_helper_call(s390_cc_t cond, Addr64 target, UInt num_args,
- HChar *name);
+ HChar *name, HReg dst);
s390_insn *s390_insn_bfp_triop(UChar size, s390_bfp_triop_t, HReg dst, HReg op2,
HReg op3, s390_round_t);
s390_insn *s390_insn_bfp_binop(UChar size, s390_bfp_binop_t, HReg dst, HReg op2,
Modified: trunk/priv/host_s390_defs.c (+27 -6)
===================================================================
--- trunk/priv/host_s390_defs.c 2012-05-27 17:18:13 +01:00 (rev 2355)
+++ trunk/priv/host_s390_defs.c 2012-05-27 17:52:43 +01:00 (rev 2356)
@@ -624,6 +624,8 @@
for (i = 1; i <= 5; ++i) {
addHRegUse(u, HRmWrite, mkHReg(i, HRcInt64, False));
}
+ if (insn->variant.helper_call.dst != INVALID_HREG)
+ addHRegUse(u, HRmWrite, insn->variant.helper_call.dst);
/* Ditto for floating point registers. f0 - f7 are volatile */
for (i = 0; i <= 7; ++i) {
@@ -849,6 +851,8 @@
As for the arguments of the helper call -- they will be loaded into
non-virtual registers. Again, we don't need to do anything for those
here. */
+ if (insn->variant.helper_call.dst != INVALID_HREG)
+ insn->variant.helper_call.dst = lookupHRegRemap(m, insn->variant.helper_call.dst);
break;
case S390_INSN_BFP_TRIOP:
@@ -4332,7 +4336,7 @@
s390_insn *
s390_insn_helper_call(s390_cc_t cond, Addr64 target, UInt num_args,
- HChar *name)
+ HChar *name, HReg dst)
{
s390_insn *insn = LibVEX_Alloc(sizeof(s390_insn));
@@ -4342,6 +4346,7 @@
insn->variant.helper_call.target = target;
insn->variant.helper_call.num_args = num_args;
insn->variant.helper_call.name = name;
+ insn->variant.helper_call.dst = dst;
return insn;
}
@@ -4939,11 +4944,20 @@
break;
case S390_INSN_HELPER_CALL: {
- s390_sprintf(buf, "%M if (%C) %s{%I}(%L)", "v-call",
- insn->variant.helper_call.cond,
- insn->variant.helper_call.name,
- insn->variant.helper_call.target,
- insn->variant.helper_call.num_args);
+ if (insn->variant.helper_call.dst != INVALID_HREG) {
+ s390_sprintf(buf, "%M if (%C) %R = %s{%I}(%L)", "v-call",
+ insn->variant.helper_call.cond,
+ insn->variant.helper_call.dst,
+ insn->variant.helper_call.name,
+ insn->variant.helper_call.target,
+ insn->variant.helper_call.num_args);
+ } else {
+ s390_sprintf(buf, "%M if (%C) %s{%I}(%L)", "v-call",
+ insn->variant.helper_call.cond,
+ insn->variant.helper_call.name,
+ insn->variant.helper_call.target,
+ insn->variant.helper_call.num_args);
+ }
return buf; /* avoid printing "size = ..." which is meaningless */
}
@@ -6739,6 +6753,13 @@
buf = s390_emit_STG(buf, S390_REGNO_LINK_REGISTER, 0, // save LR
S390_REGNO_STACK_POINTER, S390_OFFSET_SAVED_LR, 0);
buf = s390_emit_BASR(buf, S390_REGNO_LINK_REGISTER, 1); // call helper
+
+ /* Move the return value to the destination register */
+ if (insn->variant.helper_call.dst != INVALID_HREG) {
+ buf = s390_emit_LGR(buf, hregNumber(insn->variant.helper_call.dst),
+ S390_REGNO_RETURN_VALUE);
+ }
+
buf = s390_emit_LG(buf, S390_REGNO_LINK_REGISTER, 0, // restore LR
S390_REGNO_STACK_POINTER, S390_OFFSET_SAVED_LR, 0);
buf = s390_emit_LFPC(buf, S390_REGNO_STACK_POINTER, // restore FPC
|
|
From: Florian K. <br...@ac...> - 2012-05-27 16:49:04
|
Hi Julian,
I was wondering whether you would be OK with this clarification wrt what
helper calls may do.
Index: pub/libvex_ir.h
===================================================================
--- pub/libvex_ir.h (revision 2334)
+++ pub/libvex_ir.h (working copy)
@@ -1662,6 +1662,11 @@
* it must not assume that arguments are being evaluated in a
particular order. The oder of evaluation is unspecified.
+ * it must not leave hardware control registers in a modified
+ state (e.g. if the call modifies the floating point control
+ register it must restore it to the state it had when entering
+ the callee)
+
This is restrictive, but makes the semantics clean, and does
not interfere with IR optimisation.
@@ -1863,6 +1868,9 @@
arguments are evaluated REGARDLESS of the guard value. The order of
argument evaluation is unspecified. The guard expression is evaluated
AFTER the arguments have been evaluated.
+
+ The helper function must not leave hardware control registers in a
+ modified state (see clean helpers).
*/
#define VEX_N_FXSTATE 7 /* enough for FXSAVE/FXRSTOR on x86 */
The rationale is that, at least in theory, helper calls (clean and
dirty) can modify control regs for whatever reason. But if they do, they
should restore them before returning. The s390 helper call machinery
currently stores the floating point control register on the stack before
calling a helper and restores it afterwards. If we put this burden on
the helper function, I could save these two instructions.
Florian
|
|
From: <sv...@va...> - 2012-05-27 16:18:26
|
sewardj 2012-05-27 17:18:13 +0100 (Sun, 27 May 2012)
New Revision: 2355
Log:
Remove, or (where it might later come in handy) comment out artefacts
for 256 bit (AVX) code generation on amd64. Although that was the
plan at first, it turns out to be infeasible to generate 256 bit
instructions for the IR created by Memcheck's instrumentation of 256
bit Ity_V256 IR. This is because it would require 256 bit integer
SIMD operations, and AVX as currently available only provides 256 bit
operations for floating point. So, fall back to generating 256 IR
into 128-bit XMM register pairs, and using the existing SSE facilities
in the back end. This change only affects the amd64 back end -- it
does not affect IR, which remains unchanged, and capable of
representing 256 bit vector operations wherever needed.
Modified files:
trunk/priv/host_amd64_defs.c
trunk/priv/host_amd64_defs.h
trunk/priv/host_amd64_isel.c
trunk/priv/host_generic_reg_alloc2.c
trunk/priv/host_generic_regs.c
trunk/priv/host_generic_regs.h
Modified: trunk/priv/host_generic_reg_alloc2.c (+0 -25)
===================================================================
--- trunk/priv/host_generic_reg_alloc2.c 2012-05-27 14:50:42 +01:00 (rev 2354)
+++ trunk/priv/host_generic_reg_alloc2.c 2012-05-27 17:18:13 +01:00 (rev 2355)
@@ -208,8 +208,6 @@
static inline void sanity_check_spill_offset ( VRegLR* vreg )
{
switch (vreg->reg_class) {
- case HRcVec256:
- vassert(0 == ((UShort)vreg->spill_offset % 32)); break;
case HRcVec128: case HRcFlt64:
vassert(0 == ((UShort)vreg->spill_offset % 16)); break;
default:
@@ -838,29 +836,6 @@
HRegClass. */
switch (vreg_lrs[j].reg_class) {
- case HRcVec256:
- /* Find four adjacent free slots in which between them
- provide 256 bits in which to spill the vreg. Since we
- are trying to find an 32-byte-aligned slot, move along
- in steps of 4 (slots). */
- for (k = 0; k < N_SPILL64S-3; k += 4)
- if (ss_busy_until_before[k+0] <= vreg_lrs[j].live_after
- && ss_busy_until_before[k+1] <= vreg_lrs[j].live_after
- && ss_busy_until_before[k+2] <= vreg_lrs[j].live_after
- && ss_busy_until_before[k+3] <= vreg_lrs[j].live_after)
- break;
- if (k >= N_SPILL64S-3) {
- vpanic("LibVEX_N_SPILL_BYTES is too low. "
- "Increase and recompile.");
- }
- if (0) vex_printf("32-byte spill offset in spill slot %d\n",
- (Int)k);
- ss_busy_until_before[k+0] = vreg_lrs[j].dead_before;
- ss_busy_until_before[k+1] = vreg_lrs[j].dead_before;
- ss_busy_until_before[k+2] = vreg_lrs[j].dead_before;
- ss_busy_until_before[k+3] = vreg_lrs[j].dead_before;
- break;
-
case HRcVec128: case HRcFlt64:
/* Find two adjacent free slots in which between them
provide up to 128 bits in which to spill the vreg.
Modified: trunk/priv/host_amd64_isel.c (+0 -75)
===================================================================
--- trunk/priv/host_amd64_isel.c 2012-05-27 14:50:42 +01:00 (rev 2354)
+++ trunk/priv/host_amd64_isel.c 2012-05-27 17:18:13 +01:00 (rev 2355)
@@ -196,14 +196,7 @@
return reg;
}
-static HReg newVRegDV ( ISelEnv* env )
-{
- HReg reg = mkHReg(env->vreg_ctr, HRcVec256, True/*virtual reg*/);
- env->vreg_ctr++;
- return reg;
-}
-
/*---------------------------------------------------------*/
/*--- ISEL: Forward declarations ---*/
/*---------------------------------------------------------*/
@@ -246,9 +239,6 @@
static HReg iselVecExpr_wrk ( ISelEnv* env, IRExpr* e );
static HReg iselVecExpr ( ISelEnv* env, IRExpr* e );
-static HReg iselV256Expr_wrk ( ISelEnv* env, IRExpr* e );
-static HReg iselV256Expr ( ISelEnv* env, IRExpr* e );
-
static void iselDVecExpr_wrk ( /*OUT*/HReg* rHi, HReg* rLo,
ISelEnv* env, IRExpr* e );
static void iselDVecExpr ( /*OUT*/HReg* rHi, HReg* rLo,
@@ -325,15 +315,6 @@
return AMD64Instr_SseReRg(Asse_MOV, src, dst);
}
-/* Make a double-vector (256 bit) reg-reg move. */
-
-static AMD64Instr* mk_dvMOVsd_RR ( HReg src, HReg dst )
-{
- vassert(hregClass(src) == HRcVec256);
- vassert(hregClass(dst) == HRcVec256);
- return AMD64Instr_AvxReRg(Asse_MOV, src, dst);
-}
-
/* Advance/retreat %rsp by n. */
static void add_to_rsp ( ISelEnv* env, Int n )
@@ -3381,62 +3362,6 @@
/*---------------------------------------------------------*/
-/*--- ISEL: SIMD (V256) expressions, 256 bit. ---*/
-/*---------------------------------------------------------*/
-
-static HReg iselV256Expr ( ISelEnv* env, IRExpr* e )
-{
- HReg r = iselV256Expr_wrk( env, e );
-# if 0
- vex_printf("\n"); ppIRExpr(e); vex_printf("\n");
-# endif
- vassert(hregClass(r) == HRcVec256);
- vassert(hregIsVirtual(r));
- return r;
-}
-
-
-/* DO NOT CALL THIS DIRECTLY */
-static HReg iselV256Expr_wrk ( ISelEnv* env, IRExpr* e )
-{
- //HWord fn = 0; /* address of helper fn, if required */
- //Bool arg1isEReg = False;
- //AMD64SseOp op = Asse_INVALID;
- IRType ty = typeOfIRExpr(env->type_env,e);
- vassert(e);
- vassert(ty == Ity_V256);
-#if 0
- if (e->tag == Iex_RdTmp) {
- return lookupIRTemp(env, e->Iex.RdTmp.tmp);
- }
-
- if (e->tag == Iex_Get) {
- HReg dst = newVRegDV(env);
- addInstr(env, AMD64Instr_AvxLdSt(
- True/*load*/,
- dst,
- AMD64AMode_IR(e->Iex.Get.offset, hregAMD64_RBP())
- )
- );
- return dst;
- }
-
- if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
- HReg dst = newVRegDV(env);
- AMD64AMode* am = iselIntExpr_AMode(env, e->Iex.Load.addr);
- addInstr(env, AMD64Instr_AvxLdSt( True/*load*/, dst, am ));
- return dst;
- }
-#endif
- //avx_fail:
- vex_printf("iselV256Expr (amd64, subarch = %s): can't reduce\n",
- LibVEX_ppVexHwCaps(VexArchAMD64, env->hwcaps));
- ppIRExpr(e);
- vpanic("iselV256Expr_wrk");
-}
-
-
-/*---------------------------------------------------------*/
/*--- ISEL: SIMD (V256) expressions, into 2 XMM regs. --*/
/*---------------------------------------------------------*/
Modified: trunk/priv/host_generic_regs.h (+2 -4)
===================================================================
--- trunk/priv/host_generic_regs.h 2012-05-27 14:50:42 +01:00 (rev 2354)
+++ trunk/priv/host_generic_regs.h 2012-05-27 17:18:13 +01:00 (rev 2355)
@@ -87,7 +87,6 @@
so won't fit in a 64-bit slot)
HRcVec64 64 bits
HRcVec128 128 bits
- HRcVec256 256 bits
If you add another regclass, you must remember to update
host_generic_reg_alloc2.c accordingly.
@@ -100,8 +99,7 @@
HRcFlt32=5, /* 32-bit float */
HRcFlt64=6, /* 64-bit float */
HRcVec64=7, /* 64-bit SIMD */
- HRcVec128=8, /* 128-bit SIMD */
- HRcVec256=9
+ HRcVec128=8 /* 128-bit SIMD */
}
HRegClass;
@@ -124,7 +122,7 @@
static inline HRegClass hregClass ( HReg r ) {
UInt rc = r;
rc = (rc >> 28) & 0x0F;
- vassert(rc >= HRcInt32 && rc <= HRcVec256);
+ vassert(rc >= HRcInt32 && rc <= HRcVec128);
return (HRegClass)rc;
}
Modified: trunk/priv/host_generic_regs.c (+0 -2)
===================================================================
--- trunk/priv/host_generic_regs.c 2012-05-27 14:50:42 +01:00 (rev 2354)
+++ trunk/priv/host_generic_regs.c 2012-05-27 17:18:13 +01:00 (rev 2355)
@@ -49,7 +49,6 @@
case HRcFlt64: vex_printf("HRcFlt64"); break;
case HRcVec64: vex_printf("HRcVec64"); break;
case HRcVec128: vex_printf("HRcVec128"); break;
- case HRcVec256: vex_printf("HRcVec256"); break;
default: vpanic("ppHRegClass");
}
}
@@ -66,7 +65,6 @@
case HRcFlt64: vex_printf("%%%sD%d", maybe_v, regNo); return;
case HRcVec64: vex_printf("%%%sv%d", maybe_v, regNo); return;
case HRcVec128: vex_printf("%%%sV%d", maybe_v, regNo); return;
- case HRcVec256: vex_printf("%%%sDV%d", maybe_v, regNo); return;
default: vpanic("ppHReg");
}
}
Modified: trunk/priv/host_amd64_defs.h (+15 -20)
===================================================================
--- trunk/priv/host_amd64_defs.h 2012-05-27 14:50:42 +01:00 (rev 2354)
+++ trunk/priv/host_amd64_defs.h 2012-05-27 17:18:13 +01:00 (rev 2355)
@@ -82,12 +82,7 @@
extern HReg hregAMD64_XMM11 ( void );
extern HReg hregAMD64_XMM12 ( void );
-extern HReg hregAMD64_YMM2 ( void );
-extern HReg hregAMD64_YMM13 ( void );
-extern HReg hregAMD64_YMM14 ( void );
-extern HReg hregAMD64_YMM15 ( void );
-
/* --------- Condition codes, AMD encoding. --------- */
typedef
@@ -400,9 +395,9 @@
Ain_SseReRg, /* SSE binary general reg-reg, Re, Rg */
Ain_SseCMov, /* SSE conditional move */
Ain_SseShuf, /* SSE2 shuffle (pshufd) */
- Ain_AvxLdSt, /* AVX load/store 256 bits,
- no alignment constraints */
- Ain_AvxReRg, /* AVX binary general reg-reg, Re, Rg */
+ //uu Ain_AvxLdSt, /* AVX load/store 256 bits,
+ //uu no alignment constraints */
+ //uu Ain_AvxReRg, /* AVX binary general reg-reg, Re, Rg */
Ain_EvCheck, /* Event check */
Ain_ProfInc /* 64-bit profile counter increment */
}
@@ -668,17 +663,17 @@
HReg src;
HReg dst;
} SseShuf;
+ //uu struct {
+ //uu Bool isLoad;
+ //uu HReg reg;
+ //uu AMD64AMode* addr;
+ //uu } AvxLdSt;
+ //uu struct {
+ //uu AMD64SseOp op;
+ //uu HReg src;
+ //uu HReg dst;
+ //uu } AvxReRg;
struct {
- Bool isLoad;
- HReg reg;
- AMD64AMode* addr;
- } AvxLdSt;
- struct {
- AMD64SseOp op;
- HReg src;
- HReg dst;
- } AvxReRg;
- struct {
AMD64AMode* amCounter;
AMD64AMode* amFailAddr;
} EvCheck;
@@ -740,8 +735,8 @@
extern AMD64Instr* AMD64Instr_SseReRg ( AMD64SseOp, HReg, HReg );
extern AMD64Instr* AMD64Instr_SseCMov ( AMD64CondCode, HReg src, HReg dst );
extern AMD64Instr* AMD64Instr_SseShuf ( Int order, HReg src, HReg dst );
-extern AMD64Instr* AMD64Instr_AvxLdSt ( Bool isLoad, HReg, AMD64AMode* );
-extern AMD64Instr* AMD64Instr_AvxReRg ( AMD64SseOp, HReg, HReg );
+//uu extern AMD64Instr* AMD64Instr_AvxLdSt ( Bool isLoad, HReg, AMD64AMode* );
+//uu extern AMD64Instr* AMD64Instr_AvxReRg ( AMD64SseOp, HReg, HReg );
extern AMD64Instr* AMD64Instr_EvCheck ( AMD64AMode* amCounter,
AMD64AMode* amFailAddr );
extern AMD64Instr* AMD64Instr_ProfInc ( void );
Modified: trunk/priv/host_amd64_defs.c (+166 -183)
===================================================================
--- trunk/priv/host_amd64_defs.c 2012-05-27 14:50:42 +01:00 (rev 2354)
+++ trunk/priv/host_amd64_defs.c 2012-05-27 17:18:13 +01:00 (rev 2355)
@@ -72,11 +72,6 @@
vassert(r >= 0 && r < 16);
vex_printf("%%xmm%d", r);
return;
- case HRcVec256:
- r = hregNumber(reg);
- vassert(r >= 0 && r < 16);
- vex_printf("%%ymm%d", r);
- return;
default:
vpanic("ppHRegAMD64");
}
@@ -136,12 +131,7 @@
HReg hregAMD64_XMM11 ( void ) { return mkHReg(11, HRcVec128, False); }
HReg hregAMD64_XMM12 ( void ) { return mkHReg(12, HRcVec128, False); }
-HReg hregAMD64_YMM2 ( void ) { return mkHReg( 2, HRcVec256, False); }
-HReg hregAMD64_YMM13 ( void ) { return mkHReg(13, HRcVec256, False); }
-HReg hregAMD64_YMM14 ( void ) { return mkHReg(14, HRcVec256, False); }
-HReg hregAMD64_YMM15 ( void ) { return mkHReg(15, HRcVec256, False); }
-
void getAllocableRegs_AMD64 ( Int* nregs, HReg** arr )
{
#if 0
@@ -986,23 +976,23 @@
vassert(order >= 0 && order <= 0xFF);
return i;
}
-AMD64Instr* AMD64Instr_AvxLdSt ( Bool isLoad,
- HReg reg, AMD64AMode* addr ) {
- AMD64Instr* i = LibVEX_Alloc(sizeof(AMD64Instr));
- i->tag = Ain_AvxLdSt;
- i->Ain.AvxLdSt.isLoad = isLoad;
- i->Ain.AvxLdSt.reg = reg;
- i->Ain.AvxLdSt.addr = addr;
- return i;
-}
-AMD64Instr* AMD64Instr_AvxReRg ( AMD64SseOp op, HReg re, HReg rg ) {
- AMD64Instr* i = LibVEX_Alloc(sizeof(AMD64Instr));
- i->tag = Ain_AvxReRg;
- i->Ain.AvxReRg.op = op;
- i->Ain.AvxReRg.src = re;
- i->Ain.AvxReRg.dst = rg;
- return i;
-}
+//uu AMD64Instr* AMD64Instr_AvxLdSt ( Bool isLoad,
+//uu HReg reg, AMD64AMode* addr ) {
+//uu AMD64Instr* i = LibVEX_Alloc(sizeof(AMD64Instr));
+//uu i->tag = Ain_AvxLdSt;
+//uu i->Ain.AvxLdSt.isLoad = isLoad;
+//uu i->Ain.AvxLdSt.reg = reg;
+//uu i->Ain.AvxLdSt.addr = addr;
+//uu return i;
+//uu }
+//uu AMD64Instr* AMD64Instr_AvxReRg ( AMD64SseOp op, HReg re, HReg rg ) {
+//uu AMD64Instr* i = LibVEX_Alloc(sizeof(AMD64Instr));
+//uu i->tag = Ain_AvxReRg;
+//uu i->Ain.AvxReRg.op = op;
+//uu i->Ain.AvxReRg.src = re;
+//uu i->Ain.AvxReRg.dst = rg;
+//uu return i;
+//uu }
AMD64Instr* AMD64Instr_EvCheck ( AMD64AMode* amCounter,
AMD64AMode* amFailAddr ) {
AMD64Instr* i = LibVEX_Alloc(sizeof(AMD64Instr));
@@ -1298,25 +1288,24 @@
vex_printf(",");
ppHRegAMD64(i->Ain.SseShuf.dst);
return;
-
- case Ain_AvxLdSt:
- vex_printf("vmovups ");
- if (i->Ain.AvxLdSt.isLoad) {
- ppAMD64AMode(i->Ain.AvxLdSt.addr);
- vex_printf(",");
- ppHRegAMD64(i->Ain.AvxLdSt.reg);
- } else {
- ppHRegAMD64(i->Ain.AvxLdSt.reg);
- vex_printf(",");
- ppAMD64AMode(i->Ain.AvxLdSt.addr);
- }
- return;
- case Ain_AvxReRg:
- vex_printf("v%s ", showAMD64SseOp(i->Ain.SseReRg.op));
- ppHRegAMD64(i->Ain.AvxReRg.src);
- vex_printf(",");
- ppHRegAMD64(i->Ain.AvxReRg.dst);
- return;
+ //uu case Ain_AvxLdSt:
+ //uu vex_printf("vmovups ");
+ //uu if (i->Ain.AvxLdSt.isLoad) {
+ //uu ppAMD64AMode(i->Ain.AvxLdSt.addr);
+ //uu vex_printf(",");
+ //uu ppHRegAMD64(i->Ain.AvxLdSt.reg);
+ //uu } else {
+ //uu ppHRegAMD64(i->Ain.AvxLdSt.reg);
+ //uu vex_printf(",");
+ //uu ppAMD64AMode(i->Ain.AvxLdSt.addr);
+ //uu }
+ //uu return;
+ //uu case Ain_AvxReRg:
+ //uu vex_printf("v%s ", showAMD64SseOp(i->Ain.SseReRg.op));
+ //uu ppHRegAMD64(i->Ain.AvxReRg.src);
+ //uu vex_printf(",");
+ //uu ppHRegAMD64(i->Ain.AvxReRg.dst);
+ //uu return;
case Ain_EvCheck:
vex_printf("(evCheck) decl ");
ppAMD64AMode(i->Ain.EvCheck.amCounter);
@@ -1402,7 +1391,7 @@
/* First off, claim it trashes all the caller-saved regs
which fall within the register allocator's jurisdiction.
These I believe to be: rax rcx rdx rsi rdi r8 r9 r10 r11
- and all the xmm/ymm registers.
+ and all the xmm registers.
*/
addHRegUse(u, HRmWrite, hregAMD64_RAX());
addHRegUse(u, HRmWrite, hregAMD64_RCX());
@@ -1425,10 +1414,6 @@
addHRegUse(u, HRmWrite, hregAMD64_XMM10());
addHRegUse(u, HRmWrite, hregAMD64_XMM11());
addHRegUse(u, HRmWrite, hregAMD64_XMM12());
- addHRegUse(u, HRmWrite, hregAMD64_YMM2());
- addHRegUse(u, HRmWrite, hregAMD64_YMM13());
- addHRegUse(u, HRmWrite, hregAMD64_YMM14());
- addHRegUse(u, HRmWrite, hregAMD64_YMM15());
/* Now we have to state any parameter-carrying registers
which might be read. This depends on the regparmness. */
@@ -1609,24 +1594,24 @@
addHRegUse(u, HRmRead, i->Ain.SseShuf.src);
addHRegUse(u, HRmWrite, i->Ain.SseShuf.dst);
return;
- case Ain_AvxLdSt:
- addRegUsage_AMD64AMode(u, i->Ain.AvxLdSt.addr);
- addHRegUse(u, i->Ain.AvxLdSt.isLoad ? HRmWrite : HRmRead,
- i->Ain.AvxLdSt.reg);
- return;
- case Ain_AvxReRg:
- if ( (i->Ain.AvxReRg.op == Asse_XOR
- || i->Ain.AvxReRg.op == Asse_CMPEQ32)
- && i->Ain.AvxReRg.src == i->Ain.AvxReRg.dst) {
- /* See comments on the case for Ain_SseReRg. */
- addHRegUse(u, HRmWrite, i->Ain.AvxReRg.dst);
- } else {
- addHRegUse(u, HRmRead, i->Ain.AvxReRg.src);
- addHRegUse(u, i->Ain.AvxReRg.op == Asse_MOV
- ? HRmWrite : HRmModify,
- i->Ain.AvxReRg.dst);
- }
- return;
+ //uu case Ain_AvxLdSt:
+ //uu addRegUsage_AMD64AMode(u, i->Ain.AvxLdSt.addr);
+ //uu addHRegUse(u, i->Ain.AvxLdSt.isLoad ? HRmWrite : HRmRead,
+ //uu i->Ain.AvxLdSt.reg);
+ //uu return;
+ //uu case Ain_AvxReRg:
+ //uu if ( (i->Ain.AvxReRg.op == Asse_XOR
+ //uu || i->Ain.AvxReRg.op == Asse_CMPEQ32)
+ //uu && i->Ain.AvxReRg.src == i->Ain.AvxReRg.dst) {
+ //uu /* See comments on the case for Ain_SseReRg. */
+ //uu addHRegUse(u, HRmWrite, i->Ain.AvxReRg.dst);
+ //uu } else {
+ //uu addHRegUse(u, HRmRead, i->Ain.AvxReRg.src);
+ //uu addHRegUse(u, i->Ain.AvxReRg.op == Asse_MOV
+ //uu ? HRmWrite : HRmModify,
+ //uu i->Ain.AvxReRg.dst);
+ //uu }
+ //uu return;
case Ain_EvCheck:
/* We expect both amodes only to mention %rbp, so this is in
fact pointless, since %rbp isn't allocatable, but anyway.. */
@@ -1802,14 +1787,14 @@
mapReg(m, &i->Ain.SseShuf.src);
mapReg(m, &i->Ain.SseShuf.dst);
return;
- case Ain_AvxLdSt:
- mapReg(m, &i->Ain.AvxLdSt.reg);
- mapRegs_AMD64AMode(m, i->Ain.AvxLdSt.addr);
- break;
- case Ain_AvxReRg:
- mapReg(m, &i->Ain.AvxReRg.src);
- mapReg(m, &i->Ain.AvxReRg.dst);
- return;
+ //uu case Ain_AvxLdSt:
+ //uu mapReg(m, &i->Ain.AvxLdSt.reg);
+ //uu mapRegs_AMD64AMode(m, i->Ain.AvxLdSt.addr);
+ //uu break;
+ //uu case Ain_AvxReRg:
+ //uu mapReg(m, &i->Ain.AvxReRg.src);
+ //uu mapReg(m, &i->Ain.AvxReRg.dst);
+ //uu return;
case Ain_EvCheck:
/* We expect both amodes only to mention %rbp, so this is in
fact pointless, since %rbp isn't allocatable, but anyway.. */
@@ -1848,13 +1833,13 @@
*src = i->Ain.SseReRg.src;
*dst = i->Ain.SseReRg.dst;
return True;
- case Ain_AvxReRg:
- /* Moves between AVX regs */
- if (i->Ain.AvxReRg.op != Asse_MOV)
- return False;
- *src = i->Ain.AvxReRg.src;
- *dst = i->Ain.AvxReRg.dst;
- return True;
+ //uu case Ain_AvxReRg:
+ //uu /* Moves between AVX regs */
+ //uu if (i->Ain.AvxReRg.op != Asse_MOV)
+ //uu return False;
+ //uu *src = i->Ain.AvxReRg.src;
+ //uu *dst = i->Ain.AvxReRg.dst;
+ //uu return True;
default:
return False;
}
@@ -1882,9 +1867,6 @@
case HRcVec128:
*i1 = AMD64Instr_SseLdSt ( False/*store*/, 16, rreg, am );
return;
- case HRcVec256:
- *i1 = AMD64Instr_AvxLdSt ( False/*store*/, rreg, am );
- return;
default:
ppHRegClass(hregClass(rreg));
vpanic("genSpill_AMD64: unimplemented regclass");
@@ -1907,9 +1889,6 @@
case HRcVec128:
*i1 = AMD64Instr_SseLdSt ( True/*load*/, 16, rreg, am );
return;
- case HRcVec256:
- *i1 = AMD64Instr_AvxLdSt ( True/*load*/, rreg, am );
- return;
default:
ppHRegClass(hregClass(rreg));
vpanic("genReload_AMD64: unimplemented regclass");
@@ -1967,16 +1946,16 @@
return mkHReg(n, HRcInt64, False);
}
-/* Ditto for ymm regs. */
-static UInt dvreg2ireg ( HReg r )
-{
- UInt n;
- vassert(hregClass(r) == HRcVec256);
- vassert(!hregIsVirtual(r));
- n = hregNumber(r);
- vassert(n <= 15);
- return mkHReg(n, HRcInt64, False);
-}
+//uu /* Ditto for ymm regs. */
+//uu static UInt dvreg2ireg ( HReg r )
+//uu {
+//uu UInt n;
+//uu vassert(hregClass(r) == HRcVec256);
+//uu vassert(!hregIsVirtual(r));
+//uu n = hregNumber(r);
+//uu vassert(n <= 15);
+//uu return mkHReg(n, HRcInt64, False);
+//uu }
static UChar mkModRegRM ( UChar mod, UChar reg, UChar regmem )
{
@@ -2180,83 +2159,87 @@
}
-/* Assemble a 2 or 3 byte VEX prefix from parts. rexR, rexX, rexB and
- notVvvvv need to be not-ed before packing. mmmmm, rexW, L and pp go
- in verbatim. There's no range checking on the bits. */
-static UInt packVexPrefix ( UInt rexR, UInt rexX, UInt rexB,
- UInt mmmmm, UInt rexW, UInt notVvvv,
- UInt L, UInt pp )
-{
- UChar byte0 = 0;
- UChar byte1 = 0;
- UChar byte2 = 0;
- if (rexX == 0 && rexB == 0 && mmmmm == 1 && rexW == 0) {
- /* 2 byte encoding is possible. */
- byte0 = 0xC5;
- byte1 = ((rexR ^ 1) << 7) | ((notVvvv ^ 0xF) << 3)
- | (L << 2) | pp;
- } else {
- /* 3 byte encoding is needed. */
- byte0 = 0xC4;
- byte1 = ((rexR ^ 1) << 7) | ((rexX ^ 1) << 6)
- | ((rexB ^ 1) << 5) | mmmmm;
- byte2 = (rexW << 7) | ((notVvvv ^ 0xF) << 3) | (L << 2) | pp;
- }
- return (((UInt)byte2) << 16) | (((UInt)byte1) << 8) | ((UInt)byte0);
-}
+//uu /* May 2012: this VEX prefix stuff is currently unused, but has
+//uu verified correct (I reckon). Certainly it has been known to
+//uu produce correct VEX prefixes during testing. */
+//uu
+//uu /* Assemble a 2 or 3 byte VEX prefix from parts. rexR, rexX, rexB and
+//uu notVvvvv need to be not-ed before packing. mmmmm, rexW, L and pp go
+//uu in verbatim. There's no range checking on the bits. */
+//uu static UInt packVexPrefix ( UInt rexR, UInt rexX, UInt rexB,
+//uu UInt mmmmm, UInt rexW, UInt notVvvv,
+//uu UInt L, UInt pp )
+//uu {
+//uu UChar byte0 = 0;
+//uu UChar byte1 = 0;
+//uu UChar byte2 = 0;
+//uu if (rexX == 0 && rexB == 0 && mmmmm == 1 && rexW == 0) {
+//uu /* 2 byte encoding is possible. */
+//uu byte0 = 0xC5;
+//uu byte1 = ((rexR ^ 1) << 7) | ((notVvvv ^ 0xF) << 3)
+//uu | (L << 2) | pp;
+//uu } else {
+//uu /* 3 byte encoding is needed. */
+//uu byte0 = 0xC4;
+//uu byte1 = ((rexR ^ 1) << 7) | ((rexX ^ 1) << 6)
+//uu | ((rexB ^ 1) << 5) | mmmmm;
+//uu byte2 = (rexW << 7) | ((notVvvv ^ 0xF) << 3) | (L << 2) | pp;
+//uu }
+//uu return (((UInt)byte2) << 16) | (((UInt)byte1) << 8) | ((UInt)byte0);
+//uu }
+//uu
+//uu /* Make up a VEX prefix for a (greg,amode) pair. First byte in bits
+//uu 7:0 of result, second in 15:8, third (for a 3 byte prefix) in
+//uu 23:16. Has m-mmmm set to indicate a prefix of 0F, pp set to
+//uu indicate no SIMD prefix, W=0 (ignore), L=1 (size=256), and
+//uu vvvv=1111 (unused 3rd reg). */
+//uu static UInt vexAMode_M ( HReg greg, AMD64AMode* am )
+//uu {
+//uu UChar L = 1; /* size = 256 */
+//uu UChar pp = 0; /* no SIMD prefix */
+//uu UChar mmmmm = 1; /* 0F */
+//uu UChar notVvvv = 0; /* unused */
+//uu UChar rexW = 0;
+//uu UChar rexR = 0;
+//uu UChar rexX = 0;
+//uu UChar rexB = 0;
+//uu /* Same logic as in rexAMode_M. */
+//uu if (am->tag == Aam_IR) {
+//uu rexR = iregBit3(greg);
+//uu rexX = 0; /* not relevant */
+//uu rexB = iregBit3(am->Aam.IR.reg);
+//uu }
+//uu else if (am->tag == Aam_IRRS) {
+//uu rexR = iregBit3(greg);
+//uu rexX = iregBit3(am->Aam.IRRS.index);
+//uu rexB = iregBit3(am->Aam.IRRS.base);
+//uu } else {
+//uu vassert(0);
+//uu }
+//uu return packVexPrefix( rexR, rexX, rexB, mmmmm, rexW, notVvvv, L, pp );
+//uu }
+//uu
+//uu static UChar* emitVexPrefix ( UChar* p, UInt vex )
+//uu {
+//uu switch (vex & 0xFF) {
+//uu case 0xC5:
+//uu *p++ = 0xC5;
+//uu *p++ = (vex >> 8) & 0xFF;
+//uu vassert(0 == (vex >> 16));
+//uu break;
+//uu case 0xC4:
+//uu *p++ = 0xC4;
+//uu *p++ = (vex >> 8) & 0xFF;
+//uu *p++ = (vex >> 16) & 0xFF;
+//uu vassert(0 == (vex >> 24));
+//uu break;
+//uu default:
+//uu vassert(0);
+//uu }
+//uu return p;
+//uu }
-/* Make up a VEX prefix for a (greg,amode) pair. First byte in bits
- 7:0 of result, second in 15:8, third (for a 3 byte prefix) in
- 23:16. Has m-mmmm set to indicate a prefix of 0F, pp set to
- indicate no SIMD prefix, W=0 (ignore), L=1 (size=256), and
- vvvv=1111 (unused 3rd reg). */
-static UInt vexAMode_M ( HReg greg, AMD64AMode* am )
-{
- UChar L = 1; /* size = 256 */
- UChar pp = 0; /* no SIMD prefix */
- UChar mmmmm = 1; /* 0F */
- UChar notVvvv = 0; /* unused */
- UChar rexW = 0;
- UChar rexR = 0;
- UChar rexX = 0;
- UChar rexB = 0;
- /* Same logic as in rexAMode_M. */
- if (am->tag == Aam_IR) {
- rexR = iregBit3(greg);
- rexX = 0; /* not relevant */
- rexB = iregBit3(am->Aam.IR.reg);
- }
- else if (am->tag == Aam_IRRS) {
- rexR = iregBit3(greg);
- rexX = iregBit3(am->Aam.IRRS.index);
- rexB = iregBit3(am->Aam.IRRS.base);
- } else {
- vassert(0);
- }
- return packVexPrefix( rexR, rexX, rexB, mmmmm, rexW, notVvvv, L, pp );
-}
-static UChar* emitVexPrefix ( UChar* p, UInt vex )
-{
- switch (vex & 0xFF) {
- case 0xC5:
- *p++ = 0xC5;
- *p++ = (vex >> 8) & 0xFF;
- vassert(0 == (vex >> 16));
- break;
- case 0xC4:
- *p++ = 0xC4;
- *p++ = (vex >> 8) & 0xFF;
- *p++ = (vex >> 16) & 0xFF;
- vassert(0 == (vex >> 24));
- break;
- default:
- vassert(0);
- }
- return p;
-}
-
-
/* Emit ffree %st(N) */
static UChar* do_ffree_st ( UChar* p, Int n )
{
@@ -3432,14 +3415,14 @@
*p++ = (UChar)(i->Ain.SseShuf.order);
goto done;
- case Ain_AvxLdSt: {
- UInt vex = vexAMode_M( dvreg2ireg(i->Ain.AvxLdSt.reg),
- i->Ain.AvxLdSt.addr );
- p = emitVexPrefix(p, vex);
- *p++ = toUChar(i->Ain.AvxLdSt.isLoad ? 0x10 : 0x11);
- p = doAMode_M(p, dvreg2ireg(i->Ain.AvxLdSt.reg), i->Ain.AvxLdSt.addr);
- goto done;
- }
+ //uu case Ain_AvxLdSt: {
+ //uu UInt vex = vexAMode_M( dvreg2ireg(i->Ain.AvxLdSt.reg),
+ //uu i->Ain.AvxLdSt.addr );
+ //uu p = emitVexPrefix(p, vex);
+ //uu *p++ = toUChar(i->Ain.AvxLdSt.isLoad ? 0x10 : 0x11);
+ //uu p = doAMode_M(p, dvreg2ireg(i->Ain.AvxLdSt.reg), i->Ain.AvxLdSt.addr);
+ //uu goto done;
+ //uu }
case Ain_EvCheck: {
/* We generate:
|
|
From: <sv...@va...> - 2012-05-27 13:53:06
|
sewardj 2012-05-27 14:52:54 +0100 (Sun, 27 May 2012)
New Revision: 12588
Log:
Add more test cases for VCMPSS, and reenable disabled tests for VCMPSD
and VEXTRACTF128, now that the implementation has been fixed. Current
status that all so-far implemented AVX instructions are tested by this
file, and none have any detectable failures.
Modified files:
trunk/none/tests/amd64/avx-1.c
Modified: trunk/none/tests/amd64/avx-1.c (+58 -6)
===================================================================
--- trunk/none/tests/amd64/avx-1.c 2012-05-27 09:26:49 +01:00 (rev 12587)
+++ trunk/none/tests/amd64/avx-1.c 2012-05-27 14:52:54 +01:00 (rev 12588)
@@ -508,10 +508,50 @@
"vcmpss $0, %%xmm6, %%xmm8, %%xmm7",
"vcmpss $0, (%%rax), %%xmm8, %%xmm7")
+GEN_test_RandM(VCMPSS_128_0x1,
+ "vcmpss $1, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $1, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCMPSS_128_0x2,
+ "vcmpss $2, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $2, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCMPSS_128_0x3,
+ "vcmpss $3, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $3, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCMPSS_128_0x4,
+ "vcmpss $4, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $4, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCMPSS_128_0x5,
+ "vcmpss $5, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $5, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCMPSS_128_0x6,
+ "vcmpss $6, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $6, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCMPSS_128_0x7,
+ "vcmpss $7, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $7, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCMPSS_128_0xA,
+ "vcmpss $0xA, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $0xA, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCMPSS_128_0xC,
+ "vcmpss $0xC, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $0xC, (%%rax), %%xmm8, %%xmm7")
+
GEN_test_RandM(VCMPSS_128_0xD,
- "vcmpss $0xd, %%xmm6, %%xmm8, %%xmm7",
- "vcmpss $0xd, (%%rax), %%xmm8, %%xmm7")
+ "vcmpss $0xD, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $0xD, (%%rax), %%xmm8, %%xmm7")
+GEN_test_RandM(VCMPSS_128_0xE,
+ "vcmpss $0xE, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $0xE, (%%rax), %%xmm8, %%xmm7")
+
// AFAICS this is a E-to-G form insn, but the assembler on Ubuntu 11.10
// refuses to accept the memory case. Hence test only the register case.
// "none/tests/amd64/avx-1.c:527: Error: unsupported syntax for `vcvtpd2ps'"
@@ -633,11 +673,23 @@
test_VPEXTRD_128_0x0();
test_VINSERTF128_0x0();
test_VINSERTF128_0x1();
- //test_VEXTRACTF128_0x0(); // FIXME
- //test_VEXTRACTF128_0x1(); // FIXME
+ test_VEXTRACTF128_0x0();
+ test_VEXTRACTF128_0x1();
test_VCVTPD2PS_128(); // see comment on the test
+ /* Test all CMPSS variants; this code is tricky. */
test_VCMPSS_128_0x0();
- // test_VCMPSS_128_0xD(); FIXME
+ test_VCMPSS_128_0x1();
+ test_VCMPSS_128_0x2();
+ test_VCMPSS_128_0x3();
+ test_VCMPSS_128_0x4();
+ test_VCMPSS_128_0x5();
+ test_VCMPSS_128_0x6();
+ test_VCMPSS_128_0x7();
+ test_VCMPSS_128_0xA();
+ /* no 0xB case yet observed */
+ test_VCMPSS_128_0xC();
+ test_VCMPSS_128_0xD();
+ test_VCMPSS_128_0xE();
test_VMOVDDUP_XMMorMEM64_to_XMM();
test_VMOVD_IREGorMEM32_to_XMM();
test_VMOVQ_XMM_MEM64();
@@ -719,7 +771,7 @@
test_VANDNPS_128();
test_VORPS_128();
test_VSQRTSD_128();
- // test_VCMPSD_128_0xD(); FIXME
+ test_VCMPSD_128_0xD();
test_VCMPSD_128_0x0();
test_VPSHUFB_128();
test_VCVTTSD2SI_32();
|
|
From: <sv...@va...> - 2012-05-27 13:50:52
|
sewardj 2012-05-27 14:50:42 +0100 (Sun, 27 May 2012)
New Revision: 2354
Log:
Fix the behaviour of VEXTRACTF128, VCMPSD and VCMPSS, all of which were
identified as incorrectly implemented by avx-1.c.
Modified files:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c (+62 -22)
===================================================================
--- trunk/priv/guest_amd64_toIR.c 2012-05-27 09:25:42 +01:00 (rev 2353)
+++ trunk/priv/guest_amd64_toIR.c 2012-05-27 14:50:42 +01:00 (rev 2354)
@@ -8559,6 +8559,8 @@
case 0xC: XXX(False, Iop_CmpEQ32Fx4, True); break; // NEQ_OQ
case 0xD: XXX(True, Iop_CmpLE32Fx4, False); break; // GE_OS
case 0xE: XXX(True, Iop_CmpLT32Fx4, False); break; // GT_OS
+ /* Don't forget to add test cases to VCMPSS_128_<imm8> in
+ avx-1.c if new cases turn up. */
default: break;
}
# undef XXX
@@ -19612,6 +19614,7 @@
Prefix pfx, Long delta,
HChar* opname, Bool all_lanes, Int sz )
{
+ vassert(sz == 4 || sz == 8);
Long deltaIN = delta;
HChar dis_buf[50];
Int alen;
@@ -19622,18 +19625,18 @@
Bool postNot = False;
IRTemp plain = newTemp(Ity_V128);
UChar rm = getUChar(delta);
- UShort mask = 0;
- vassert(sz == 4 || sz == 8);
- UInt rG = gregOfRexRM(pfx, rm);
- UInt rV = getVexNvvvv(pfx);
- IRExpr *argL = NULL, *argR = NULL;
+ UInt rG = gregOfRexRM(pfx, rm);
+ UInt rV = getVexNvvvv(pfx);
+ IRTemp argL = newTemp(Ity_V128);
+ IRTemp argR = newTemp(Ity_V128);
+
+ assign(argL, getXMMReg(rV));
if (epartIsReg(rm)) {
imm8 = getUChar(delta+1);
Bool ok = findSSECmpOp(&preSwap, &op, &postNot, imm8, all_lanes, sz);
if (!ok) return deltaIN; /* FAIL */
UInt rE = eregOfRexRM(pfx,rm);
- argL = getXMMReg(rV);
- argR = getXMMReg(rE);
+ assign(argR, getXMMReg(rE));
delta += 1+1;
DIP("%s $%d,%s,%s,%s\n",
opname, (Int)imm8,
@@ -19643,31 +19646,68 @@
imm8 = getUChar(delta+alen);
Bool ok = findSSECmpOp(&preSwap, &op, &postNot, imm8, all_lanes, sz);
if (!ok) return deltaIN; /* FAIL */
- argL = getXMMReg(rV);
- argR = all_lanes ? loadLE(Ity_V128, mkexpr(addr))
+ assign(argR,
+ all_lanes ? loadLE(Ity_V128, mkexpr(addr))
: sz == 8 ? unop( Iop_64UtoV128, loadLE(Ity_I64, mkexpr(addr)))
- : /*sz==4*/ unop( Iop_32UtoV128, loadLE(Ity_I32, mkexpr(addr)));
+ : /*sz==4*/ unop( Iop_32UtoV128, loadLE(Ity_I32, mkexpr(addr))));
delta += alen+1;
DIP("%s $%d,%s,%s,%s\n",
opname, (Int)imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG));
}
- assign(plain,
- preSwap ? binop(op, argR, argL) : binop(op, argL, argR));
+ assign(plain, preSwap ? binop(op, mkexpr(argR), mkexpr(argL))
+ : binop(op, mkexpr(argL), mkexpr(argR)));
- /* FIXME AVX: in the case where we need a preSwap == True and
- !all_lanes, I am not sure if this is correct or not. */
-
- if (postNot && all_lanes) {
- putYMMRegLoAndZU( rG, unop(Iop_NotV128, mkexpr(plain)) );
+ if (all_lanes) {
+ /* This is simple: just invert the result, if necessary, and
+ have done. */
+ if (postNot) {
+ putYMMRegLoAndZU( rG, unop(Iop_NotV128, mkexpr(plain)) );
+ } else {
+ putYMMRegLoAndZU( rG, mkexpr(plain) );
+ }
}
else
- if (postNot && !all_lanes) {
- mask = toUShort(sz==4 ? 0x000F : 0x00FF);
- putYMMRegLoAndZU( rG, binop(Iop_XorV128, mkexpr(plain), mkV128(mask)) );
+ if (!preSwap) {
+ /* More complex. It's a one-lane-only, hence need to possibly
+ invert only that one lane. But at least the other lanes are
+ correctly "in" the result, having been copied from the left
+ operand (argL). */
+ if (postNot) {
+ IRExpr* mask = mkV128(sz==4 ? 0x000F : 0x00FF);
+ putYMMRegLoAndZU( rG, binop(Iop_XorV128, mkexpr(plain),
+ mask) );
+ } else {
+ putYMMRegLoAndZU( rG, mkexpr(plain) );
+ }
}
else {
- putYMMRegLoAndZU( rG, mkexpr(plain) );
+ /* This is the most complex case. One-lane-only, but the args
+ were swapped. So we have to possibly invert the bottom lane,
+ and (definitely) we have to copy the upper lane(s) from argL
+ since, due to the swapping, what's currently there is from
+ argR, which is not correct. */
+ IRTemp res = newTemp(Ity_V128);
+ IRTemp mask = newTemp(Ity_V128);
+ IRTemp notMask = newTemp(Ity_V128);
+ assign(mask, mkV128(sz==4 ? 0x000F : 0x00FF));
+ assign(notMask, mkV128(sz==4 ? 0xFFF0 : 0xFF00));
+ if (postNot) {
+ assign(res,
+ binop(Iop_OrV128,
+ binop(Iop_AndV128,
+ unop(Iop_NotV128, mkexpr(plain)),
+ mkexpr(mask)),
+ binop(Iop_AndV128, mkexpr(argL), mkexpr(notMask))));
+ } else {
+ assign(res,
+ binop(Iop_OrV128,
+ binop(Iop_AndV128,
+ mkexpr(plain),
+ mkexpr(mask)),
+ binop(Iop_AndV128, mkexpr(argL), mkexpr(notMask))));
+ }
+ putYMMRegLoAndZU( rG, mkexpr(res) );
}
*uses_vvvv = True;
@@ -21314,7 +21354,7 @@
delta += 1;
ib = getUChar(delta);
assign(t128, getYMMRegLane128(rS, ib & 1));
- putYMMRegLane128(rD, 0, mkexpr(t128));
+ putYMMRegLoAndZU(rD, mkexpr(t128));
DIP("vextractf128 $%u,%s,%s\n",
ib, nameXMMReg(rS), nameYMMReg(rD));
} else {
|
|
From: <sv...@va...> - 2012-05-27 08:26:57
|
sewardj 2012-05-27 09:26:49 +0100 (Sun, 27 May 2012)
New Revision: 12587
Log:
Add tests for all AVX instructions implemented so far.
Modified files:
trunk/none/tests/amd64/avx-1.c
Modified: trunk/none/tests/amd64/avx-1.c (+229 -82)
===================================================================
--- trunk/none/tests/amd64/avx-1.c 2012-05-27 00:08:41 -23:00 (rev 12586)
+++ trunk/none/tests/amd64/avx-1.c 2012-05-27 09:26:49 +01:00 (rev 12587)
@@ -1,87 +1,14 @@
- /* VMOVSD m64, xmm1 = VEX.LIG.F2.0F.WIG 10 /r */
- /* VMOVSS m32, xmm1 = VEX.LIG.F3.0F.WIG 10 /r */
- /* VMOVSD xmm1, m64 = VEX.LIG.F2.0F.WIG 11 /r */
- /* VMOVSS xmm1, m64 = VEX.LIG.F3.0F.WIG 11 /r */
- /* VMOVUPD xmm1, xmm2/m128 = VEX.128.66.0F.WIG 11 /r */
- /* VMOVAPD xmm2/m128, xmm1 = VEX.128.66.0F.WIG 28 /r */
- /* VMOVAPD ymm2/m256, ymm1 = VEX.256.66.0F.WIG 28 /r */
- /* VMOVAPS xmm2/m128, xmm1 = VEX.128.0F.WIG 28 /r */
- /* VMOVAPS xmm1, xmm2/m128 = VEX.128.0F.WIG 29 /r */
- /* VMOVAPD xmm1, xmm2/m128 = VEX.128.66.0F.WIG 29 /r */
-/* . VCVTSI2SD r/m32, xmm2, xmm1 = VEX.NDS.LIG.F2.0F.W0 2A /r */
-/* . VCVTSI2SD r/m64, xmm2, xmm1 = VEX.NDS.LIG.F2.0F.W1 2A /r */
-/* . VCVTSI2SS r/m64, xmm2, xmm1 = VEX.NDS.LIG.F3.0F.W1 2A /r */
-/* . VCVTTSD2SI xmm1/m64, r32 = VEX.LIG.F2.0F.W0 2C /r */
-/* VCVTTSD2SI xmm1/m64, r64 = VEX.LIG.F2.0F.W1 2C /r */
-/* VUCOMISD xmm2/m64, xmm1 = VEX.LIG.66.0F.WIG 2E /r */
-/* VUCOMISS xmm2/m32, xmm1 = VEX.LIG.0F.WIG 2E /r */
-/* . VSQRTSD xmm3/m64(E), xmm2(V), xmm1(G) = VEX.NDS.LIG.F2.0F.WIG 51 /r */
-/* VANDPD r/m, rV, r ::: r = rV & r/m (MVR format) */
-/* VANDNPD r/m, rV, r ::: r = (not rV) & r/m (MVR format) */
-/* VORPD r/m, rV, r ::: r = rV ^ r/m (MVR format) */
-/* VXORPD r/m, rV, r ::: r = rV ^ r/m (MVR format) */
-/* VXORPS r/m, rV, r ::: r = rV ^ r/m (MVR format) */
-/* VADDSD xmm3/m64, xmm2, xmm1 = VEX.NDS.LIG.F0.0F.WIG 58 /r */
-/* VMULSD xmm3/m64, xmm2, xmm1 = VEX.NDS.LIG.F0.0F.WIG 59 /r */
-/* VCVTPS2PD xmm2/m64, xmm1 = VEX.128.0F.WIG 5A /r */
-/* VSUBSD xmm3/m64, xmm2, xmm1 = VEX.NDS.LIG.F2.0F.WIG 5C /r */
-/* VMINSD xmm3/m64, xmm2, xmm1 = VEX.NDS.LIG.F2.0F.WIG 5D /r */
-/* VDIVSD xmm3/m64, xmm2, xmm1 = VEX.NDS.LIG.F2.0F.WIG 5E /r */
-/* VMAXSD xmm3/m64, xmm2, xmm1 = VEX.NDS.LIG.F2.0F.WIG 5F /r */
+/* The following tests appear not to be accepted by the assembler.
+ VCVTPD2PS_128 (memory form)
- /* VMOVD r32/m32, xmm1 = VEX.128.66.0F.W0 6E */
- /* VMOVDQA ymm2/m256, ymm1 = VEX.256.66.0F.WIG 6F */
- /* VMOVDQA xmm2/m128, xmm1 = VEX.128.66.0F.WIG 6F */
- /* VMOVDQU xmm2/m128, xmm1 = VEX.128.F3.0F.WIG 6F */
+ The following tests currently fail and are disabled:
+ VCMPSD_128_0xD
+ VCMPSS_128_0xD
+ VEXTRACTF128_0x0
+ VEXTRACTF128_0x1
+*/
-/* VPSHUFD imm8, xmm2/m128, xmm1 = VEX.128.66.0F.WIG 70 /r ib */
-/* . VPSLLD imm8, xmm2, xmm1 = VEX.128.66.0F.WIG 72 /6 ib */
-/* . VPSRLDQ VEX.NDD.128.66.0F.WIG 73 /3 ib */
-/* VPCMPEQD r/m, rV, r ::: r = rV `eq-by-32s` r/m (MVR format) */
-
- /* VMOVDQA ymm1, ymm2/m256 = VEX.256.66.0F.WIG 7F */
- /* VMOVDQA xmm1, xmm2/m128 = VEX.128.66.0F.WIG 7F */
- /* VMOVDQU xmm1, xmm2/m128 = VEX.128.F3.0F.WIG 7F */
-
-/* . VCMPSD xmm3/m64(E=argL), xmm2(V=argR), xmm1(G) */
-/* . VPOR = VEX.NDS.128.66.0F.WIG EB /r */
-/* . VPXOR = VEX.NDS.128.66.0F.WIG EF /r */
-/* . VPSUBB = VEX.NDS.128.66.0F.WIG EF /r */
-/* . VPSUBD = VEX.NDS.128.66.0F.WIG FE /r */
-/* . VPADDD = VEX.NDS.128.66.0F.WIG FE /r */
-/* . VPSHUFB r/m, rV, r ::: r = shuf(rV, r/m) (MVR format) */
-/* . VPMOVZXBW = VEX.128.66.0F38.WIG 30 /r */
-/* . VPMOVZXWD = VEX.128.66.0F38.WIG 33 /r */
-/* . VPMINSD = VEX.NDS.128.66.0F38.WIG 39 /r */
-/* . VPMAXSD = VEX.NDS.128.66.0F38.WIG 3D /r */
- /* VPEXTRD imm8, r32/m32, xmm2 */
- /* VINSERTF128 r/m, rV, rD */
- /* VEXTRACTF128 rS, r/m */
-
-/* . VPBLENDVB xmmG, xmmE/memE, xmmV, xmmIS4 */
- /* VEX.128.F2.0F.WIG /12 r = MOVDDUP xmm2/m64, xmm1 */
- /* VCVTPD2PS xmm2/m128, xmm1 = VEX.128.66.0F.WIG 5A /r */
-/* . VMULSS xmm3/m32, xmm2, xmm1 = VEX.NDS.LIG.F3.0F.WIG 59 /r */
-/* . VSUBSS xmm3/m32, xmm2, xmm1 = VEX.NDS.LIG.F3.0F.WIG 5C /r */
-/* . VADDSS xmm3/m32, xmm2, xmm1 = VEX.NDS.LIG.F3.0F.WIG 58 /r */
-/* . VDIVSS xmm3/m32, xmm2, xmm1 = VEX.NDS.LIG.F3.0F.WIG 5E /r */
-/* . VUNPCKLPS xmm3/m128, xmm2, xmm1 = VEX.NDS.128.0F.WIG 14 /r */
-/* . VCVTSI2SS r/m32, xmm2, xmm1 = VEX.NDS.LIG.F3.0F.W0 2A /r */
-/* . VANDPS = VEX.NDS.128.0F.WIG 54 /r */
-/* . VMINSS xmm3/m32, xmm2, xmm1 = VEX.NDS.LIG.F3.0F.WIG 5D /r */
-/* . VMAXSS xmm3/m32, xmm2, xmm1 = VEX.NDS.LIG.F3.0F.WIG 5F /r */
-
-/* really needs testing -- Intel docs don't make sense */
-/* VMOVQ xmm2/m64, xmm1 = VEX.128.F3.0F.W0 */
-
-/* really needs testing -- Intel docs don't make sense */
-/* of the form vmovq %xmm0,-0x8(%rsp) */
-
-/* VCMPSS xmm3/m32(E=argL), xmm2(V=argR), xmm1(G) */
-/* . VANDNPS = VEX.NDS.128.0F.WIG 55 /r */
-/* . VORPS = VEX.NDS.128.0F.WIG 56 /r */
-
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
@@ -255,6 +182,10 @@
"vcvttsd2si %%xmm8, %%r14d",
"vcvttsd2si (%%rax), %%r14d")
+GEN_test_RandM(VCVTTSD2SI_64,
+ "vcvttsd2si %%xmm8, %%r14",
+ "vcvttsd2si (%%rax), %%r14")
+
GEN_test_RandM(VPSHUFB_128,
"vpshufb %%xmm6, %%xmm8, %%xmm7",
"vpshufb (%%rax), %%xmm8, %%xmm7")
@@ -503,6 +434,177 @@
"vpunpckldq %%xmm6, %%xmm8, %%xmm7",
"vpunpckldq (%%rax), %%xmm8, %%xmm7")
+GEN_test_RandM(VINSERTPS_0x39_128,
+ "vinsertps $0x39, %%xmm6, %%xmm8, %%xmm7",
+ "vinsertps $0xC6, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_Monly(VMOVSD_M64_XMM, "vmovsd (%%rax), %%xmm8")
+
+GEN_test_Monly(VMOVSS_M64_XMM, "vmovss (%%rax), %%xmm8")
+
+GEN_test_Monly(VMOVSD_XMM_M64, "vmovsd %%xmm8, (%%rax)")
+
+GEN_test_Monly(VMOVSS_XMM_M32, "vmovss %%xmm8, (%%rax)")
+
+GEN_test_RandM(VMOVUPD_GtoE_128,
+ "vmovupd %%xmm9, %%xmm6",
+ "vmovupd %%xmm7, (%%rax)")
+
+GEN_test_RandM(VMOVAPD_EtoG_128,
+ "vmovapd %%xmm6, %%xmm8",
+ "vmovapd (%%rax), %%xmm9")
+
+GEN_test_RandM(VMOVAPD_EtoG_256,
+ "vmovapd %%ymm6, %%ymm8",
+ "vmovapd (%%rax), %%ymm9")
+
+GEN_test_RandM(VMOVAPS_EtoG_128,
+ "vmovaps %%xmm6, %%xmm8",
+ "vmovaps (%%rax), %%xmm9")
+
+GEN_test_RandM(VMOVAPS_GtoE_128,
+ "vmovaps %%xmm9, %%xmm6",
+ "vmovaps %%xmm7, (%%rax)")
+
+GEN_test_RandM(VMOVAPD_GtoE_128,
+ "vmovapd %%xmm9, %%xmm6",
+ "vmovapd %%xmm7, (%%rax)")
+
+GEN_test_RandM(VMOVDQU_EtoG_128,
+ "vmovdqu %%xmm6, %%xmm8",
+ "vmovdqu (%%rax), %%xmm9")
+
+GEN_test_RandM(VMOVDQA_EtoG_128,
+ "vmovdqa %%xmm6, %%xmm8",
+ "vmovdqa (%%rax), %%xmm9")
+
+GEN_test_RandM(VMOVDQA_EtoG_256,
+ "vmovdqa %%ymm6, %%ymm8",
+ "vmovdqa (%%rax), %%ymm9")
+
+GEN_test_RandM(VMOVDQU_GtoE_128,
+ "vmovdqu %%xmm9, %%xmm6",
+ "vmovdqu %%xmm7, (%%rax)")
+
+GEN_test_RandM(VMOVDQA_GtoE_128,
+ "vmovdqa %%xmm9, %%xmm6",
+ "vmovdqa %%xmm7, (%%rax)")
+
+GEN_test_RandM(VMOVDQA_GtoE_256,
+ "vmovdqa %%ymm9, %%ymm6",
+ "vmovdqa %%ymm7, (%%rax)")
+
+GEN_test_Monly(VMOVQ_XMM_MEM64, "vmovq %%xmm8, (%%rax)")
+
+GEN_test_RandM(VMOVD_IREGorMEM32_to_XMM,
+ "vmovd %%r14d, %%xmm7",
+ "vmovd (%%rax), %%xmm9")
+
+GEN_test_RandM(VMOVDDUP_XMMorMEM64_to_XMM,
+ "vmovddup %%xmm8, %%xmm7",
+ "vmovddup (%%rax), %%xmm9")
+
+GEN_test_RandM(VCMPSS_128_0x0,
+ "vcmpss $0, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $0, (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCMPSS_128_0xD,
+ "vcmpss $0xd, %%xmm6, %%xmm8, %%xmm7",
+ "vcmpss $0xd, (%%rax), %%xmm8, %%xmm7")
+
+// AFAICS this is a E-to-G form insn, but the assembler on Ubuntu 11.10
+// refuses to accept the memory case. Hence test only the register case.
+// "none/tests/amd64/avx-1.c:527: Error: unsupported syntax for `vcvtpd2ps'"
+//GEN_test_RandM(VCVTPD2PS_128,
+// "vcvtpd2ps %%xmm8, %%xmm7",
+// "vcvtpd2ps (%%rax), %%xmm9")
+GEN_test_Ronly(VCVTPD2PS_128,
+ "vcvtpd2ps %%xmm8, %%xmm7")
+
+GEN_test_RandM(VEXTRACTF128_0x0,
+ "vextractf128 $0x0, %%ymm7, %%xmm9",
+ "vextractf128 $0x0, %%ymm7, (%%rax)")
+
+GEN_test_RandM(VEXTRACTF128_0x1,
+ "vextractf128 $0x1, %%ymm7, %%xmm9",
+ "vextractf128 $0x1, %%ymm7, (%%rax)")
+
+GEN_test_RandM(VINSERTF128_0x0,
+ "vinsertf128 $0x0, %%xmm9, %%ymm7, %%ymm8",
+ "vinsertf128 $0x0, (%%rax), %%ymm7, %%ymm8")
+
+GEN_test_RandM(VINSERTF128_0x1,
+ "vinsertf128 $0x1, %%xmm9, %%ymm7, %%ymm8",
+ "vinsertf128 $0x1, (%%rax), %%ymm7, %%ymm8")
+
+GEN_test_RandM(VPEXTRD_128_0x0,
+ "vpextrd $0x0, %%xmm7, %%r14d",
+ "vpextrd $0x0, %%xmm7, (%%rax)")
+
+GEN_test_RandM(VPEXTRD_128_0x3,
+ "vpextrd $0x3, %%xmm7, %%r14d",
+ "vpextrd $0x3, %%xmm7, (%%rax)")
+
+GEN_test_RandM(VPCMPEQD_128,
+ "vpcmpeqd %%xmm6, %%xmm8, %%xmm7",
+ "vpcmpeqd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VPSHUFD_0x39_128,
+ "vpshufd $0x39, %%xmm9, %%xmm8",
+ "vpshufd $0xC6, (%%rax), %%xmm7")
+
+GEN_test_RandM(VMAXSD_128,
+ "vmaxsd %%xmm6, %%xmm8, %%xmm7",
+ "vmaxsd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VDIVSD_128,
+ "vdivsd %%xmm6, %%xmm8, %%xmm7",
+ "vdivsd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VMINSD_128,
+ "vminsd %%xmm6, %%xmm8, %%xmm7",
+ "vminsd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VSUBSD_128,
+ "vsubsd %%xmm6, %%xmm8, %%xmm7",
+ "vsubsd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VADDSD_128,
+ "vaddsd %%xmm6, %%xmm8, %%xmm7",
+ "vaddsd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VMULSD_128,
+ "vmulsd %%xmm6, %%xmm8, %%xmm7",
+ "vmulsd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VXORPS_128,
+ "vxorps %%xmm6, %%xmm8, %%xmm7",
+ "vxorps (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VXORPD_128,
+ "vxorpd %%xmm6, %%xmm8, %%xmm7",
+ "vxorpd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VORPD_128,
+ "vorpd %%xmm6, %%xmm8, %%xmm7",
+ "vorpd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VANDNPD_128,
+ "vandnpd %%xmm6, %%xmm8, %%xmm7",
+ "vandnpd (%%rax), %%xmm8, %%xmm7")
+
+GEN_test_RandM(VCVTPS2PD_128,
+ "vcvtps2pd %%xmm6, %%xmm8",
+ "vcvtps2pd (%%rax), %%xmm8")
+
+GEN_test_RandM(VUCOMISD_128,
+ "vucomisd %%xmm6, %%xmm8; pushfq; popq %%r14; andq $0x8D5, %%r14",
+ "vucomisd (%%rax), %%xmm8; pushfq; popq %%r14; andq $0x8D5, %%r14")
+
+GEN_test_RandM(VUCOMISS_128,
+ "vucomiss %%xmm6, %%xmm8; pushfq; popq %%r14; andq $0x8D5, %%r14",
+ "vucomiss (%%rax), %%xmm8; pushfq; popq %%r14; andq $0x8D5, %%r14")
+
/* Comment duplicated above, for convenient reference:
Allowed operands in test insns:
Reg form: %ymm6, %ymm7, %ymm8, %ymm9 and %r14.
@@ -512,6 +614,50 @@
int main ( void )
{
+ test_VUCOMISS_128();
+ test_VUCOMISD_128();
+ test_VCVTPS2PD_128();
+ test_VANDNPD_128();
+ test_VORPD_128();
+ test_VXORPD_128();
+ test_VXORPS_128();
+ test_VMULSD_128();
+ test_VADDSD_128();
+ test_VMINSD_128();
+ test_VSUBSD_128();
+ test_VDIVSD_128();
+ test_VMAXSD_128();
+ test_VPSHUFD_0x39_128();
+ test_VPCMPEQD_128();
+ test_VPEXTRD_128_0x3();
+ test_VPEXTRD_128_0x0();
+ test_VINSERTF128_0x0();
+ test_VINSERTF128_0x1();
+ //test_VEXTRACTF128_0x0(); // FIXME
+ //test_VEXTRACTF128_0x1(); // FIXME
+ test_VCVTPD2PS_128(); // see comment on the test
+ test_VCMPSS_128_0x0();
+ // test_VCMPSS_128_0xD(); FIXME
+ test_VMOVDDUP_XMMorMEM64_to_XMM();
+ test_VMOVD_IREGorMEM32_to_XMM();
+ test_VMOVQ_XMM_MEM64();
+ test_VMOVDQA_GtoE_256();
+ test_VMOVDQA_GtoE_128();
+ test_VMOVDQU_GtoE_128();
+ test_VMOVDQA_EtoG_256();
+ test_VMOVDQA_EtoG_128();
+ test_VMOVDQU_EtoG_128();
+ test_VMOVAPD_GtoE_128();
+ test_VMOVAPS_GtoE_128();
+ test_VMOVAPS_EtoG_128();
+ test_VMOVAPD_EtoG_256();
+ test_VMOVAPD_EtoG_128();
+ test_VMOVUPD_GtoE_128();
+ test_VMOVSS_XMM_M32();
+ test_VMOVSD_XMM_M64();
+ test_VMOVSS_M64_XMM();
+ test_VMOVSD_M64_XMM();
+ test_VINSERTPS_0x39_128();
test_VPUNPCKLDQ_128();
test_VPACKSSDW_128();
test_VPADDW_128();
@@ -573,10 +719,11 @@
test_VANDNPS_128();
test_VORPS_128();
test_VSQRTSD_128();
- // test_VCMPSD_128_0xD(); BORKED
+ // test_VCMPSD_128_0xD(); FIXME
test_VCMPSD_128_0x0();
test_VPSHUFB_128();
test_VCVTTSD2SI_32();
+ test_VCVTTSD2SI_64();
test_VCVTSI2SS_64();
test_VCVTSI2SD_64();
test_VCVTSI2SD_32();
|
|
From: <sv...@va...> - 2012-05-27 08:25:57
|
sewardj 2012-05-27 09:25:42 +0100 (Sun, 27 May 2012)
New Revision: 2353
Log:
Implement VINSERTPS imm8, xmm3/m32, xmm2, xmm1
Fix VCVTPD2PS
Modified files:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c (+86 -69)
===================================================================
--- trunk/priv/guest_amd64_toIR.c 2012-05-26 02:59:21 +01:00 (rev 2352)
+++ trunk/priv/guest_amd64_toIR.c 2012-05-27 09:25:42 +01:00 (rev 2353)
@@ -15726,6 +15726,28 @@
}
+static IRTemp math_INSERTPS ( IRTemp dstV, IRTemp toInsertD, UInt imm8 )
+{
+ const IRTemp inval = IRTemp_INVALID;
+ IRTemp dstDs[4] = { inval, inval, inval, inval };
+ breakup128to32s( dstV, &dstDs[3], &dstDs[2], &dstDs[1], &dstDs[0] );
+
+ vassert(imm8 <= 255);
+ dstDs[(imm8 >> 4) & 3] = toInsertD; /* "imm8_count_d" */
+
+ UInt imm8_zmask = (imm8 & 15);
+ IRTemp zero_32 = newTemp(Ity_I32);
+ assign( zero_32, mkU32(0) );
+ IRTemp resV = newTemp(Ity_V128);
+ assign( resV, mk128from32s(
+ ((imm8_zmask & 8) == 8) ? zero_32 : dstDs[3],
+ ((imm8_zmask & 4) == 4) ? zero_32 : dstDs[2],
+ ((imm8_zmask & 2) == 2) ? zero_32 : dstDs[1],
+ ((imm8_zmask & 1) == 1) ? zero_32 : dstDs[0]) );
+ return resV;
+}
+
+
__attribute__((noinline))
static
Long dis_ESC_0F3A__SSE4 ( Bool* decode_OK,
@@ -16342,85 +16364,40 @@
break;
case 0x21:
- /* 66 0F 3A 21 /r ib = INSERTPS xmm1, xmm2/m32, imm8
+ /* 66 0F 3A 21 /r ib = INSERTPS imm8, xmm2/m32, xmm1
Insert Packed Single Precision Floating-Point Value (XMM) */
if (have66noF2noF3(pfx) && sz == 2) {
+ UInt imm8;
+ IRTemp d2ins = newTemp(Ity_I32); /* comes from the E part */
+ const IRTemp inval = IRTemp_INVALID;
- Int imm8;
- Int imm8_count_s;
- Int imm8_count_d;
- Int imm8_zmask;
- IRTemp dstVec = newTemp(Ity_V128);
- IRTemp srcDWord = newTemp(Ity_I32);
-
modrm = getUChar(delta);
+ UInt rG = gregOfRexRM(pfx, modrm);
- assign( dstVec, getXMMReg( gregOfRexRM(pfx, modrm) ) );
-
if ( epartIsReg( modrm ) ) {
- IRTemp src_vec = newTemp(Ity_V128);
- assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
-
- IRTemp src_lane_0 = IRTemp_INVALID;
- IRTemp src_lane_1 = IRTemp_INVALID;
- IRTemp src_lane_2 = IRTemp_INVALID;
- IRTemp src_lane_3 = IRTemp_INVALID;
- breakup128to32s( src_vec,
- &src_lane_3, &src_lane_2, &src_lane_1, &src_lane_0 );
-
- imm8 = (Int)getUChar(delta+1);
- imm8_count_s = ((imm8 >> 6) & 3);
- switch( imm8_count_s ) {
- case 0: assign( srcDWord, mkexpr(src_lane_0) ); break;
- case 1: assign( srcDWord, mkexpr(src_lane_1) ); break;
- case 2: assign( srcDWord, mkexpr(src_lane_2) ); break;
- case 3: assign( srcDWord, mkexpr(src_lane_3) ); break;
- default: vassert(0); break;
- }
-
+ UInt rE = eregOfRexRM(pfx, modrm);
+ IRTemp vE = newTemp(Ity_V128);
+ assign( vE, getXMMReg(rE) );
+ IRTemp dsE[4] = { inval, inval, inval, inval };
+ breakup128to32s( vE, &dsE[3], &dsE[2], &dsE[1], &dsE[0] );
+ imm8 = getUChar(delta+1);
+ d2ins = dsE[(imm8 >> 6) & 3]; /* "imm8_count_s" */
delta += 1+1;
- DIP( "insertps $%d, %s,%s\n", imm8,
- nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ) );
+ DIP( "insertps $%u, %s,%s\n",
+ imm8, nameXMMReg(rE), nameXMMReg(rG) );
} else {
- addr = disAMode( &alen, vbi, pfx, delta, dis_buf,
- 1/* const imm8 is 1 byte after the amode */ );
- assign( srcDWord, loadLE( Ity_I32, mkexpr(addr) ) );
- imm8 = (Int)getUChar(delta+alen);
- imm8_count_s = 0;
+ addr = disAMode( &alen, vbi, pfx, delta, dis_buf, 1 );
+ assign( d2ins, loadLE( Ity_I32, mkexpr(addr) ) );
+ imm8 = getUChar(delta+alen);
delta += alen+1;
- DIP( "insertps $%d, %s,%s\n",
- imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
+ DIP( "insertps $%u, %s,%s\n",
+ imm8, dis_buf, nameXMMReg(rG) );
}
- IRTemp dst_lane_0 = IRTemp_INVALID;
- IRTemp dst_lane_1 = IRTemp_INVALID;
- IRTemp dst_lane_2 = IRTemp_INVALID;
- IRTemp dst_lane_3 = IRTemp_INVALID;
- breakup128to32s( dstVec,
- &dst_lane_3, &dst_lane_2, &dst_lane_1, &dst_lane_0 );
+ IRTemp vG = newTemp(Ity_V128);
+ assign( vG, getXMMReg(rG) );
- imm8_count_d = ((imm8 >> 4) & 3);
- switch( imm8_count_d ) {
- case 0: dst_lane_0 = srcDWord; break;
- case 1: dst_lane_1 = srcDWord; break;
- case 2: dst_lane_2 = srcDWord; break;
- case 3: dst_lane_3 = srcDWord; break;
- default: vassert(0); break;
- }
-
- imm8_zmask = (imm8 & 15);
- IRTemp zero_32 = newTemp(Ity_I32);
- assign( zero_32, mkU32(0) );
-
- IRExpr* ire_vec_128 = mk128from32s(
- ((imm8_zmask & 8) == 8) ? zero_32 : dst_lane_3,
- ((imm8_zmask & 4) == 4) ? zero_32 : dst_lane_2,
- ((imm8_zmask & 2) == 2) ? zero_32 : dst_lane_1,
- ((imm8_zmask & 1) == 1) ? zero_32 : dst_lane_0);
-
- putXMMReg( gregOfRexRM(pfx, modrm), ire_vec_128 );
-
+ putXMMReg( rG, mkexpr(math_INSERTPS( vG, d2ins, imm8 )) );
goto decode_success;
}
break;
@@ -20325,7 +20302,7 @@
}
/* VCVTPD2PS xmm2/m128, xmm1 = VEX.128.66.0F.WIG 5A /r */
if (have66noF2noF3(pfx) && 0==getVexL(pfx)/*128*/) {
- delta = dis_CVTPD2PS( vbi, pfx, delta, False/*!isAvx*/ );
+ delta = dis_CVTPD2PS( vbi, pfx, delta, True/*isAvx*/ );
goto decode_success;
}
/* VCVTSD2SS xmm3/m64, xmm2, xmm1 = VEX.NDS.LIG.F2.0F.WIG 5A /r */
@@ -21323,7 +21300,7 @@
break;
case 0x19:
- /* VEXTRACTF128 rS, r/m
+ /* VEXTRACTF128 $lane_no, rS, r/m
::: r/m:V128 = a lane of rS:V256 (RM format) */
/* VEXTRACTF128 = VEX.256.66.0F3A.W0 19 /r ib */
if (have66noF2noF3(pfx)
@@ -21355,6 +21332,46 @@
}
break;
+ case 0x21:
+ /* VINSERTPS imm8, xmm3/m32, xmm2, xmm1
+ = VEX.NDS.128.66.0F3A.WIG 21 /r ib */
+ if (have66noF2noF3(pfx) && 0==getVexL(pfx)/*128*/) {
+ UChar modrm = getUChar(delta);
+ UInt rG = gregOfRexRM(pfx, modrm);
+ UInt rV = getVexNvvvv(pfx);
+ UInt imm8;
+ IRTemp d2ins = newTemp(Ity_I32); /* comes from the E part */
+ const IRTemp inval = IRTemp_INVALID;
+
+ if ( epartIsReg( modrm ) ) {
+ UInt rE = eregOfRexRM(pfx, modrm);
+ IRTemp vE = newTemp(Ity_V128);
+ assign( vE, getXMMReg(rE) );
+ IRTemp dsE[4] = { inval, inval, inval, inval };
+ breakup128to32s( vE, &dsE[3], &dsE[2], &dsE[1], &dsE[0] );
+ imm8 = getUChar(delta+1);
+ d2ins = dsE[(imm8 >> 6) & 3]; /* "imm8_count_s" */
+ delta += 1+1;
+ DIP( "insertps $%u, %s,%s\n",
+ imm8, nameXMMReg(rE), nameXMMReg(rG) );
+ } else {
+ addr = disAMode( &alen, vbi, pfx, delta, dis_buf, 1 );
+ assign( d2ins, loadLE( Ity_I32, mkexpr(addr) ) );
+ imm8 = getUChar(delta+alen);
+ delta += alen+1;
+ DIP( "insertps $%u, %s,%s\n",
+ imm8, dis_buf, nameXMMReg(rG) );
+ }
+
+ IRTemp vV = newTemp(Ity_V128);
+ assign( vV, getXMMReg(rV) );
+
+ putYMMRegLoAndZU( rG, mkexpr(math_INSERTPS( vV, d2ins, imm8 )) );
+ *uses_vvvv = True;
+ goto decode_success;
+ }
+ break;
+
case 0x22:
/* VPINSRD r32/m32, xmm2, xmm1 = VEX.NDS.128.66.0F3A.W0 22 /r ib */
if (have66noF2noF3(pfx)
|
|
From: Philippe W. <phi...@sk...> - 2012-05-27 07:38:38
|
On Sat, 2012-05-26 at 22:32 -0400, Florian Krohm wrote: > > syswrap-s390x-linux.c seems to have the VKI_CLONE_SETTLS part wrong, > > but VKI_CLONE_PARENT_SETTID and VKI_CLONE_CHILD_SETTID correct. > > > > I remember that Christian looked at that testcase failure and r12033 > fixed it. I have little wisdom in these syscalls, so I'm copying > Christian. Would be good to get this nailed. Yes, r12033 introduced the fix for the *SETTID cases. >From what I understand, a similar problem can also happen with SETTLS, which I believe is not fixed in s390x. So, the summary on linux is: x86 and amd64 have *SETTID and SETTLS ok. s390x has *SETTID ok. ppc32/ppc64/arm have none of these ok. Darwin: no idea. Philippe |
|
From: Philippe W. <phi...@sk...> - 2012-05-27 07:27:15
|
On Sun, 2012-05-27 at 01:41 +0200, Dan Shelton wrote: > Which fd numbers does valgrind typically use on Linux for --log-file? Valgrind (V) is using several fd nrs, e.g; for --log-file, for pipes used as semaphore, for Valgrind gdbserver FIFOs/mmap-ed file, ... All these fds are taken from a range which only V should see. For this, V is maintaining two "fd" limits: extern Int VG_(fd_soft_limit); extern Int VG_(fd_hard_limit); Before executing the guest code, it will setup these two limits. The range >= fd_hard_limit will be used by V and is not supposed to be used by the guest code. V ensures this by checking e.g. setrlimit and making it fail if it sets the limit above the V range. Similarly, V will ensure getrlimit indicates only FD below the above limits can be used. On the platform I am testing, V reserves a range of 10 FDs (>= 1014). (these 10 is a compilation constant. Might be that on other platforms, this range is starting from another value). Philippe |
|
From: Rich C. <rc...@wi...> - 2012-05-27 04:21:58
|
valgrind revision: 12586 VEX revision: 2352 C compiler: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646) Assembler: C library: unknown uname -mrs: Darwin 10.8.0 i386 Vendor version: unknown Nightly build on macbook ( Darwin 10.8.0 i386 ) Started at 2012-05-26 23:05:00 CDT Ended at 2012-05-26 23:21:50 CDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo dsymutil many-xpts dsymutil sarp dsymutil tinycc Making check in gdbserver_tests make clean_after_fork fork_chain passsigalrm sleepers main_pic t watchpoints gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT clean_after_fork.o -MD -MP -MF .deps/clean_after_fork.Tpo -c -o clean_after_fork.o clean_after_fork.c mv -f .deps/clean_after_fork.Tpo .deps/clean_after_fork.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o clean_after_fork clean_after_fork.o -lpthread gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT fork_chain.o -MD -MP -MF .deps/fork_chain.Tpo -c -o fork_chain.o fork_chain.c mv -f .deps/fork_chain.Tpo .deps/fork_chain.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o fork_chain fork_chain.o -lpthread gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT passsigalrm.o -MD -MP -MF .deps/passsigalrm.Tpo -c -o passsigalrm.o passsigalrm.c passsigalrm.c: In function 'main': passsigalrm.c:54: error: 'SIGRTMIN' undeclared (first use in this function) passsigalrm.c:54: error: (Each undeclared identifier is reported only once passsigalrm.c:54: error: for each function it appears in.) make[3]: *** [passsigalrm.o] Error 1 make[2]: *** [check-am] Error 2 make[1]: *** [check-recursive] Error 1 make: *** [check] Error 2 Congratulations, all tests passed! |
|
From: Philippe W. <phi...@sk...> - 2012-05-27 03:51:00
|
valgrind revision: 12586 VEX revision: 2352 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-05-26 20:00:12 PDT Ended at 2012-05-26 20:49:56 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 == 524 tests, 15 stderr failures, 8 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/ppc32/power_ISA2_05 (stdout) memcheck/tests/ppc32/power_ISA2_05 (stderr) memcheck/tests/ppc64/power_ISA2_05 (stdout) memcheck/tests/ppc64/power_ISA2_05 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/empty-exe (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/shell (stderr) none/tests/shell_valid1 (stderr) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) none/tests/shell_zerolength (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |
|
From: Tom H. <to...@co...> - 2012-05-27 03:25:33
|
valgrind revision: 12586 VEX revision: 2352 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.3.4-5.fc17.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2012-05-27 03:42:33 BST Ended at 2012-05-27 04:25:15 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 == 600 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-05-27 03:24:57
|
valgrind revision: 12586
VEX revision: 2352
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-05-26 22:20:19 EDT
Ended at 2012-05-26 23:24:46 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
== 500 tests, 8 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/manuel3 (stderr)
memcheck/tests/partial_load_ok (stderr)
memcheck/tests/varinfo6 (stderr)
helgrind/tests/tc09_bad_unlock (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc20_verifywrap (stderr)
drd/tests/tc04_free_lock (stderr)
drd/tests/tc09_bad_unlock (stderr)
=================================================
./valgrind-new/drd/tests/tc04_free_lock.stderr.diff-ppc
=================================================
--- tc04_free_lock.stderr.exp-ppc 2012-05-26 23:09:45.000000000 -0400
+++ tc04_free_lock.stderr.out 2012-05-26 23:24:04.000000000 -0400
@@ -7,28 +7,22 @@
by 0x........: main (tc04_free_lock.c:20)
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:26)
+ at 0x........: bar (tc04_free_lock.c:40)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: bar (tc04_free_lock.c:38)
by 0x........: main (tc04_free_lock.c:26)
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: foo (tc04_free_lock.c:47)
- by 0x........: main (tc04_free_lock.c:27)
+ at 0x........: foo (tc04_free_lock.c:49)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: foo (tc04_free_lock.c:46)
by 0x........: main (tc04_free_lock.c:27)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:28)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
- by 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:28)
-
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/tc04_free_lock.stderr.diff-x86
=================================================
--- tc04_free_lock.stderr.exp-x86 2012-05-26 23:09:45.000000000 -0400
+++ tc04_free_lock.stderr.out 2012-05-26 23:24:04.000000000 -0400
@@ -8,7 +8,8 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: bar (tc04_free_lock.c:40)
- by 0x........: main (tc04_free_lock.c:26)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: bar (tc04_free_lock.c:38)
@@ -16,19 +17,12 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: foo (tc04_free_lock.c:49)
- by 0x........: main (tc04_free_lock.c:27)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: foo (tc04_free_lock.c:46)
by 0x........: main (tc04_free_lock.c:27)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: bar (tc04_free_lock.c:40)
- by 0x........: main (tc04_free_lock.c:28)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
- by 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:28)
-
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/tc09_bad_unlock.stderr.diff-glibc2.8
=================================================
--- tc09_bad_unlock.stderr.exp-glibc2.8 2012-05-26 23:09:45.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-05-26 23:24:07.000000000 -0400
@@ -26,7 +26,7 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: (below main)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: (below main)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/tc09_bad_unlock.stderr.diff-ppc
=================================================
--- tc09_bad_unlock.stderr.exp-ppc 2012-05-26 23:09:45.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-05-26 23:24:07.000000000 -0400
@@ -25,8 +25,8 @@
by 0x........: main (tc09_bad_unlock.c:49)
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:49)
+ at 0x........: nearly_main (tc09_bad_unlock.c:45)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:50)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/tc09_bad_unlock.stderr.diff-x86
=================================================
--- tc09_bad_unlock.stderr.exp-x86 2012-05-26 23:09:45.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-05-26 23:24:07.000000000 -0400
@@ -26,7 +26,7 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: main (tc09_bad_unlock.c:49)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: main (tc09_bad_unlock.c:50)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2012-05-26 23:07:34.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-05-26 23:20:21.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-05-26 23:07:34.000000000 -0400
+++ tc18_semabuse.stderr.out 2012-05-26 23:20:29.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-05-26 23:07:34.000000000 -0400
+++ tc20_verifywrap.stderr.out 2012-05-26 23:20:39.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-05-26 23:08:28.000000000 -0400
+++ manuel3.stderr.out 2012-05-26 23:15:26.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-05-26 23:08:28.000000000 -0400
+++ partial_load_ok.stderr.out 2012-05-26 23:15: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-05-26 23:08:28.000000000 -0400
+++ partial_load_ok.stderr.out 2012-05-26 23:15: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-05-26 23:08:28.000000000 -0400
+++ varinfo6.stderr.out 2012-05-26 23:16:52.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-05-26 23:08:28.000000000 -0400
+++ varinfo6.stderr.out 2012-05-26 23:16:52.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/drd/tests/tc04_free_lock.stderr.diff-ppc
=================================================
--- tc04_free_lock.stderr.exp-ppc 2012-05-26 22:49:16.000000000 -0400
+++ tc04_free_lock.stderr.out 2012-05-26 23:06:31.000000000 -0400
@@ -7,28 +7,22 @@
by 0x........: main (tc04_free_lock.c:20)
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:26)
+ at 0x........: bar (tc04_free_lock.c:40)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: bar (tc04_free_lock.c:38)
by 0x........: main (tc04_free_lock.c:26)
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: foo (tc04_free_lock.c:47)
- by 0x........: main (tc04_free_lock.c:27)
+ at 0x........: foo (tc04_free_lock.c:49)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: foo (tc04_free_lock.c:46)
by 0x........: main (tc04_free_lock.c:27)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:28)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
- by 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:28)
-
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/drd/tests/tc04_free_lock.stderr.diff-x86
=================================================
--- tc04_free_lock.stderr.exp-x86 2012-05-26 22:49:16.000000000 -0400
+++ tc04_free_lock.stderr.out 2012-05-26 23:06:31.000000000 -0400
@@ -8,7 +8,8 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: bar (tc04_free_lock.c:40)
- by 0x........: main (tc04_free_lock.c:26)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: bar (tc04_free_lock.c:38)
@@ -16,19 +17,12 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: foo (tc04_free_lock.c:49)
- by 0x........: main (tc04_free_lock.c:27)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: foo (tc04_free_lock.c:46)
by 0x........: main (tc04_free_lock.c:27)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: bar (tc04_free_lock.c:40)
- by 0x........: main (tc04_free_lock.c:28)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
- by 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:28)
-
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/drd/tests/tc09_bad_unlock.stderr.diff-glibc2.8
=================================================
--- tc09_bad_unlock.stderr.exp-glibc2.8 2012-05-26 22:49:16.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-05-26 23:06:35.000000000 -0400
@@ -26,7 +26,7 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: (below main)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: (below main)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/drd/tests/tc09_bad_unlock.stderr.diff-ppc
=================================================
--- tc09_bad_unlock.stderr.exp-ppc 2012-05-26 22:49:16.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-05-26 23:06:35.000000000 -0400
@@ -25,8 +25,8 @@
by 0x........: main (tc09_bad_unlock.c:49)
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:49)
+ at 0x........: nearly_main (tc09_bad_unlock.c:45)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:50)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/drd/tests/tc09_bad_unlock.stderr.diff-x86
=================================================
--- tc09_bad_unlock.stderr.exp-x86 2012-05-26 22:49:16.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-05-26 23:06:35.000000000 -0400
@@ -26,7 +26,7 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: main (tc09_bad_unlock.c:49)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: main (tc09_bad_unlock.c:50)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2012-05-26 22:26:54.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-05-26 23:02:49.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-05-26 22:26:54.000000000 -0400
+++ tc18_semabuse.stderr.out 2012-05-26 23:02:57.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-05-26 22:26:54.000000000 -0400
+++ tc20_verifywrap.stderr.out 2012-05-26 23:03:07.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-05-26 22:35:41.000000000 -0400
+++ manuel3.stderr.out 2012-05-26 22:57:53.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-05-26 22:35:41.000000000 -0400
+++ partial_load_ok.stderr.out 2012-05-26 22:58:24.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-05-26 22:35:41.000000000 -0400
+++ partial_load_ok.stderr.out 2012-05-26 22:58:24.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-05-26 22:35:41.000000000 -0400
+++ varinfo6.stderr.out 2012-05-26 22:59:19.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-05-26 22:35:41.000000000 -0400
+++ varinfo6.stderr.out 2012-05-26 22:59:19.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)
|
|
From: Tom H. <to...@co...> - 2012-05-27 03:22:55
|
valgrind revision: 12586 VEX revision: 2352 C compiler: gcc (GCC) 4.4.5 20101112 (Red Hat 4.4.5-2) Assembler: GNU assembler version 2.20.51.0.2-20.fc13 20091009 C library: GNU C Library stable release version 2.12.2 uname -mrs: Linux 3.3.4-5.fc17.x86_64 x86_64 Vendor version: Fedora release 13 (Goddard) Nightly build on bristol ( x86_64, Fedora 13 ) Started at 2012-05-27 03:21:42 BST Ended at 2012-05-27 04:22:40 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 == 602 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_barrier3 (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 602 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/linux/stack_switch (stderr) helgrind/tests/pth_barrier3 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2012-05-27 04:06:12.716203179 +0100 --- new.short 2012-05-27 04:22:40.664908101 +0100 *************** *** 8,11 **** ! == 602 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! memcheck/tests/linux/stack_switch (stderr) helgrind/tests/pth_barrier3 (stderr) --- 8,10 ---- ! == 602 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_barrier3 (stderr) |
|
From: Tom H. <to...@co...> - 2012-05-27 03:22:26
|
valgrind revision: 12586 VEX revision: 2352 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.3.4-5.fc17.x86_64 x86_64 Vendor version: Fedora release 11 (Leonidas) Nightly build on bristol ( x86_64, Fedora 11 ) Started at 2012-05-27 03:31:16 BST Ended at 2012-05-27 04:22:05 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 == 602 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/long_namespace_xml (stderr) none/tests/amd64/sse4-64 (stdout) ================================================= == 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 == 602 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/linux/stack_switch (stderr) memcheck/tests/long_namespace_xml (stderr) none/tests/amd64/sse4-64 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2012-05-27 04:06:08.028304195 +0100 --- new.short 2012-05-27 04:22:05.656662703 +0100 *************** *** 8,11 **** ! == 602 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! memcheck/tests/linux/stack_switch (stderr) memcheck/tests/long_namespace_xml (stderr) --- 8,10 ---- ! == 602 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/long_namespace_xml (stderr) |
|
From: Tom H. <to...@co...> - 2012-05-27 03:21:07
|
valgrind revision: 12586 VEX revision: 2352 C compiler: gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4) Assembler: GNU assembler version 2.20.51.0.7-8.fc14 20100318 C library: GNU C Library stable release version 2.13 uname -mrs: Linux 3.3.4-5.fc17.x86_64 x86_64 Vendor version: Fedora release 14 (Laughlin) Nightly build on bristol ( x86_64, Fedora 14 ) Started at 2012-05-27 03:11:55 BST Ended at 2012-05-27 04:20:50 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 == 617 tests, 1 stderr failure, 0 stdout failures, 1 stderrB failure, 2 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallWSRU (stderrB) gdbserver_tests/nlcontrolc (stdoutB) gdbserver_tests/nlpasssigalrm (stdoutB) memcheck/tests/origin5-bz2 (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 617 tests, 2 stderr failures, 0 stdout failures, 1 stderrB failure, 2 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallWSRU (stderrB) gdbserver_tests/nlcontrolc (stdoutB) gdbserver_tests/nlpasssigalrm (stdoutB) memcheck/tests/linux/stack_switch (stderr) memcheck/tests/origin5-bz2 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2012-05-27 04:02:42.070742190 +0100 --- new.short 2012-05-27 04:20:50.637279763 +0100 *************** *** 8,10 **** ! == 617 tests, 2 stderr failures, 0 stdout failures, 1 stderrB failure, 2 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallWSRU (stderrB) --- 8,10 ---- ! == 617 tests, 1 stderr failure, 0 stdout failures, 1 stderrB failure, 2 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallWSRU (stderrB) *************** *** 12,14 **** gdbserver_tests/nlpasssigalrm (stdoutB) - memcheck/tests/linux/stack_switch (stderr) memcheck/tests/origin5-bz2 (stderr) --- 12,13 ---- |
|
From: Tom H. <to...@co...> - 2012-05-27 03:20:37
|
valgrind revision: 12586 VEX revision: 2352 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.3.4-5.fc17.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2012-05-27 03:02:59 BST Ended at 2012-05-27 04:20:16 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 == 618 tests, 2 stderr failures, 0 stdout failures, 1 stderrB failure, 2 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallWSRU (stderrB) gdbserver_tests/nlcontrolc (stdoutB) gdbserver_tests/nlpasssigalrm (stdoutB) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/overlap (stderr) |
|
From: Rich C. <rc...@wi...> - 2012-05-27 03:19:08
|
valgrind revision: 12586
VEX revision: 2352
C compiler: gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
Assembler: GNU assembler (GNU Binutils; openSUSE 11.4) 2.21
C library: GNU C Library stable release version 2.11.3 (20110203)
uname -mrs: Linux 2.6.37.6-0.7-desktop x86_64
Vendor version: Welcome to openSUSE 11.4 "Celadon" - Kernel %r (%t).
Nightly build on ultra ( gcc 4.5.1 Linux 2.6.37.6-0.7-desktop x86_64 )
Started at 2012-05-26 21:30:01 CDT
Ended at 2012-05-26 22:18:57 CDT
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
== 610 tests, 1 stderr failure, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcbreak (stderrB)
gdbserver_tests/mcclean_after_fork (stderrB)
gdbserver_tests/mcleak (stderrB)
gdbserver_tests/mcmain_pic (stderrB)
gdbserver_tests/mcvabits (stderrB)
gdbserver_tests/mssnapshot (stderrB)
memcheck/tests/origin5-bz2 (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 610 tests, 2 stderr failures, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcbreak (stderrB)
gdbserver_tests/mcclean_after_fork (stderrB)
gdbserver_tests/mcleak (stderrB)
gdbserver_tests/mcmain_pic (stderrB)
gdbserver_tests/mcvabits (stderrB)
gdbserver_tests/mssnapshot (stderrB)
memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/origin5-bz2 (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Sat May 26 22:04:15 2012
--- new.short Sat May 26 22:18:57 2012
***************
*** 8,10 ****
! == 610 tests, 2 stderr failures, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcbreak (stderrB)
--- 8,10 ----
! == 610 tests, 1 stderr failure, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcbreak (stderrB)
***************
*** 15,17 ****
gdbserver_tests/mssnapshot (stderrB)
- memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/origin5-bz2 (stderr)
--- 15,16 ----
=================================================
./valgrind-new/gdbserver_tests/mcbreak.stderrB.diff
=================================================
--- mcbreak.stderrB.exp 2012-05-26 22:04:58.962617675 -0500
+++ mcbreak.stderrB.out 2012-05-26 22:10:16.437591860 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
vgdb-error value changed from 999999 to 0
n_errs_found 1 n_errs_shown 1 (vgdb-error 0)
vgdb-error value changed from 0 to 0
=================================================
./valgrind-new/gdbserver_tests/mcclean_after_fork.stderrB.diff
=================================================
--- mcclean_after_fork.stderrB.exp 2012-05-26 22:04:58.962617675 -0500
+++ mcclean_after_fork.stderrB.out 2012-05-26 22:10:18.119348044 -0500
@@ -1,4 +1,6 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
monitor command request to kill this process
Remote connection closed
=================================================
./valgrind-new/gdbserver_tests/mcleak.stderrB.diff
=================================================
--- mcleak.stderrB.exp 2012-05-26 22:04:58.959618126 -0500
+++ mcleak.stderrB.out 2012-05-26 22:10:38.369412241 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
10 bytes in 1 blocks are still reachable in loss record ... of ...
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: f (leak-delta.c:14)
=================================================
./valgrind-new/gdbserver_tests/mcmain_pic.stderrB.diff
=================================================
--- mcmain_pic.stderrB.exp 2012-05-26 22:04:58.966617097 -0500
+++ mcmain_pic.stderrB.out 2012-05-26 22:10:39.934185384 -0500
@@ -1,3 +1,5 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
Remote connection closed
=================================================
./valgrind-new/gdbserver_tests/mcvabits.stderrB.diff
=================================================
--- mcvabits.stderrB.exp 2012-05-26 22:04:58.967616953 -0500
+++ mcvabits.stderrB.out 2012-05-26 22:10:44.849472778 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
Address 0x........ len 10 addressable
Address 0x........ is 0 bytes inside data symbol "undefined"
Address 0x........ len 10 defined
=================================================
./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2012-05-26 22:04:58.966617097 -0500
+++ mssnapshot.stderrB.out 2012-05-26 22:10:47.910029065 -0500
@@ -1,5 +1,9 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=92ec8fe859846a62345f74696ab349721415587a"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2012-05-26 22:05:54.722534027 -0500
+++ origin5-bz2.stderr.out 2012-05-26 22:12:09.444208366 -0500
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2012-05-26 22:05:54.706536347 -0500
+++ origin5-bz2.stderr.out 2012-05-26 22:12:09.444208366 -0500
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2012-05-26 22:05:54.651544319 -0500
+++ origin5-bz2.stderr.out 2012-05-26 22:12:09.444208366 -0500
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2012-05-26 22:05:54.680540115 -0500
+++ origin5-bz2.stderr.out 2012-05-26 22:12:09.444208366 -0500
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2012-05-26 22:05:54.693538232 -0500
+++ origin5-bz2.stderr.out 2012-05-26 22:12:09.444208366 -0500
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
=================================================
./valgrind-old/gdbserver_tests/mcbreak.stderrB.diff
=================================================
--- mcbreak.stderrB.exp 2012-05-26 21:36:54.694795739 -0500
+++ mcbreak.stderrB.out 2012-05-26 21:55:43.051206372 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
vgdb-error value changed from 999999 to 0
n_errs_found 1 n_errs_shown 1 (vgdb-error 0)
vgdb-error value changed from 0 to 0
=================================================
./valgrind-old/gdbserver_tests/mcclean_after_fork.stderrB.diff
=================================================
--- mcclean_after_fork.stderrB.exp 2012-05-26 21:36:54.694795739 -0500
+++ mcclean_after_fork.stderrB.out 2012-05-26 21:55:44.720964322 -0500
@@ -1,4 +1,6 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
monitor command request to kill this process
Remote connection closed
=================================================
./valgrind-old/gdbserver_tests/mcleak.stderrB.diff
=================================================
--- mcleak.stderrB.exp 2012-05-26 21:36:54.690796319 -0500
+++ mcleak.stderrB.out 2012-05-26 21:56:03.752205521 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
10 bytes in 1 blocks are still reachable in loss record ... of ...
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: f (leak-delta.c:14)
=================================================
./valgrind-old/gdbserver_tests/mcmain_pic.stderrB.diff
=================================================
--- mcmain_pic.stderrB.exp 2012-05-26 21:36:54.697795304 -0500
+++ mcmain_pic.stderrB.out 2012-05-26 21:56:05.326977239 -0500
@@ -1,3 +1,5 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
Remote connection closed
=================================================
./valgrind-old/gdbserver_tests/mcvabits.stderrB.diff
=================================================
--- mcvabits.stderrB.exp 2012-05-26 21:36:54.698795159 -0500
+++ mcvabits.stderrB.out 2012-05-26 21:56:10.237265434 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
Address 0x........ len 10 addressable
Address 0x........ is 0 bytes inside data symbol "undefined"
Address 0x........ len 10 defined
=================================================
./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2012-05-26 21:36:54.697795304 -0500
+++ mssnapshot.stderrB.out 2012-05-26 21:56:13.372810900 -0500
@@ -1,5 +1,9 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=92ec8fe859846a62345f74696ab349721415587a"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-old/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2012-05-26 21:39:20.104715147 -0500
+++ stack_switch.stderr.out 2012-05-26 21:57:10.968461682 -0500
@@ -0,0 +1,3 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
+
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2012-05-26 21:44:45.686512272 -0500
+++ origin5-bz2.stderr.out 2012-05-26 21:57:33.289225989 -0500
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2012-05-26 21:44:45.670514590 -0500
+++ origin5-bz2.stderr.out 2012-05-26 21:57:33.289225989 -0500
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2012-05-26 21:44:45.615522567 -0500
+++ origin5-bz2.stderr.out 2012-05-26 21:57:33.289225989 -0500
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2012-05-26 21:44:45.644518360 -0500
+++ origin5-bz2.stderr.out 2012-05-26 21:57:33.289225989 -0500
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2012-05-26 21:44:45.656516620 -0500
+++ origin5-bz2.stderr.out 2012-05-26 21:57:33.289225989 -0500
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
|
|
From: Tom H. <to...@co...> - 2012-05-27 03:01:02
|
valgrind revision: 12586 VEX revision: 2352 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.4-5.fc17.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2012-05-27 02:53:49 BST Ended at 2012-05-27 04:00:37 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 == 618 tests, 3 stderr failures, 0 stdout failures, 1 stderrB failure, 2 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallWSRU (stderrB) gdbserver_tests/nlcontrolc (stdoutB) gdbserver_tests/nlpasssigalrm (stdoutB) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/overlap (stderr) memcheck/tests/str_tester (stderr) |