>> I'm probably being stupid here, but how can this possibly
>> *not* be the case ?  After all, we gave fetchDecode()
>> the max_len attribute above, so if it hits a page boundary
>> we should never get to this code anyway.
>
>If either a non-branch or conditional branch instruction
>fits, but abuts the page boundary, then execution of following
>instruction is a certainty/possibility, and occurs in the
>next page.  Keeping in mind, our goal is to _never_ let
>execution get away from our control, for these situations,
>we have to virtualize this instruction.

But, I assume that if a page hasn't been scanned yet, it'll be marked
non-present! so it would trap anyway... however, as an optimisation, when
the next instruction is a certainty (or a possibility, for that matter) we
may as well go on directly to scan the next page.  But virtualising the next
instruction should not be neccessary...

>Some other thoughts.  If we get rid of the meta page,
>then we have to start all over, scanning the page again
>the next time the execution path goes through that page.
>Otherwise, when code transfers here, we don't know whether
>it's to a scanned address or not.

Okay, I hadn't thought of that.  Perhaps there are other ways around this
though...

Ramon


Reply via email to