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.

Reply via email to