On 06/26/2017 03:14 AM, Alex Bennée wrote:
+ if ((db->pc_first & TARGET_PAGE_MASK)
+ != (db->pc_next & TARGET_PAGE_MASK)) {
+ db->is_jmp = DJ_TOO_MANY;
+ break;
+ }
How does the first insn avoid this check? And if it does is that right?
I mean I understand you can construct weird multi-byte instructions
(especially on x86) that cross the boundary but even if it is the first
in a TB shouldn't it error if there are no contiguous pages?
Also isn't the page crossing issue different for SoftMMU and linux-user?
It could be, though I don't believe that many front-ends take advantage. I
don't think it makes *that* much difference.
But if it comes to that, there are other edge conditions that can be used, e.g.
the KSEG non-paged addressing segment for Alpha or MIPS kernel mode.
r~