On Sat, Dec 22, 2012 at 02:26:53PM +0200, Avi Kivity wrote:
> Instead of disabling writeback via OP_NONE, just specify NoWrite.
>
> Signed-off-by: Avi Kivity <[email protected]>
> ---
> arch/x86/kvm/emulate.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
> index 9859df6..9dfbd07 100644
> --- a/arch/x86/kvm/emulate.c
> +++ b/arch/x86/kvm/emulate.c
> @@ -150,6 +150,7 @@
> #define Unaligned ((u64)1 << 42) /* Explicitly unaligned (e.g. MOVDQU) */
> #define Avx ((u64)1 << 43) /* Advanced Vector Extensions */
> #define Fastop ((u64)1 << 44) /* Use opcode::u.fastop */
> +#define NoWrite ((u64)1 << 45) /* No writeback */
>
> #define X2(x...) x, x
> #define X3(x...) X2(x), x
> @@ -1584,6 +1585,9 @@ static int writeback(struct x86_emulate_ctxt *ctxt)
> {
> int rc;
>
> + if (ctxt->d & NoWrite)
> + return X86EMUL_CONTINUE;
> +
Why not make it Dst flag and set dst.type to OP_NONE during decoding
instead of this special case?
> switch (ctxt->dst.type) {
> case OP_REG:
> write_register_operand(&ctxt->dst);
> --
> 1.7.11.7
--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html