Laurent Vivier wrote:
>>
>> How about just calliing emulate_instruction() from here (just for the
>> string case)?  That will eliminate all the setup code.
>>     
>
> But this setup is in emulate_instruction() so it will be executed anyway.
>
>   

I'm  not worried about run-time overhead, but about the amount of code.

>> x86_emulate_memop() will need to be extended to decode ins/outs, but
>> that's fairly easy.
>>     
>
> X86_decode_prefix() is a subset of instruction decoding part of
> x86_emulate_memop(), kvm_setup_pio() can be seen as a subset of instruction
> emulating part of x86_emulate_memop(). So I think in term of performance it is
> better to do like that, but I agree by doing:
>
> if (string)
>       return emulate_instruction(vcpu, kvm_run, 0, 0);
> else
>       return kvm_setup_pio(vcpu, kvm_run, in, size, port);
>
> it is more more ... more simple.
>
> If you prefer simplicity, I can do like that ?
> (but I know you prefer simplicity...)
>
>   

Yes.  Note that x86_emulate_memop() will eventually call kvm_setup_pio() 
to complete the emulation.

> BTW, I think PATCH 1,2 and 3 should be applied anyway because they allow to
> introduce the separation between instruction decoding and instruction 
> emulation
> requested by the TODO "Split the emulator into two functions: one to decode 
> into
> the emulation context, and the other to actually execute the instruction."
>   

I agree.  I'll look into it with more detail.


-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to