On 6 July 2016 at 00:55, Richard Henderson <r...@twiddle.net> wrote:
> On 07/05/2016 02:41 PM, Michael Rolnik wrote:
>>
>> right it accesses CPU registers but from helper context.
>> the flow is as follows
>>
>> 1. there is a write to [0x0000: 0x0100) region
>> 2. tlb_fill is called, it does the following
>>     a. sets env->fullwr
>>     b. calls cpu_loop_exit_restore.
>>     c. the whole block is retranslated and instead of st it generates
>> helper_fullwr for each store within this TB.
>> 3. helper_fullwr calls cpu_physical_memory_write
>> 4. sample_io_write is called and register is changed since the whole thing
>> is
>> done from within a helper
>
>
> It is my opinion that helper_fullwr should simply modify the respective
> registers.  There's no point adding two more layers of calls.

I was also wondering if it would be simpler to also direct
reads to a helper_fullrd, rather than having the write
handling in the helper and the read handling in a device
that's rather distant from it in a source-code-location sense.
(Well, it would be simpler, also a bit slower, but how much
do we care about the latter here?)

thanks
-- PMM

Reply via email to