On 2017-09-14 22:00, Gustavo Lima Chaves wrote: > * Jan Kiszka <[email protected]> [2017-09-14 19:52:21 +0000]: > >> On 2017-09-14 19:05, Gustavo Lima Chaves wrote: >>>>> break; >>>>> } else if (op[2].modrm.rm != 4) { /* no SIB */ >>>>> break; >>>>> @@ -168,6 +191,16 @@ restart: >>>>> else >>>>> inst.reg_num = 15 - op[2].modrm.reg; >>>>> >>>>> +final: >>>>> + /* FIXME: what if an instruction with immediate spans two >>>>> + * pages? */ >>>> >>>> That has to be addressed (another reason to split the patch, because we >>>> can then already handle the other two instructions). Just look at how we >>>> do this for the instruction so far and follow the same path. >>> >>> I suspect this is not done in this file (before one would collect all >>> the state needed progressively), but I'll sure search better how to >>> achieve that. >> >> You need ctx_advance for each instruction byte you want to read (you >> don't need it to just skip over an instruction). > > Sure, but my doubt is, when advancing to a new page, will the > inst_start pointer arithmetic still make sense? I guess it will, since > the adressing should be linear—maybe we're already covered? I still > did not look into it, will do soon.
If you dive down into that function, you will see that is was designed around the problem of cross-page instructions. Jan -- Siemens AG, Corporate Technology, CT RDA ITP SES-DE Corporate Competence Center Embedded Linux -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
