Re: [PATCH] x86 emulator: fix parity calculation for AAD instruction

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Il 13/02/2013 16:50, Gleb Natapov ha scritto:
> Reported-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx>
> 
> diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
> index 2b11318..a335cc6 100644
> --- a/arch/x86/kvm/emulate.c
> +++ b/arch/x86/kvm/emulate.c
> @@ -2995,14 +2995,11 @@ static int em_aad(struct x86_emulate_ctxt *ctxt)
>  
>  	ctxt->dst.val = (ctxt->dst.val & 0xffff0000) | al;
>  
> -	ctxt->eflags &= ~(X86_EFLAGS_PF | X86_EFLAGS_SF | X86_EFLAGS_ZF);
> -
> -	if (!al)
> -		ctxt->eflags |= X86_EFLAGS_ZF;
> -	if (!(al & 1))
> -		ctxt->eflags |= X86_EFLAGS_PF;
> -	if (al & 0x80)
> -		ctxt->eflags |= X86_EFLAGS_SF;
> +	/* Set PF, ZF, SF */
> +	ctxt->src.type = OP_IMM;
> +	ctxt->src.val = 0;
> +	ctxt->src.bytes = 1;
> +	fastop(ctxt, em_or);
>  
>  	return X86EMUL_CONTINUE;
>  }
> --
> 			Gleb.
> 

Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux