|
From: Julian S. <js...@ac...> - 2005-07-29 19:32:13
|
> But that is not about REP. This problem is at the end of every BB ending in
> a conditional jump, so it is not something to ignore IMHO.
> I just found out that VEX sometimes inverts the condition in conditional
> jumps, so the simulator is more or less not called for conditional jump
> instructions randomly.
I have to say .. I think it may prove difficult to get
{cache,call}grind to treat rep instructions as a single insn,
regardless of how many iterations it does. Particularly if vex is
going to unroll the BB containing the IR for the instruction. That
said, I'll help if I can.
Can you send an example of this conditional inversion? I'm not really
sure what you mean.
> > > I reverted this behaviour. See my change in CLG_(instrument) in the
> > > attached file (i renamed handleOneStatement to collectStatementInfo).
> > >
> > > In handleOneStatement, you did not forward ABI hints.
> > > I thought that ABI hints are used to generate better code in the VEX
> > > backend?
> >
> > What are ABI hints?
>
> I think these are pseudo-statements VEX is producing to give hints from the
> frontend to the backend. Julian, is this correct?
Sort-of. They are hints from the front end to the tool. So far the
only use is on amd64, to emit a hint that a call or return instruction
is just about to be executed. In that case memcheck needs to mess with
the memory permissions for -127(%rsp) .. 0(%rsp) and so it generates
an appropriate helper call when it sees the hint. I think it's a hack
but I couldn't think of anything cleaner.
J
|