[kaffe] Verifier questions
Chris Gray
chris.gray at kiffer.be
Thu Dec 21 01:11:10 PST 2006
Dear all,
I've been studying the Kaffe verifier and I'm coming across cases of "either I
don't understand this or it's wrong". I'm posting these here in the hope that
somebody who understands the verifier (Rob?) will read them ...
First, I see flags being tested in the 'status' field of a basic block which I
only see being set in in the 'status' field of an instruction. Maybe
somewhere flags are being copied from the first instruction of a bb to the bb
itself, but if so I don't see it. Example: flag EXCEPTION_HANDLER is set for
the instruction corresponding to handler_pc of an exception, but in
verifyMethod3b() this flag is tested for a bb.
Second, I don't see how transfer of control from code guarded to an exception
handler to the handler itself is taken care of. As I understand it, the
successors to an instruction include all the exception handlers which cover
that instruction; working with basic blocks this should normally mean that
(i) both the start_pc and end_pc of the exception should open a bb, and (ii)
after evaluating a bb the resulting local vars need to be merged with those
of all relevant exception handlers, not just the successor blocks reachable
by "normal" execution. Either the code is smarter than I am, or this is not
happening.
All the best,
Chris
--
Chris Gray /k/ Embedded Java Solutions BE0503765045
Embedded & Mobile Java, OSGi http://www.k-embedded-java.com/
chris.gray at kiffer.be +32 3 216 0369
Note: we will closed for all but urgent support activities from
Saturday 23 December 2006 to Monday 1 January 2007 inclusive.
More information about the kaffe
mailing list