You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
(2) |
2
(7) |
3
(1) |
4
(9) |
5
|
|
6
(7) |
7
(10) |
8
(23) |
9
(19) |
10
(21) |
11
(14) |
12
(15) |
|
13
(11) |
14
(7) |
15
(20) |
16
(21) |
17
(20) |
18
(20) |
19
(19) |
|
20
(24) |
21
(22) |
22
(19) |
23
(17) |
24
(26) |
25
(15) |
26
(16) |
|
27
(8) |
28
(10) |
29
(24) |
30
(21) |
31
(19) |
|
|
|
From: <sv...@va...> - 2013-01-16 22:11:22
|
sewardj 2013-01-16 22:11:13 +0000 (Wed, 16 Jan 2013)
New Revision: 2641
Log:
mips32 equivalent to r2636: fix up the mips32 back end to be in sync
with infrastructural changes w.r.t. conditional dirty helpers that
return values. Does not actually handle such cases since the mips32
front end does not generate them.
Modified files:
branches/COMEM/priv/host_mips_defs.c
branches/COMEM/priv/host_mips_defs.h
branches/COMEM/priv/host_mips_isel.c
Modified: branches/COMEM/priv/host_mips_isel.c (+48 -11)
===================================================================
--- branches/COMEM/priv/host_mips_isel.c 2013-01-16 21:10:01 +00:00 (rev 2640)
+++ branches/COMEM/priv/host_mips_isel.c 2013-01-16 22:11:13 +00:00 (rev 2641)
@@ -362,7 +362,7 @@
call is unconditional. */
static void doHelperCall(ISelEnv * env, Bool passBBP, IRExpr * guard,
- IRCallee * cee, IRExpr ** args)
+ IRCallee * cee, IRExpr ** args, RetLoc rloc)
{
MIPSCondCode cc;
HReg argregs[MIPS_N_REGPARMS];
@@ -526,13 +526,13 @@
/* Finally, the call itself. */
if (mode64)
if (cc == MIPScc_AL) {
- addInstr(env, MIPSInstr_CallAlways(cc, target, argiregs));
+ addInstr(env, MIPSInstr_CallAlways(cc, target, argiregs, rloc));
} else {
- addInstr(env, MIPSInstr_Call(cc, target, argiregs, src));
+ addInstr(env, MIPSInstr_Call(cc, target, argiregs, src, rloc));
} else if (cc == MIPScc_AL) {
- addInstr(env, MIPSInstr_CallAlways(cc, (Addr32) target, argiregs));
+ addInstr(env, MIPSInstr_CallAlways(cc, (Addr32) target, argiregs, rloc));
} else {
- addInstr(env, MIPSInstr_Call(cc, (Addr32) target, argiregs, src));
+ addInstr(env, MIPSInstr_Call(cc, (Addr32) target, argiregs, src, rloc));
}
/* restore GuestStatePointer */
addInstr(env, MIPSInstr_Load(4, GuestStatePointer(mode64),
@@ -1485,13 +1485,26 @@
HReg r_dst = newVRegI(env);
vassert(ty == e->Iex.CCall.retty);
- /* be very restrictive for now. Only 32/64-bit ints allowed
- for args, and 32 bits for return type. */
+ /* be very restrictive for now. Only 32/64-bit ints allowed for
+ args, and 32 bits for return type. Don't forget to change
+ the RetLoc if more return types are allowed in future. */
if (e->Iex.CCall.retty != Ity_I32 && !mode64)
goto irreducible;
+ /* What's the retloc? */
+ RetLoc rloc = RetLocINVALID;
+ if (ty == Ity_I32) {
+ rloc = RetLocInt;
+ }
+ else if (ty == Ity_I64) {
+ rloc = mode64 ? RetLocInt : RetLoc2Int;
+ }
+ else {
+ goto irreducible;
+ }
+
/* Marshal args, do the call, clear stack. */
- doHelperCall(env, False, NULL, e->Iex.CCall.cee, e->Iex.CCall.args);
+ doHelperCall(env, False, NULL, e->Iex.CCall.cee, e->Iex.CCall.args, rloc);
addInstr(env, mk_iMOVds_RR(r_dst, hregMIPS_GPR2(mode64)));
return r_dst;
}
@@ -2895,23 +2908,47 @@
/* --------- Call to DIRTY helper --------- */
case Ist_Dirty: {
- IRType retty;
IRDirty *d = stmt->Ist.Dirty.details;
Bool passBBP = False;
if (d->nFxState == 0)
vassert(!d->needsBBP);
+
passBBP = toBool(d->nFxState > 0 && d->needsBBP);
+ /* Figure out the return type, if any. */
+ IRType retty = Ity_INVALID;
+ if (d->tmp != IRTemp_INVALID)
+ retty = typeOfIRTemp(env->type_env, d->tmp);
+
+ /* Marshal args, do the call, clear stack, set the return
+ value to 0x555..555 if this is a conditional call that
+ returns a value and the call is skipped. We need to set
+ the ret-loc correctly in order to implement the IRDirty
+ semantics that the return value is 0x555..555 if the call
+ doesn't happen. */
+ RetLoc rloc = RetLocINVALID;
+ switch (retty) {
+ case Ity_INVALID: /* function doesn't return anything */
+ rloc = RetLocNone; break;
+ case Ity_I64:
+ rloc = mode64 ? RetLocInt : RetLoc2Int; break;
+ case Ity_I32: case Ity_I16: case Ity_I8:
+ rloc = RetLocInt; break;
+ default:
+ break;
+ }
+ if (rloc == RetLocINVALID)
+ break; /* will go to stmt_fail: */
+
/* Marshal args, do the call, clear stack. */
- doHelperCall(env, passBBP, d->guard, d->cee, d->args);
+ doHelperCall(env, passBBP, d->guard, d->cee, d->args, rloc);
/* Now figure out what to do with the returned value, if any. */
if (d->tmp == IRTemp_INVALID)
/* No return value. Nothing to do. */
return;
- retty = typeOfIRTemp(env->type_env, d->tmp);
if (retty == Ity_I64 && !mode64) {
HReg rHi = newVRegI(env);
HReg rLo = newVRegI(env);
Modified: branches/COMEM/priv/host_mips_defs.h (+3 -2)
===================================================================
--- branches/COMEM/priv/host_mips_defs.h 2013-01-16 21:10:01 +00:00 (rev 2640)
+++ branches/COMEM/priv/host_mips_defs.h 2013-01-16 22:11:13 +00:00 (rev 2641)
@@ -493,6 +493,7 @@
Addr32 target;
UInt argiregs;
HReg src;
+ RetLoc rloc; /* where the return value will be */
} Call;
/* Update the guest EIP value, then exit requesting to chain
to it. May be conditional. Urr, use of Addr32 implicitly
@@ -654,8 +655,8 @@
extern MIPSInstr *MIPSInstr_StoreC(UChar sz, MIPSAMode * dst, HReg src,
Bool mode64);
-extern MIPSInstr *MIPSInstr_Call(MIPSCondCode, Addr32, UInt, HReg);
-extern MIPSInstr *MIPSInstr_CallAlways(MIPSCondCode, Addr32, UInt);
+extern MIPSInstr *MIPSInstr_Call(MIPSCondCode, Addr32, UInt, HReg, RetLoc);
+extern MIPSInstr *MIPSInstr_CallAlways(MIPSCondCode, Addr32, UInt, RetLoc);
extern MIPSInstr *MIPSInstr_XDirect(Addr32 dstGA, MIPSAMode* amPC,
MIPSCondCode cond, Bool toFastEP);
Modified: branches/COMEM/priv/host_mips_defs.c (+19 -2)
===================================================================
--- branches/COMEM/priv/host_mips_defs.c 2013-01-16 21:10:01 +00:00 (rev 2640)
+++ branches/COMEM/priv/host_mips_defs.c 2013-01-16 22:11:13 +00:00 (rev 2641)
@@ -1217,7 +1217,7 @@
}
MIPSInstr *MIPSInstr_Call(MIPSCondCode cond, Addr32 target, UInt argiregs,
- HReg src)
+ HReg src, RetLoc rloc)
{
UInt mask;
MIPSInstr *i = LibVEX_Alloc(sizeof(MIPSInstr));
@@ -1226,13 +1226,16 @@
i->Min.Call.target = target;
i->Min.Call.argiregs = argiregs;
i->Min.Call.src = src;
+ i->Min.Call.rloc = rloc;
/* Only r4 .. r7 inclusive may be used as arg regs. Hence: */
mask = (1 << 4) | (1 << 5) | (1 << 6) | (1 << 7);
vassert(0 == (argiregs & ~mask));
+ vassert(rloc != RetLocINVALID);
return i;
}
-MIPSInstr *MIPSInstr_CallAlways(MIPSCondCode cond, Addr32 target, UInt argiregs)
+MIPSInstr *MIPSInstr_CallAlways(MIPSCondCode cond, Addr32 target, UInt argiregs,
+ RetLoc rloc)
{
UInt mask;
MIPSInstr *i = LibVEX_Alloc(sizeof(MIPSInstr));
@@ -1240,9 +1243,11 @@
i->Min.Call.cond = cond;
i->Min.Call.target = target;
i->Min.Call.argiregs = argiregs;
+ i->Min.Call.rloc = rloc;
/* Only r4 .. r7 inclusive may be used as arg regs. Hence: */
mask = (1 << 4) | (1 << 5) | (1 << 6) | (1 << 7);
vassert(0 == (argiregs & ~mask));
+ vassert(rloc != RetLocINVALID);
return i;
}
@@ -1611,6 +1616,8 @@
vex_printf(",");
}
}
+ vex_printf(",");
+ ppRetLoc(i->Min.Call.rloc);
vex_printf("] }");
break;
}
@@ -3118,6 +3125,16 @@
}
case Min_Call: {
+ if (i->Min.Call.cond != MIPScc_AL && i->Min.Call.rloc != RetLocNone) {
+ /* The call might not happen (it isn't unconditional) and
+ it returns a result. In this case we will need to
+ generate a control flow diamond to put 0x555..555 in
+ the return register(s) in the case where the call
+ doesn't happen. If this ever becomes necessary, maybe
+ copy code from the ARM equivalent. Until that day,
+ just give up. */
+ goto bad;
+ }
MIPSCondCode cond = i->Min.Call.cond;
UInt r_dst = 25; /* using %r25 as address temporary -
see getRegUsage_MIPSInstr */
|
|
From: <sv...@va...> - 2013-01-16 22:07:13
|
philippe 2013-01-16 22:07:02 +0000 (Wed, 16 Jan 2013)
New Revision: 13235
Log:
Small comment fix: .h specifies "all frames", implementation uses 8.
Two fixes could be done:
Either we fix the comments
or we increase N_FRAMES to be rather VG_DEEPEST_BACKTRACE.
We fix the comment for the following reason:
This is (at least for the moment) not performance critical.
as this is only called when an error is reported.
However, searching for local vars is extremely costly.
It is unlikely that an error is reported for a stack variable
which is more than 8 frames deeper than theframe in which
it is detected.
So, fix the comment, waiting for a complaint that a deeper
variable is not properly described.
Modified files:
trunk/coregrind/m_debuginfo/debuginfo.c
trunk/include/pub_tool_debuginfo.h
Modified: trunk/include/pub_tool_debuginfo.h (+1 -1)
===================================================================
--- trunk/include/pub_tool_debuginfo.h 2013-01-16 03:18:19 +00:00 (rev 13234)
+++ trunk/include/pub_tool_debuginfo.h 2013-01-16 22:07:02 +00:00 (rev 13235)
@@ -96,7 +96,7 @@
/*OUT*/PtrdiffT* offset );
/* Try to form some description of DATA_ADDR by looking at the DWARF3
- debug info we have. This considers all global variables, and all
+ debug info we have. This considers all global variables, and 8
frames in the stacks of all threads. Result is written at the ends
of DNAME{1,2}V, which are XArray*s of HChar, that have been
initialised by the caller, and True is returned. If no description
Modified: trunk/coregrind/m_debuginfo/debuginfo.c (+1 -1)
===================================================================
--- trunk/coregrind/m_debuginfo/debuginfo.c 2013-01-16 03:18:19 +00:00 (rev 13234)
+++ trunk/coregrind/m_debuginfo/debuginfo.c 2013-01-16 22:07:02 +00:00 (rev 13235)
@@ -3171,7 +3171,7 @@
}
/* Try to form some description of DATA_ADDR by looking at the DWARF3
- debug info we have. This considers all global variables, and all
+ debug info we have. This considers all global variables, and 8
frames in the stacks of all threads. Result is written at the ends
of DNAME{1,2}V, which are XArray*s of HChar, that have been
initialised by the caller, and True is returned. If no description
|
|
From: <sv...@va...> - 2013-01-16 21:10:15
|
sewardj 2013-01-16 21:10:01 +0000 (Wed, 16 Jan 2013)
New Revision: 2640
Log:
Fix up the s390 back end to be in sync with infrastructural changes
w.r.t. conditional dirty helpers that return values. Does not
actually handle such cases since the s390 front end does not generate
them. Further ahead, it would be more general to redo this by
incorporating a RetLoc as part of the helper_call struct. This change
is OK for now, though.
Modified files:
branches/COMEM/priv/host_s390_defs.c
Modified: branches/COMEM/priv/host_s390_defs.c (+15 -0)
===================================================================
--- branches/COMEM/priv/host_s390_defs.c 2013-01-16 14:56:06 +00:00 (rev 2639)
+++ branches/COMEM/priv/host_s390_defs.c 2013-01-16 21:10:01 +00:00 (rev 2640)
@@ -7312,16 +7312,29 @@
}
+/* Returns a value == BUF to denote failure, != BUF to denote success. */
static UChar *
s390_insn_helper_call_emit(UChar *buf, const s390_insn *insn)
{
s390_cc_t cond;
ULong target;
UChar *ptmp = buf;
+ UChar *bufIN = buf;
cond = insn->variant.helper_call.cond;
target = insn->variant.helper_call.target;
+ if (cond != S390_CC_ALWAYS
+ && insn->variant.helper_call.dst != INVALID_HREG) {
+ /* The call might not happen (it isn't unconditional) and it
+ returns a result. In this case we will need to generate a
+ control flow diamond to put 0x555..555 in the return
+ register(s) in the case where the call doesn't happen. If
+ this ever becomes necessary, maybe copy code from the ARM
+ equivalent. Until that day, just give up. */
+ return bufIN; /* To denote failure. */
+ }
+
if (cond != S390_CC_ALWAYS) {
/* So we have something like this
if (cond) call X;
@@ -8257,6 +8270,7 @@
case S390_INSN_HELPER_CALL:
end = s390_insn_helper_call_emit(buf, insn);
+ if (end == buf) goto fail;
break;
case S390_INSN_BFP_TRIOP:
@@ -8327,6 +8341,7 @@
end = s390_insn_xassisted_emit(buf, insn, disp_cp_xassisted);
break;
+ fail:
default:
vpanic("emit_S390Instr");
}
|
|
From: <sv...@va...> - 2013-01-16 14:56:17
|
sewardj 2013-01-16 14:56:06 +0000 (Wed, 16 Jan 2013)
New Revision: 2639
Log:
ppc32/64 equivalents to r2636: fix up the ppc back end to be in sync
with infrastructural changes w.r.t. conditional dirty helpers that
return values. Does not actually handle such cases since the ppc
front end does not generate them.
Modified files:
branches/COMEM/priv/host_ppc_defs.c
branches/COMEM/priv/host_ppc_defs.h
branches/COMEM/priv/host_ppc_isel.c
Modified: branches/COMEM/priv/host_ppc_isel.c (+48 -13)
===================================================================
--- branches/COMEM/priv/host_ppc_isel.c 2013-01-16 09:29:37 +00:00 (rev 2638)
+++ branches/COMEM/priv/host_ppc_isel.c 2013-01-16 14:56:06 +00:00 (rev 2639)
@@ -1,5 +1,4 @@
-
/*---------------------------------------------------------------*/
/*--- begin host_ppc_isel.c ---*/
/*---------------------------------------------------------------*/
@@ -672,7 +671,8 @@
static
void doHelperCall ( ISelEnv* env,
Bool passBBP,
- IRExpr* guard, IRCallee* cee, IRExpr** args )
+ IRExpr* guard, IRCallee* cee, IRExpr** args,
+ RetLoc rloc )
{
PPCCondCode cc;
HReg argregs[PPC_N_REGPARMS];
@@ -902,7 +902,7 @@
toUInt(Ptr_to_ULong(cee->addr));
/* Finally, the call itself. */
- addInstr(env, PPCInstr_Call( cc, (Addr64)target, argiregs ));
+ addInstr(env, PPCInstr_Call( cc, (Addr64)target, argiregs, rloc ));
}
@@ -2008,6 +2008,9 @@
break;
case Iop_BCDtoDPB: {
+ /* the following is only valid in 64 bit mode */
+ if (!mode64) break;
+
PPCCondCode cc;
UInt argiregs;
HReg argregs[1];
@@ -2026,13 +2029,17 @@
cc = mk_PPCCondCode( Pct_ALWAYS, Pcf_NONE );
fdescr = (HWord*)h_BCDtoDPB;
- addInstr(env, PPCInstr_Call( cc, (Addr64)(fdescr[0]), argiregs ) );
+ addInstr(env, PPCInstr_Call( cc, (Addr64)(fdescr[0]),
+ argiregs, RetLocInt) );
addInstr(env, mk_iMOVds_RR(r_dst, argregs[0]));
return r_dst;
}
case Iop_DPBtoBCD: {
+ /* the following is only valid in 64 bit mode */
+ if (!mode64) break;
+
PPCCondCode cc;
UInt argiregs;
HReg argregs[1];
@@ -2051,7 +2058,8 @@
cc = mk_PPCCondCode( Pct_ALWAYS, Pcf_NONE );
fdescr = (HWord*)h_DPBtoBCD;
- addInstr(env, PPCInstr_Call( cc, (Addr64)(fdescr[0]), argiregs ) );
+ addInstr(env, PPCInstr_Call( cc, (Addr64)(fdescr[0]),
+ argiregs, RetLocInt ) );
addInstr(env, mk_iMOVds_RR(r_dst, argregs[0]));
return r_dst;
@@ -2100,14 +2108,15 @@
HReg r_dst = newVRegI(env);
vassert(ty == Ity_I32);
- /* be very restrictive for now. Only 32/64-bit ints allowed
- for args, and 32 bits for return type. */
+ /* be very restrictive for now. Only 32/64-bit ints allowed for
+ args, and 32 bits for return type. Don't forget to change +
+ the RetLoc if more return types are allowed in future. */
if (e->Iex.CCall.retty != Ity_I32)
goto irreducible;
/* Marshal args, do the call, clear stack. */
doHelperCall( env, False, NULL,
- e->Iex.CCall.cee, e->Iex.CCall.args );
+ e->Iex.CCall.cee, e->Iex.CCall.args, RetLocInt );
/* GPR3 now holds the destination address from Pin_Goto */
addInstr(env, mk_iMOVds_RR(r_dst, hregPPC_GPR3(mode64)));
@@ -3262,7 +3271,8 @@
cc = mk_PPCCondCode( Pct_ALWAYS, Pcf_NONE );
target = toUInt( Ptr_to_ULong(h_BCDtoDPB ) );
- addInstr( env, PPCInstr_Call( cc, (Addr64)target, argiregs ) );
+ addInstr( env, PPCInstr_Call( cc, (Addr64)target,
+ argiregs, RetLoc2Int ) );
addInstr( env, mk_iMOVds_RR( tHi, argregs[argreg-1] ) );
addInstr( env, mk_iMOVds_RR( tLo, argregs[argreg] ) );
@@ -3301,7 +3311,8 @@
target = toUInt( Ptr_to_ULong( h_DPBtoBCD ) );
- addInstr(env, PPCInstr_Call( cc, (Addr64)target, argiregs ) );
+ addInstr(env, PPCInstr_Call( cc, (Addr64)target,
+ argiregs, RetLoc2Int ) );
addInstr(env, mk_iMOVds_RR(tHi, argregs[argreg-1]));
addInstr(env, mk_iMOVds_RR(tLo, argregs[argreg]));
@@ -4973,7 +4984,6 @@
/* --------- Call to DIRTY helper --------- */
case Ist_Dirty: {
- IRType retty;
IRDirty* d = stmt->Ist.Dirty.details;
Bool passBBP = False;
@@ -4981,15 +4991,38 @@
vassert(!d->needsBBP);
passBBP = toBool(d->nFxState > 0 && d->needsBBP);
+ /* Figure out the return type, if any. */
+ IRType retty = Ity_INVALID;
+ if (d->tmp != IRTemp_INVALID)
+ retty = typeOfIRTemp(env->type_env, d->tmp);
+
+ /* Marshal args, do the call, clear stack, set the return value
+ to 0x555..555 if this is a conditional call that returns a
+ value and the call is skipped. We need to set the ret-loc
+ correctly in order to implement the IRDirty semantics that
+ the return value is 0x555..555 if the call doesn't happen. */
+ RetLoc rloc = RetLocINVALID;
+ switch (retty) {
+ case Ity_INVALID: /* function doesn't return anything */
+ rloc = RetLocNone; break;
+ case Ity_I64:
+ rloc = mode64 ? RetLocInt : RetLoc2Int; break;
+ case Ity_I32: case Ity_I16: case Ity_I8:
+ rloc = RetLocInt; break;
+ default:
+ break;
+ }
+ if (rloc == RetLocINVALID)
+ break; /* will go to stmt_fail: */
+
/* Marshal args, do the call, clear stack. */
- doHelperCall( env, passBBP, d->guard, d->cee, d->args );
+ doHelperCall( env, passBBP, d->guard, d->cee, d->args, rloc );
/* Now figure out what to do with the returned value, if any. */
if (d->tmp == IRTemp_INVALID)
/* No return value. Nothing to do. */
return;
- retty = typeOfIRTemp(env->type_env, d->tmp);
if (!mode64 && retty == Ity_I64) {
HReg r_dstHi, r_dstLo;
/* The returned value is in %r3:%r4. Park it in the
@@ -4997,6 +5030,7 @@
lookupIRTempPair( &r_dstHi, &r_dstLo, env, d->tmp);
addInstr(env, mk_iMOVds_RR(r_dstHi, hregPPC_GPR3(mode64)));
addInstr(env, mk_iMOVds_RR(r_dstLo, hregPPC_GPR4(mode64)));
+ vassert(rloc == RetLoc2Int);
return;
}
if (retty == Ity_I8 || retty == Ity_I16 ||
@@ -5005,6 +5039,7 @@
associated with tmp. */
HReg r_dst = lookupIRTemp(env, d->tmp);
addInstr(env, mk_iMOVds_RR(r_dst, hregPPC_GPR3(mode64)));
+ vassert(rloc == RetLocInt);
return;
}
break;
Modified: branches/COMEM/priv/host_ppc_defs.h (+2 -1)
===================================================================
--- branches/COMEM/priv/host_ppc_defs.h 2013-01-16 09:29:37 +00:00 (rev 2638)
+++ branches/COMEM/priv/host_ppc_defs.h 2013-01-16 14:56:06 +00:00 (rev 2639)
@@ -616,6 +616,7 @@
PPCCondCode cond;
Addr64 target;
UInt argiregs;
+ RetLoc rloc; /* where the return value will be */
} Call;
/* Update the guest CIA value, then exit requesting to chain
to it. May be conditional. Use of Addr64 in order to cope
@@ -971,7 +972,7 @@
extern PPCInstr* PPCInstr_Unary ( PPCUnaryOp op, HReg dst, HReg src );
extern PPCInstr* PPCInstr_MulL ( Bool syned, Bool hi32, Bool sz32, HReg, HReg, HReg );
extern PPCInstr* PPCInstr_Div ( Bool extended, Bool syned, Bool sz32, HReg dst, HReg srcL, HReg srcR );
-extern PPCInstr* PPCInstr_Call ( PPCCondCode, Addr64, UInt );
+extern PPCInstr* PPCInstr_Call ( PPCCondCode, Addr64, UInt, RetLoc );
extern PPCInstr* PPCInstr_XDirect ( Addr64 dstGA, PPCAMode* amCIA,
PPCCondCode cond, Bool toFastEP );
extern PPCInstr* PPCInstr_XIndir ( HReg dstGA, PPCAMode* amCIA,
Modified: branches/COMEM/priv/host_ppc_defs.c (+15 -1)
===================================================================
--- branches/COMEM/priv/host_ppc_defs.c 2013-01-16 09:29:37 +00:00 (rev 2638)
+++ branches/COMEM/priv/host_ppc_defs.c 2013-01-16 14:56:06 +00:00 (rev 2639)
@@ -839,16 +839,18 @@
return i;
}
PPCInstr* PPCInstr_Call ( PPCCondCode cond,
- Addr64 target, UInt argiregs ) {
+ Addr64 target, UInt argiregs, RetLoc rloc ) {
UInt mask;
PPCInstr* i = LibVEX_Alloc(sizeof(PPCInstr));
i->tag = Pin_Call;
i->Pin.Call.cond = cond;
i->Pin.Call.target = target;
i->Pin.Call.argiregs = argiregs;
+ i->Pin.Call.rloc = rloc;
/* Only r3 .. r10 inclusive may be used as arg regs. Hence: */
mask = (1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)|(1<<10);
vassert(0 == (argiregs & ~mask));
+ vassert(rloc != RetLocINVALID);
return i;
}
PPCInstr* PPCInstr_XDirect ( Addr64 dstGA, PPCAMode* amCIA,
@@ -1553,6 +1555,8 @@
vex_printf(",");
}
}
+ vex_printf(",");
+ ppRetLoc(i->Pin.Call.rloc);
vex_printf("] }");
break;
}
@@ -3908,6 +3912,16 @@
}
case Pin_Call: {
+ if (i->Pin.Call.cond.test != Pct_ALWAYS
+ && i->Pin.Call.rloc != RetLocNone) {
+ /* The call might not happen (it isn't unconditional) and it
+ returns a result. In this case we will need to generate a
+ control flow diamond to put 0x555..555 in the return
+ register(s) in the case where the call doesn't happen. If
+ this ever becomes necessary, maybe copy code from the ARM
+ equivalent. Until that day, just give up. */
+ goto bad;
+ }
PPCCondCode cond = i->Pin.Call.cond;
UInt r_dst = 10;
/* As per detailed comment for Pin_Call in
|
|
From: Tom H. <to...@co...> - 2013-01-16 11:19:31
|
valgrind revision: 13234 VEX revision: 2636 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) Assembler: GNU assembler version 2.23.51.0.1-3.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2013-01-16 09:17:38 GMT Ended at 2013-01-16 11:19:19 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 646 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-16 11:19:22
|
valgrind revision: 13234 VEX revision: 2636 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2013-01-16 09:14:31 GMT Ended at 2013-01-16 11:19:11 GMT 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 == 646 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == 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 == 646 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-16 11:02:25.810536492 +0000 --- new.short 2013-01-16 11:19:11.111854949 +0000 *************** *** 8,11 **** ! == 646 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) --- 8,10 ---- ! == 646 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-16 11:18:25
|
valgrind revision: 13234 VEX revision: 2636 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2013-01-16 09:15:26 GMT Ended at 2013-01-16 11:18:11 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 646 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-16 11:14:22
|
valgrind revision: 13234 VEX revision: 2636 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2013-01-16 09:10:06 GMT Ended at 2013-01-16 11:14:04 GMT 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 == 646 tests, 5 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == 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 == 646 tests, 6 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-16 10:55:02.153679856 +0000 --- new.short 2013-01-16 11:14:04.150961532 +0000 *************** *** 8,10 **** ! == 646 tests, 6 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) --- 8,10 ---- ! == 646 tests, 5 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) *************** *** 12,14 **** gdbserver_tests/mcmain_pic (stderr) - memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) --- 12,13 ---- |
|
From: Tom H. <to...@co...> - 2013-01-16 11:14:17
|
valgrind revision: 13234 VEX revision: 2636 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-9) Assembler: GNU assembler version 2.23.51.0.8-2.fc19 20121218 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 19 (Rawhide) Nightly build on bristol ( x86_64, Fedora 19 ) Started at 2013-01-16 09:15:15 GMT Ended at 2013-01-16 11:14:03 GMT 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 == 646 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == 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 == 646 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-16 10:59:02.501434061 +0000 --- new.short 2013-01-16 11:14:03.063983601 +0000 *************** *** 8,11 **** ! == 646 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) --- 8,10 ---- ! == 646 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-16 11:02:03
|
valgrind revision: 13234 VEX revision: 2636 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 13 (Goddard) Nightly build on bristol ( x86_64, Fedora 13 ) Started at 2013-01-16 09:11:21 GMT Ended at 2013-01-16 11:01:42 GMT 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 == 626 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) none/tests/fdleak_ipv4 (stderr) 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 == 626 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) helgrind/tests/pth_barrier3 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-16 09:58:21.790636798 +0000 --- new.short 2013-01-16 11:01:42.207375939 +0000 *************** *** 8,11 **** ! == 626 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) helgrind/tests/pth_barrier3 (stderr) --- 8,12 ---- ! == 626 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) + none/tests/fdleak_ipv4 (stderr) helgrind/tests/pth_barrier3 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-16 11:01:49
|
valgrind revision: 13234 VEX revision: 2636 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 11 (Leonidas) Nightly build on bristol ( x86_64, Fedora 11 ) Started at 2013-01-16 09:06:30 GMT Ended at 2013-01-16 11:01:27 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 626 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/long_namespace_xml (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Tom H. <to...@co...> - 2013-01-16 11:01:49
|
valgrind revision: 13234 VEX revision: 2636 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2013-01-16 09:10:09 GMT Ended at 2013-01-16 11:01:29 GMT 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 == 622 tests, 2 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) none/tests/amd64/sse4-64 (stdout) none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (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 == 622 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) memcheck/tests/err_disable4 (stderr) none/tests/amd64/sse4-64 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-16 09:38:46.011664029 +0000 --- new.short 2013-01-16 11:01:29.305633733 +0000 *************** *** 8,13 **** ! == 622 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) - memcheck/tests/err_disable4 (stderr) none/tests/amd64/sse4-64 (stdout) --- 8,14 ---- ! == 622 tests, 2 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) none/tests/amd64/sse4-64 (stdout) + none/tests/fdleak_ipv4 (stdout) + none/tests/fdleak_ipv4 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-16 11:01:43
|
valgrind revision: 13234 VEX revision: 2636 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.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 14 (Laughlin) Nightly build on bristol ( x86_64, Fedora 14 ) Started at 2013-01-16 09:10:58 GMT Ended at 2013-01-16 11:01:25 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 644 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) |
|
From: <sv...@va...> - 2013-01-16 09:29:47
|
sewardj 2013-01-16 09:29:37 +0000 (Wed, 16 Jan 2013)
New Revision: 2638
Log:
x86 equivalent to r2636: fix up the x86 back end to be in sync with
infrastructural changes w.r.t. conditional dirty helpers that return
values. Does not actually handle such cases since the x86 front end
does not generate them.
Modified files:
branches/COMEM/priv/host_x86_defs.c
branches/COMEM/priv/host_x86_defs.h
branches/COMEM/priv/host_x86_isel.c
Modified: branches/COMEM/priv/host_x86_defs.h (+2 -1)
===================================================================
--- branches/COMEM/priv/host_x86_defs.h 2013-01-16 09:22:27 +00:00 (rev 2637)
+++ branches/COMEM/priv/host_x86_defs.h 2013-01-16 09:29:37 +00:00 (rev 2638)
@@ -450,6 +450,7 @@
X86CondCode cond;
Addr32 target;
Int regparms; /* 0 .. 3 */
+ RetLoc rloc; /* where the return value will be */
} Call;
/* Update the guest EIP value, then exit requesting to chain
to it. May be conditional. Urr, use of Addr32 implicitly
@@ -664,7 +665,7 @@
extern X86Instr* X86Instr_Div ( Bool syned, X86RM* );
extern X86Instr* X86Instr_Sh3232 ( X86ShiftOp, UInt amt, HReg src, HReg dst );
extern X86Instr* X86Instr_Push ( X86RMI* );
-extern X86Instr* X86Instr_Call ( X86CondCode, Addr32, Int );
+extern X86Instr* X86Instr_Call ( X86CondCode, Addr32, Int, RetLoc );
extern X86Instr* X86Instr_XDirect ( Addr32 dstGA, X86AMode* amEIP,
X86CondCode cond, Bool toFastEP );
extern X86Instr* X86Instr_XIndir ( HReg dstGA, X86AMode* amEIP,
Modified: branches/COMEM/priv/host_x86_defs.c (+16 -3)
===================================================================
--- branches/COMEM/priv/host_x86_defs.c 2013-01-16 09:22:27 +00:00 (rev 2637)
+++ branches/COMEM/priv/host_x86_defs.c 2013-01-16 09:29:37 +00:00 (rev 2638)
@@ -638,13 +638,16 @@
i->Xin.Push.src = src;
return i;
}
-X86Instr* X86Instr_Call ( X86CondCode cond, Addr32 target, Int regparms ) {
+X86Instr* X86Instr_Call ( X86CondCode cond, Addr32 target, Int regparms,
+ RetLoc rloc ) {
X86Instr* i = LibVEX_Alloc(sizeof(X86Instr));
i->tag = Xin_Call;
i->Xin.Call.cond = cond;
i->Xin.Call.target = target;
i->Xin.Call.regparms = regparms;
+ i->Xin.Call.rloc = rloc;
vassert(regparms >= 0 && regparms <= 3);
+ vassert(rloc != RetLocINVALID);
return i;
}
X86Instr* X86Instr_XDirect ( Addr32 dstGA, X86AMode* amEIP,
@@ -980,11 +983,12 @@
ppX86RMI(i->Xin.Push.src);
return;
case Xin_Call:
- vex_printf("call%s[%d] ",
+ vex_printf("call%s[%d,",
i->Xin.Call.cond==Xcc_ALWAYS
? "" : showX86CondCode(i->Xin.Call.cond),
i->Xin.Call.regparms);
- vex_printf("0x%x", i->Xin.Call.target);
+ ppRetLoc(i->Xin.Call.rloc);
+ vex_printf("] 0x%x", i->Xin.Call.target);
break;
case Xin_XDirect:
vex_printf("(xDirect) ");
@@ -2375,6 +2379,15 @@
}
case Xin_Call:
+ if (i->Xin.Call.cond != Xcc_ALWAYS && i->Xin.Call.rloc != RetLocNone) {
+ /* The call might not happen (it isn't unconditional) and it
+ returns a result. In this case we will need to generate a
+ control flow diamond to put 0x555..555 in the return
+ register(s) in the case where the call doesn't happen. If
+ this ever becomes necessary, maybe copy code from the ARM
+ equivalent. Until that day, just give up. */
+ goto bad;
+ }
/* See detailed comment for Xin_Call in getRegUsage_X86Instr above
for explanation of this. */
switch (i->Xin.Call.regparms) {
Modified: branches/COMEM/priv/host_x86_isel.c (+50 -17)
===================================================================
--- branches/COMEM/priv/host_x86_isel.c 2013-01-16 09:22:27 +00:00 (rev 2637)
+++ branches/COMEM/priv/host_x86_isel.c 2013-01-16 09:29:37 +00:00 (rev 2638)
@@ -366,7 +366,8 @@
static
void callHelperAndClearArgs ( ISelEnv* env, X86CondCode cc,
- IRCallee* cee, Int n_arg_ws )
+ IRCallee* cee, Int n_arg_ws,
+ RetLoc rloc )
{
/* Complication. Need to decide which reg to use as the fn address
pointer, in a way that doesn't trash regparm-passed
@@ -374,7 +375,7 @@
vassert(sizeof(void*) == 4);
addInstr(env, X86Instr_Call( cc, toUInt(Ptr_to_ULong(cee->addr)),
- cee->regparms));
+ cee->regparms, rloc));
if (n_arg_ws > 0)
add_to_esp(env, 4*n_arg_ws);
}
@@ -404,7 +405,8 @@
static
void doHelperCall ( ISelEnv* env,
Bool passBBP,
- IRExpr* guard, IRCallee* cee, IRExpr** args )
+ IRExpr* guard, IRCallee* cee, IRExpr** args,
+ RetLoc rloc )
{
X86CondCode cc;
HReg argregs[3];
@@ -583,7 +585,7 @@
}
/* call the helper, and get the args off the stack afterwards. */
- callHelperAndClearArgs( env, cc, cee, n_arg_ws );
+ callHelperAndClearArgs( env, cc, cee, n_arg_ws, rloc );
}
@@ -1304,7 +1306,8 @@
iselInt64Expr(&xHi, &xLo, env, e->Iex.Unop.arg);
addInstr(env, X86Instr_Push(X86RMI_Reg(xHi)));
addInstr(env, X86Instr_Push(X86RMI_Reg(xLo)));
- addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn, 0 ));
+ addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn,
+ 0, RetLocInt ));
add_to_esp(env, 2*4);
addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), dst));
return dst;
@@ -1361,13 +1364,15 @@
HReg dst = newVRegI(env);
vassert(ty == e->Iex.CCall.retty);
- /* be very restrictive for now. Only 32/64-bit ints allowed
- for args, and 32 bits for return type. */
+ /* be very restrictive for now. Only 32/64-bit ints allowed for
+ args, and 32 bits for return type. Don't forget to change
+ the RetLoc if more return types are allowed in future. */
if (e->Iex.CCall.retty != Ity_I32)
goto irreducible;
/* Marshal args, do the call, clear stack. */
- doHelperCall( env, False, NULL, e->Iex.CCall.cee, e->Iex.CCall.args );
+ doHelperCall( env, False, NULL, e->Iex.CCall.cee,
+ e->Iex.CCall.args, RetLocInt );
addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), dst));
return dst;
@@ -1887,7 +1892,8 @@
vassert(cal->Iex.CCall.retty == Ity_I32); /* else ill-typed IR */
vassert(con->Iex.Const.con->tag == Ico_U32);
/* Marshal args, do the call. */
- doHelperCall( env, False, NULL, cal->Iex.CCall.cee, cal->Iex.CCall.args );
+ doHelperCall( env, False, NULL, cal->Iex.CCall.cee,
+ cal->Iex.CCall.args, RetLocInt );
addInstr(env, X86Instr_Alu32R(Xalu_CMP,
X86RMI_Imm(con->Iex.Const.con->Ico.U32),
hregX86_EAX()));
@@ -2470,7 +2476,8 @@
iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
addInstr(env, X86Instr_Push(X86RMI_Reg(xHi)));
addInstr(env, X86Instr_Push(X86RMI_Reg(xLo)));
- addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn, 0 ));
+ addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn,
+ 0, RetLoc2Int ));
add_to_esp(env, 4*4);
addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
@@ -2509,7 +2516,8 @@
iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
addInstr(env, X86Instr_Push(X86RMI_Reg(xHi)));
addInstr(env, X86Instr_Push(X86RMI_Reg(xLo)));
- addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn, 0 ));
+ addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn,
+ 0, RetLoc2Int ));
add_to_esp(env, 3*4);
addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
@@ -2747,7 +2755,8 @@
iselInt64Expr(&xHi, &xLo, env, e->Iex.Unop.arg);
addInstr(env, X86Instr_Push(X86RMI_Reg(xHi)));
addInstr(env, X86Instr_Push(X86RMI_Reg(xLo)));
- addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn, 0 ));
+ addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn,
+ 0, RetLoc2Int ));
add_to_esp(env, 2*4);
addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
@@ -2768,7 +2777,8 @@
HReg tHi = newVRegI(env);
/* Marshal args, do the call, clear stack. */
- doHelperCall( env, False, NULL, e->Iex.CCall.cee, e->Iex.CCall.args );
+ doHelperCall( env, False, NULL, e->Iex.CCall.cee,
+ e->Iex.CCall.args, RetLoc2Int );
addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
@@ -3692,7 +3702,8 @@
addInstr(env, X86Instr_SseLdSt(False/*!isLoad*/, argR,
X86AMode_IR(0, hregX86_ECX())));
/* call the helper */
- addInstr(env, X86Instr_Call( Xcc_ALWAYS, (Addr32)fn, 3 ));
+ addInstr(env, X86Instr_Call( Xcc_ALWAYS, (Addr32)fn,
+ 3, RetLocNone ));
/* fetch the result from memory, using %r_argp, which the
register allocator will keep alive across the call. */
addInstr(env, X86Instr_SseLdSt(True/*isLoad*/, dst,
@@ -3960,7 +3971,6 @@
/* --------- Call to DIRTY helper --------- */
case Ist_Dirty: {
- IRType retty;
IRDirty* d = stmt->Ist.Dirty.details;
Bool passBBP = False;
@@ -3969,15 +3979,38 @@
passBBP = toBool(d->nFxState > 0 && d->needsBBP);
+ /* Figure out the return type, if any. */
+ IRType retty = Ity_INVALID;
+ if (d->tmp != IRTemp_INVALID)
+ retty = typeOfIRTemp(env->type_env, d->tmp);
+
+ /* Marshal args, do the call, clear stack, set the return value
+ to 0x555..555 if this is a conditional call that returns a
+ value and the call is skipped. We need to set the ret-loc
+ correctly in order to implement the IRDirty semantics that
+ the return value is 0x555..555 if the call doesn't happen. */
+ RetLoc rloc = RetLocINVALID;
+ switch (retty) {
+ case Ity_INVALID: /* function doesn't return anything */
+ rloc = RetLocNone; break;
+ case Ity_I64:
+ rloc = RetLoc2Int; break;
+ case Ity_I32: case Ity_I16: case Ity_I8:
+ rloc = RetLocInt; break;
+ default:
+ break;
+ }
+ if (rloc == RetLocINVALID)
+ break; /* will go to stmt_fail: */
+
/* Marshal args, do the call, clear stack. */
- doHelperCall( env, passBBP, d->guard, d->cee, d->args );
+ doHelperCall( env, passBBP, d->guard, d->cee, d->args, rloc );
/* Now figure out what to do with the returned value, if any. */
if (d->tmp == IRTemp_INVALID)
/* No return value. Nothing to do. */
return;
- retty = typeOfIRTemp(env->type_env, d->tmp);
if (retty == Ity_I64) {
HReg dstHi, dstLo;
/* The returned value is in %edx:%eax. Park it in the
|
|
From: <sv...@va...> - 2013-01-16 09:22:37
|
sewardj 2013-01-16 09:22:27 +0000 (Wed, 16 Jan 2013)
New Revision: 2637
Log:
Get rid of a pointless assert, and let the isel fail in the normal
way, if it wants to.
Modified files:
branches/COMEM/priv/host_amd64_isel.c
Modified: branches/COMEM/priv/host_amd64_isel.c (+0 -3)
===================================================================
--- branches/COMEM/priv/host_amd64_isel.c 2013-01-15 22:30:39 +00:00 (rev 2636)
+++ branches/COMEM/priv/host_amd64_isel.c 2013-01-16 09:22:27 +00:00 (rev 2637)
@@ -3968,10 +3968,7 @@
HReg dst = lookupIRTemp(env, d->tmp);
addInstr(env, mk_iMOVsd_RR(hregAMD64_RAX(),dst) );
return;
- } else {
- vassert(0);
}
-
break;
}
|
|
From: Philippe W. <phi...@sk...> - 2013-01-16 04:58:28
|
valgrind revision: 13234 VEX revision: 2636 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.3.1-3.fc16.ppc64 ppc64 Vendor version: Fedora release 16 (Verne) Nightly build on gcc110 ( Fedora release 16 (Verne), ppc64 ) Started at 2013-01-15 20:00:24 PST Ended at 2013-01-15 20:56:39 PST 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 == 547 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/test_dfp2 (stdout) none/tests/ppc32/test_dfp2 (stderr) none/tests/ppc64/test_dfp2 (stdout) none/tests/ppc64/test_dfp2 (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |
|
From: Rich C. <rc...@wi...> - 2013-01-16 04:19:05
|
valgrind revision: 13234
VEX revision: 2636
C compiler: gcc (SUSE Linux) 4.7.1 20120723 [gcc-4_7-branch revision 189773]
Assembler: GNU assembler (GNU Binutils; openSUSE 12.2) 2.22
C library: GNU C Library stable release version 2.15 (20120628)
uname -mrs: Linux 3.4.11-2.16-desktop x86_64
Vendor version: Welcome to openSUSE 12.2 "Mantis" - Kernel %r (%t).
Nightly build on ultra ( gcc 4.5.1 Linux 3.4.11-2.16-desktop x86_64 )
Started at 2013-01-15 21:30:01 CST
Ended at 2013-01-15 22:18:54 CST
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 639 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcinfcallRU (stderr)
gdbserver_tests/mcinfcallWSRU (stderr)
memcheck/tests/origin5-bz2 (stderr)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2013-01-15 21:56:44.531899430 -0600
+++ mcinfcallRU.stderr.out 2013-01-15 22:09:53.660992534 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2013-01-15 21:56:44.533899375 -0600
+++ mcinfcallWSRU.stderr.out 2013-01-15 22:09:56.198922049 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-01-15 22:00:46.756177179 -0600
+++ origin5-bz2.stderr.out 2013-01-15 22:11:44.457915221 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2013-01-15 21:59:58.663512010 -0600
+++ origin5-bz2.stderr.out 2013-01-15 22:11:44.457915221 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2013-01-15 21:57:00.219464163 -0600
+++ origin5-bz2.stderr.out 2013-01-15 22:11:44.457915221 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2013-01-15 21:58:55.993250277 -0600
+++ origin5-bz2.stderr.out 2013-01-15 22:11:44.457915221 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2013-01-15 21:59:24.492460386 -0600
+++ origin5-bz2.stderr.out 2013-01-15 22:11:44.457915221 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
=================================================
./valgrind-old/gdbserver_tests/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2013-01-15 21:32:33.121027202 -0600
+++ mcinfcallRU.stderr.out 2013-01-15 21:44:22.538437128 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2013-01-15 21:32:33.124027118 -0600
+++ mcinfcallWSRU.stderr.out 2013-01-15 21:44:25.130365548 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-01-15 21:33:10.969973190 -0600
+++ origin5-bz2.stderr.out 2013-01-15 21:46:14.734338322 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2013-01-15 21:33:04.552152100 -0600
+++ origin5-bz2.stderr.out 2013-01-15 21:46:14.734338322 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2013-01-15 21:32:35.654956678 -0600
+++ origin5-bz2.stderr.out 2013-01-15 21:46:14.734338322 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2013-01-15 21:32:55.351408142 -0600
+++ origin5-bz2.stderr.out 2013-01-15 21:46:14.734338322 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2013-01-15 21:33:00.047277710 -0600
+++ origin5-bz2.stderr.out 2013-01-15 21:46:14.734338322 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
|
|
From: <sv...@va...> - 2013-01-16 03:20:14
|
florian 2013-01-16 03:18:19 +0000 (Wed, 16 Jan 2013)
New Revision: 13234
Log:
Fix two memory leaks. Spotted by Coverity.
Modified files:
trunk/cachegrind/cg_merge.c
Modified: trunk/cachegrind/cg_merge.c (+6 -2)
===================================================================
--- trunk/cachegrind/cg_merge.c 2013-01-15 23:09:41 +00:00 (rev 13233)
+++ trunk/cachegrind/cg_merge.c 2013-01-16 03:18:19 +00:00 (rev 13234)
@@ -277,8 +277,10 @@
assert(n_counts >= 0);
cts->counts = malloc(n_counts * sizeof(ULong));
- if (cts->counts == NULL)
+ if (cts->counts == NULL) {
+ free(cts);
return NULL;
+ }
cts->n_counts = n_counts;
for (i = 0; i < n_counts; i++)
@@ -296,8 +298,10 @@
assert(n_counts >= 0);
cts->counts = malloc(n_counts * sizeof(ULong));
- if (cts->counts == NULL)
+ if (cts->counts == NULL) {
+ free(cts);
return NULL;
+ }
cts->n_counts = n_counts;
for (i = 0; i < n_counts; i++)
|
|
From: Christian B. <bor...@de...> - 2013-01-16 03:13:35
|
valgrind revision: 13233 VEX revision: 2636 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.21.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.42-0.7-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP2 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP1 gcc 4.3.4 on z196 (s390x) ) Started at 2013-01-16 03:45:01 CET Ended at 2013-01-16 04:13:21 CET Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 624 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Christian B. <bor...@de...> - 2013-01-16 03:06:23
|
valgrind revision: 13233 VEX revision: 2636 C compiler: gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9bb4) Assembler: GNU assembler version 2.21.51.0.6-6bb6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.7.2-57.x.20130114-s390xperformance s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 15 with devel libc/toolchain on z196 (s390x) ) Started at 2013-01-16 03:45:01 CET Ended at 2013-01-16 04:06:30 CET 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 == 625 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) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |
|
From: Siddharth N. <si...@gm...> - 2013-01-16 00:07:44
|
Hi All, Any word on this? Let me re-phrase in a less complicated way: Do pre_mem_reads indicate the addresses that will be read by the next executed syscall? Essentially, how do you match pre_mem_reads to syscalls (and post_mem_writes to syscalls)? How would one count the number of instructions that occur during a syscall? Thanks, Siddharth On 4 January 2013 16:39, Siddharth Nilakantan <si...@gm...> wrote: > Hi All, > > I am trying to instrument syscalls that read from and modify memory. I > want to use the pre_mem_read and post_mem_write functions, but I also > need the correct function execution context when the read and write > occurs (user program function where the syscall occurs). > > So my idea was to use Callgrind, record all pre_mem_reads and query > the context during the next syscall and similarly during > post_mem_writes query the context of the previous syscall that has > occurred. I couldn't find any documentation on how pre_mem_read > functions work in conjunction with syscalls. Am I going about this > right? > > Thanks, > Siddharth > |