On 12/16/15 20:03, Richard Henderson wrote:
On 12/15/2015 01:02 PM, Sergey Fedorov wrote:
For that, I think it might be interesting to arrange for non-empty
TBs to
exit prior to recognizing a breakpoint. So that a breakpoint TB is
always
just the one operation. Except for the fact that "generate an
exception" has
traditionally been a target-specific helper, we could almost make
the entire
breakpoint generation be done in common code.
I'd think something like a generic "must we end the TB now"
predicate would
be the proper hook. It would contain all of the usual stuff:
tcg_op_buf_full
and checks for singlestep, but then add "is there a breakpoint at
the next pc".
This could be a next step :)
Or perhaps a first step, since the patch you posted doesn't seem to me
to be an improvement at all, merely a rearrangement of code.
I should give it a thought. The main motivation of this patch was to
simply suppress useless disas log and the instruction length mismatch
disas warning in case of an empty TB. The original reason was that there
is a place in ARM translation with "PC advancement" tick missed.
Thanks,
Sergey