On 09/30/2016 10:56 AM, Jan Beulich wrote:
On 30.09.16 at 16:54, wrote:
>> On 09/30/2016 10:44 AM, Jan Beulich wrote:
> +int
> +x86_insn_modrm(const struct x86_emulate_state *state,
> + unsigned int *rm, unsigned int *reg)
> +{
> +check_state(state);
>>> On 30.09.16 at 16:54, wrote:
> On 09/30/2016 10:44 AM, Jan Beulich wrote:
>>
+int
+x86_insn_modrm(const struct x86_emulate_state *state,
+ unsigned int *rm, unsigned int *reg)
+{
+check_state(state);
+
+if ( !(state->desc & ModRM) )
On 09/30/2016 10:44 AM, Jan Beulich wrote:
>
>>> +int
>>> +x86_insn_modrm(const struct x86_emulate_state *state,
>>> + unsigned int *rm, unsigned int *reg)
>>> +{
>>> +check_state(state);
>>> +
>>> +if ( !(state->desc & ModRM) )
>>> +return -EINVAL;
>>> +
>>> +if (
>>> On 30.09.16 at 16:46, wrote:
> On 30/09/16 15:44, Jan Beulich wrote:
+int
+x86_insn_modrm(const struct x86_emulate_state *state,
+ unsigned int *rm, unsigned int *reg)
+{
+check_state(state);
+
+if ( !(state->desc & ModRM) )
+
On 30/09/16 15:44, Jan Beulich wrote:
>>> +int
>>> +x86_insn_modrm(const struct x86_emulate_state *state,
>>> + unsigned int *rm, unsigned int *reg)
>>> +{
>>> +check_state(state);
>>> +
>>> +if ( !(state->desc & ModRM) )
>>> +return -EINVAL;
>>> +
>>> +if ( rm )
>
>>> On 30.09.16 at 16:37, wrote:
> On 09/30/2016 05:38 AM, Jan Beulich wrote:
>> +if ( opc_tab[instr].opcode == ctxt.ctxt.opcode )
>> {
>> -if ( (inst_len + i) >= fetch_len )
>> -{
>> -if ( !fetch(vmcb, buf + fetch_len, fetch_addr + fetch_l
On 09/30/2016 05:38 AM, Jan Beulich wrote:
> +if ( opc_tab[instr].opcode == ctxt.ctxt.opcode )
> {
> -if ( (inst_len + i) >= fetch_len )
> -{
> -if ( !fetch(vmcb, buf + fetch_len, fetch_addr + fetch_len,
> -max_le
... instead of custom handling. To facilitate this break out init code
from _hvm_emulate_one() into the new hvm_emulate_init(), and make
hvmemul_insn_fetch( globally available.
Signed-off-by: Jan Beulich
Reviewed-by: Andrew Cooper
---
v3: Add comment explaining debug/non-debug build differences.