|
From: | Richard Henderson |
Subject: | Re: [Qemu-devel] [PATCH v9 04/26] target: [tcg] Add generic translation framework |
Date: | Mon, 26 Jun 2017 19:47:18 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 |
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~
[Prev in Thread] | Current Thread | [Next in Thread] |